Skip to content
Pass through sequences with minimum length.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.editorconfig
.gitignore
.travis.yml
benchmark.js
index.js
license.md
package.json
readme.md
test.js

readme.md

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 ISC-licensed chat on gitter support me on Patreon

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.

You can’t perform that action at this time.