@strong-roots-capital/aggregating-stream
v1.0.0
Published
Transform stream that aggregates elements into larger chunks
Downloads
3
Readme
aggregating-stream
Transform stream that aggregates elements into larger chunks
Install
npm install @strong-roots-capital/aggregating-stream
Use
import { aggregatingStream } from '@strong-roots-capital/aggregating-stream'
const source = new Readable({objectMode: true, read() {}})
const aggregator = aggregatingStream(2, (chunks: number[]) => Math.max(...chunks))
const sink = new Writable({
objectMode: true,
write(chunk: number, _: string, callback: any) {
console.log(chunk)
callback()
}
})
source.pipe(aggregator).pipe(sink
;[1, 2, 3, 4, null].forEach(value => source.push(value))
//=>2,
//=>4
Index
Functions
Functions
aggregatingStream
▸ aggregatingStream<I
,O
>(chunksToAggregate: number
, aggregate: function
): Transform
Defined in aggregating-stream.ts:17
Aggregate specified number of received values with aggregating function and push the aggregated result.
Type parameters:
I
O
Parameters:
| Name | Type | Description |
| ------ | ------ | ------ |
| chunksToAggregate | number
| number of chunks to aggregate before each push |
| aggregate | function
| Function used to aggregate results into a single value |
Returns: Transform