keep-sequences-stream

0.1.1 • Public • Published

keep-sequences-stream 🔍

Pass through sequences with minimum length.

// minimum length is 3
[1, 2, 2, 2, 2, 3, 3, 1, 1, 1, 3] // input
[   2, 2, 2, 2,       1, 1, 1   ] // output

npm version build status dependency status dev dependency status ISC-licensed

Installing

npm install keep-sequences-stream

Usage

keepSequencesStream([n], [comparator])

Returns a duplex stream in object mode.

n is the sequence length, with 3 as default. Default comparator is ===, but you can pass any function that returns true or false.

Example

const keepSequencesStream = require('keep-sequences-stream')

let s = keepSequencesStream(2)
for (let x of [3, -1, -1, 2, -1]) s.write(x)
s.on('data', console.log) // `-1` will be logged twice

Things to keep in mind

Because comparator can implicate equality for values that may not be strictly equal (===), there must be an array of values in the current sequence. So for n = 1000, up to 1000 elements will be kept in memory, which kind of defeats the purpose of a stream.

Just comparing strictly (===) would be more memory-efficient, as the last equal value could just be emitted n times.

Contributing

If you have a question, found a bug or want to propose a feature, have a look at the issues page.

Package Sidebar

Install

npm i keep-sequences-stream

Weekly Downloads

0

Version

0.1.1

License

ISC

Last publish

Collaborators

  • derhuerst