Transform stream that accumulates and emits data upon events
npm install accumulate-streamaccumulate-stream> Transform stream that accumulates and emits data upon events
``bash`
$ npm i -S accumulate-stream
$ yarn add accumulate-stream
`js
import { createReadStream } from 'fs';
import { once } from 'events';
import { AccumulateStream } from 'accumulate-stream';
(async (): void => {
// file.txt: (2kb)
// streams are awesome.
// streams are awesome.
// ... ...
const readable = createReadStream('file.txt');
const accumulator = new AccumulateStream({ size: '1kb', phrase: 'awesome' });
readable.pipe(accumulateStream);
// will be emitted every 1kb and 2 writes
accumulator.on('chunk', ({ buffer }) => console.log(emitted every chunk write - ${buffer.toString()}));emitted every 1kb of chunks - ${buffer.toString()}
accumulator.on('size', ({ buffer }) => console.log());emitted whenever "stream" phrase is detected in chunk - ${buffer.toString()}
accumulator.on('phrase', ({ buffer }) =>
console.log(),emitted whenever one of the conditions is met - ${buffer.toString()}
);
accumulator.on('data', ({ buffer }) => console.log());
await once(accumulator, 'data');
console.log(accumulator.getBuffer().toString()); // streams are awesome.
})();
``
// [TBD]