All Projects → haskellcamargo → babel-plugin-function-composition

haskellcamargo / babel-plugin-function-composition

Licence: MIT license
Babel plugin to compose functions with piping using the & operator

Programming Languages

javascript
184084 projects - #8 most used programming language

babel-plugin-function-composition

This plugin is made to work with point-free (tacit) functional programming by composing functions over piping. It is inspired by the work of babel-plugin-pipe-operator-curry, but with a very different purpose, with focus on omitting arguments. I've overloaded the operator & for that. You can built more complex functions from simple ones.

Examples

import { add, multiply } from 'ramda';

const add5AndMul5 = add(5) & multiply(5);

Turn into

import { add, multiply } from 'ramda';

const add5AndMul5 = (...args) => multiply(5)(add(5)(...args));

Disabling in current scope

If you want to use the original bitwise and operator, you can disable this plugin in current scope (and it children scopes) using 'no composition' directive.

Installation

$ npm install --save-dev babel-plugin-function-composition

Usage

Via .babelrc (Recommended)

.babelrc

{
  "plugins": ["function-composition"]
}

Via CLI

$ babel --plugins function-composition script.js

Via Node API

require('babel-core').transform('code', {
  plugins: ['function-composition']
});

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].