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 install keep-sequences-stream
n is the sequence length, with
3 as default. Default
===, but you can pass any function that returns
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
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
If you have a question, found a bug or want to propose a feature, have a look at the issues page.