pipe-now
A tiny package that simulates the behavior of the pipeline-operator proposal.
Installation
This module is distributed via npm which is bundled with node and
should be installed as one of your project's dependencies
:
npm install --save pipe-now
The problem
The pipeline operator is an awesome thing, but unfortunately the proposals available for babel vary quite a bit, and they can still change more, as they are still in early stages of development and there's no agreement on an API yet.
This solution
This package tries to solve the problem stated above by simulating the pipeline operator through a function. I know, it's not as nice as having an actual syntax for that, but until the proposal gets more stable this can be a good replacement.
Usage
This package exports a function which receives a plain value as the first argument, and all the next arguments are functions that receives the previous value, and returns the next value.
You can use it with inline functions:
{ const fruitsUppercase = 'APPLE' 'BANANA' 'ORANGE' const fruitsLowercase = return fruitsLowercase // ['apple', 'banana', 'orange']}
To avoid code duplication, you can also extract the functions and just pass the reference to them:
{ return arr} { const fruitsUppercase = 'APPLE' 'BANANA' 'ORANGE' const fruitsLowercase = return fruitsLowercase // ['apple', 'banana', 'orange']}
You can also check below a more complex use of the pipe
function, with data fetching and manipulating this data:
// Simulates an async data fetch { return Promise} { const sum = arr const avg = sum / arrlength return avg} { const peopleHeightAverage = return peopleHeightAverage // returns 180}
Inspiration
Other Solutions
lodash's flow
You can kind of use it to simulate the pipeline syntax, like the following:
const value = _
If you are already using lodash, you can of course also create a wrapper for that.
LICENSE
MIT