Utility to "pipe" async iterables together
npm install it-pipe

> Utility to "pipe" async iterables together
- Install
- Browser tag
- Usage
- API
- pipe(firstFn, ...fns)
- API Docs
- License
- Contribution
``console`
$ npm i it-pipe
Loading this module through a script tag will make it's exports available as ItPipe in the global namespace.
`html`
Based on this definition of streaming iterables
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.
`js
import { pipe } from '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
`
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 a Function or an IterablefirstFn
- or any of fns may be a duplex object (an object with a sink and source`).
-
Licensed under either of
- Apache 2.0, (LICENSE-APACHE /
- MIT (LICENSE-MIT /
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.