@simplesmiler/thru
v1.0.1
Published
Type-safe operator for chaining
Downloads
3
Maintainers
Readme
@simplesmiler/thru
Type-safe operator for chaining
- Allows function calls to follow the data flow instead of being nested
- Does not require pre-chain wrapping and post-chain unwrapping
- Does not require explicit-er types than usual
- Promotes code minification due to tree shaking and name mangling
Inspired by:
- Lodash.thru: https://lodash.com/docs/
- Bind operator proposal: https://github.com/tc39/proposal-bind-operator
- Pipeline operator proposal: https://github.com/tc39/proposal-pipeline-operator
- Do notation from Haskell: https://en.wikibooks.org/wiki/Haskell/do_notation
- Discussion over at https://esdiscuss.org/topic/array-prototype-tap
Install
npm install @simplesmiler/thru
Use
import { thru, tap } from '@simplesmiler/thru';
import { flatten } from 'lodash/fp';
const result = [1, 2, 3]
.map((x) => [x, x * 2])
[thru](flatten)
[thru]((list) => list.slice().sort((a, b) => a - b))
[tap]((sorted) => console.log('DEBUG:', sorted))
.join(', ')
[thru]((text) => `Computed numbers: ${text}`);
License
Copyright © 2020 Denis Karabaza [email protected].
This project is ISC licensed.