Skip to content

haskellcamargo/babel-plugin-function-composition

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Babel plugin to compose functions with piping using the & operator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published