UNPKG

stream-chain

Version:

Chain functions as transform streams.

27 lines (22 loc) 513 B
// @ts-self-types="./fold.d.ts" 'use strict'; const {none, flushable} = require('../defs'); const fold = (fn, acc) => flushable(value => { if (value === none) { // clean up acc const result = acc; acc = null; return result; } const result = fn(acc, value); if (result && typeof result.then == 'function') { return result.then(result => { acc = result; return none; }); } acc = result; return none; }); module.exports = fold;