bind-infix-proxy

1.0.0 • Public • Published

bind-infix-proxy

Proxy-backed portable, lightweight JavaScript method extensions, minus the monkeypatching.

Does your environment not support proxies? See bind-infix for a non-proxy-backed approach.

Installation

As a managed local dependency (do this): npm install --save bind-infix-proxy

As a managed local development dependency (or this): npm install --save-dev bind-infix-proxy

As an extraneous local dependency (preferably not this): npm install bind-infix-proxy

As a global dependency (and especially not this): npm install -g bind-infix-proxy

Usage

// 1. Import the infix function
import infix from 'bind-infix-proxy'

// 2. Define a prefix-call implementation of a generally useful method,
//    such as flatMap
const prefixflatMap = (array, mappingFunction) =>
  array.reduce(
    (partialResult, nextElement) =>
      [...partialResult, ...mappingFunction(nextElement)],
    []
  )

// 3. Create an infix-call implementation of the prefix-call function
//    using the infix function
const flatMap = infix(prefixflatMap)

// 4. Call your new function using the bind operator
const chars = ['Hello,', ' ', 'world!']::flatMap(string => [...string])
// chars =  ['H', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!']

Prerequisites

This module requires an environment with support for ES2015+ Proxies. For use in other environments, check out bind-infix.

Otherwise, this module has no transitive, peer, or development dependencies. Node and npm are the only practical requirements for use. This module can also be easily recreated in a couple of lines of code (even only one) in virtually any JavaScript environment.

It is highly recommended that code calling functions enhanced by the infix function be written for a native or transpiled JavaScript environment with support for the :: (bind) operator. This module really only provides syntactic benefits, which rely entirely on the :: operator to be effective. The babel-preset-stage-0 module provides support for the :: operator when using babel as a transpiler.

Package Sidebar

Install

npm i bind-infix-proxy

Weekly Downloads

1

Version

1.0.0

License

MIT

Last publish

Collaborators

  • resisttheurge