Package Exports
- it-pipe
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (it-pipe) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
it-pipe
Utility to "pipe" async iterables together
Based on this definition of streaming iterables https://gist.github.com/alanshaw/591dc7dd54e4f99338a347ef568d6ee9.
Almost identical to the pipeline
function from the streaming-iterables
module except that it supports duplex streams and will automatically wrap a "source" as the first param in a function.
Install
npm i it-pipe
Usage
const pipe = require('it-pipe')
const result = await pipe(
// A source is just an iterable, this is shorthand for () => [1, 2, 3]
[1, 2, 3],
// A transform takes a source, and returns a source.
// This transform doubles each value asynchronously.
function transform (source) {
return (async function * () { // A generator is async iterable
for await (const val of source) yield val * 2
})()
},
// A sink, it takes a source and consumes it, optionally returning a value.
// This sink buffers up all the values from the source and returns them.
async function collect (source) {
const vals = []
for await (const val of source) {
vals.push(val)
}
return vals
}
)
console.log(result) // 2,4,6
API
pipe(firstFn, ...fns)
Calls firstFn
and then every function in fns
with the result of the previous function. The final return is the result of the last function in fns
.
Note:
firstFn
may be aFunction
or anIterable
firstFn
or any offns
may be a duplex object (an object with asink
andsource
).
Contribute
Feel free to dive in! Open an issue or submit PRs.
License
MIT © Alan Shaw