75
GitHub - staltz/zii: Chain function calls using a prototype function z
source link: https://github.com/staltz/zii
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
readme.md
zii
Chain function calls using a prototype function .z()
Adds a function z
to the Object prototype so that you can right-compose functions together. This is like the proposed pipeline operator |>
, but implemented in ES5.
value.z(first).z(second)
is the same as second(first(value))
- 150 bytes small
- Works with RxJS 6+
- Works with Callbags
- Works with plain functions and numbers and strings
- Supports TypeScript
Installation
npm install zii
Usage
require('zii'); // Nothing else needed! This require will mutate the Object prototype
If you use TypeScript, then add this to your tsconfig.json
file:
{
...
"types": [
"node_modules/zii/index.d.ts"
]
...
}
Examples
RxJS
require('zii') const {from} = require('rxjs') const {map, filter} = require('rxjs/operators') from([1, 2, 3, 4, 5]) .z(filter(x => x % 2 === 1)) .z(map(x => x * 10)) .subscribe({ next: x => console.log(x) })
Callbags
require('zii') const {fromIter, map, filter, forEach} = require('callbag-basics') fromIter([1, 2, 3, 4, 5]) .z(filter(x => x % 2 === 1)) .z(map(x => x * 10)) .z(forEach(console.log))
Simple JS
function doubleSay(str) { return str + ', ' + str; } function capitalize(str) { return str[0].toUpperCase() + str.substring(1); } function exclaim(str) { return str + '!'; } 'hello' .z(doubleSay) .z(capitalize) .z(exclaim) .z(console.log) // Hello, hello!
License
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK