mirror of
https://github.com/Instadapp/Swap-Aggregator-Subgraph.git
synced 2024-07-29 21:57:12 +00:00
23 lines
521 B
JavaScript
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
|
|
}
|