Swap-Aggregator-Subgraph/node_modules/pull-stream/sinks/reduce.js
Richa-iitr d211083153 Revert "Revert "added handler""
This reverts commit c36ee8c5ca.
2022-07-03 07:30:05 +05:30

23 lines
521 B
JavaScript

'use strict'
var drain = require('./drain')
module.exports = function reduce (reducer, acc, cb ) {
if(!cb) cb = acc, acc = null
var sink = drain(function (data) {
acc = reducer(acc, data)
}, function (err) {
cb(err, acc)
})
if (arguments.length === 2)
return function (source) {
source(null, function (end, data) {
//if ended immediately, and no initial...
if(end) return cb(end === true ? null : end)
acc = data; sink(source)
})
}
else
return sink
}