strong-roots-capital / aggregating-stream

Transform stream that aggregates elements into larger chunks

Home Page:https://www.npmjs.com/package/@strong-roots-capital/aggregating-stream

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

aggregating-stream Build status npm version codecov

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


About

Transform stream that aggregates elements into larger chunks

https://www.npmjs.com/package/@strong-roots-capital/aggregating-stream


Languages

Language:TypeScript 50.3%Language:JavaScript 49.7%