You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.1 KiB
76 lines
2.1 KiB
4 years ago
|
# cumpa
|
||
|
|
||
|
Minimal function composition implementation
|
||
|
|
||
|
<img alt="cumpa" src="./cumpa.gif" width="50%"/>
|
||
|
|
||
|
> `cumpá` in some Italian :it: dialects means `fellow`
|
||
|
|
||
|
[![Build Status][travis-image]][travis-url]
|
||
|
|
||
|
[![NPM version][npm-version-image]][npm-url]
|
||
|
[![NPM downloads][npm-downloads-image]][npm-url]
|
||
|
[![MIT License][license-image]][license-url]
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
```js
|
||
|
import compose from 'cumpa'
|
||
|
|
||
|
const add2 = x => x + 2
|
||
|
const multiplyBy3 = x => x * 3
|
||
|
|
||
|
const add2AndMultiplyBy3 = compose(multiplyBy3, add2)
|
||
|
|
||
|
console.log(add2AndMultiplyBy3(1)) // ((1 + 2) * 3) = 9
|
||
|
```
|
||
|
|
||
|
[travis-image]: https://img.shields.io/travis/GianlucaGuarini/cumpa.svg?style=flat-square
|
||
|
|
||
|
[travis-url]: https://travis-ci.org/GianlucaGuarini/cumpa
|
||
|
|
||
|
[license-image]: http://img.shields.io/badge/license-MIT-000000.svg?style=flat-square
|
||
|
|
||
|
[license-url]: LICENSE
|
||
|
|
||
|
[npm-version-image]: http://img.shields.io/npm/v/cumpa.svg?style=flat-square
|
||
|
|
||
|
[npm-downloads-image]: http://img.shields.io/npm/dm/cumpa.svg?style=flat-square
|
||
|
|
||
|
[npm-url]: https://npmjs.org/package/cumpa
|
||
|
|
||
|
## API
|
||
|
|
||
|
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
|
||
|
|
||
|
#### Table of Contents
|
||
|
|
||
|
- [composeRight](#composeright)
|
||
|
- [Parameters](#parameters)
|
||
|
- [compose](#compose)
|
||
|
- [Parameters](#parameters-1)
|
||
|
|
||
|
### composeRight
|
||
|
|
||
|
Similar to compose but performs from left-to-right function composition.<br/>
|
||
|
[see also](https://30secondsofcode.org/function#composeright)
|
||
|
|
||
|
#### Parameters
|
||
|
|
||
|
- `fns` **...\[[function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)]** ) - list of unary fynctions
|
||
|
|
||
|
Returns **any** result of the computation
|
||
|
|
||
|
### compose
|
||
|
|
||
|
Performs right-to-left function composition.
|
||
|
Use Array.prototype.reduce() to perform right-to-left function composition.
|
||
|
The last (rightmost) function can accept one or more arguments; the remaining functions must be unary.<br/>
|
||
|
[source code](https://30secondsofcode.org/function#compose)
|
||
|
|
||
|
#### Parameters
|
||
|
|
||
|
- `fns` **...\[[function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)]** ) - list of unary fynctions
|
||
|
|
||
|
Returns **any** result of the computation
|