0.1.1 • Published 10 years ago
keep-sequences-stream v0.1.1
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 ] // outputInstalling
npm install keep-sequences-streamUsage
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 twiceThings 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.