cs
callbag-scan
npm i callbag-scan
cs

callbag-scan

👜 Callbag operator that combines consecutive values from the same source

by André Staltz

1.1.0 (see all)License:MITTypeScript:Built-In
npm i callbag-scan
Readme

/**

  • callbag-scan

  • Callbag operator that combines consecutive values from the same source.
  • It's essentially like array .reduce, but delivers a new accumulated value
  • for each value from the callbag source. Works on either pullable or
  • listenable sources.
  • npm install callbag-scan
  • Example:
  • const fromIter = require('callbag-from-iter');
    
  • const iterate = require('callbag-iterate');
    
  • const scan = require('callbag-scan');
    
  • const iterSource = fromIter([1,2,3,4,5]);
    
  • const scanned = scan((prev, x) => prev + x, 0)(iterSource);
    
  • scanned(0, iterate(x => console.log(x))); // 1
    
  •                                           // 3
    
  •                                           // 6
    
  •                                           // 10
    
  •                                           // 15
    
    */

function scan(reducer, seed) { let hasAcc = arguments.length === 2; return source => (start, sink) => { if (start !== 0) return; let acc = seed; source(0, (t, d) => { if (t === 1) { acc = hasAcc ? reducer(acc, d) : ((hasAcc = true), d); sink(1, acc); } else sink(t, d); }); }; }

module.exports = scan;

Downloads/wk

1K

GitHub Stars

5

LAST COMMIT

9mos ago

MAINTAINERS

1

CONTRIBUTORS

4

OPEN ISSUES

0

OPEN PRs

1
VersionTagPublished
1.1.0
latest
4yrs ago
No alternatives found
No tutorials found
Add a tutorial

Rate & Review

100
No reviews found
Be the first to rate