callbag-filter

Callbag operator that conditionally lets data pass through

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
callbag-filter
601.1.05 years ago6 years agoMinified + gzip package size for callbag-filter in KB

Readme

/ callbag-filter -------------- Callbag operator that conditionally lets data pass through. Works on either pullable or listenable sources. npm install callbag-filter Example: const fromIter = require('callbag-from-iter'); const iterate = require('callbag-iterate'); const filter = require('callbag-filter'); const source = filter(x => x % 2)(fromIter(1,2,3,4,5)); iterate(x => console.log(x))(source); // 1 // 3 // 5 /
const filter = condition => source => (start, sink) => { if (start !== 0) return; let talkback; source(0, (t, d) => {
if (t === 0) {
  talkback = d;
  sink(t, d);
} else if (t === 1) {
  if (condition(d)) sink(t, d);
  else talkback(1);
}
else sink(t, d);
}); };
module.exports = filter;