UNPKG

eris-keys

Version:

a JavaScript client library for eris-keys

33 lines (30 loc) 1.01 kB
var _forceReduced = require('./_forceReduced'); var _reduce = require('./_reduce'); var _xfBase = require('./_xfBase'); var isArrayLike = require('../isArrayLike'); module.exports = (function() { var preservingReduced = function(xf) { return { '@@transducer/init': _xfBase.init, '@@transducer/result': function(result) { return xf['@@transducer/result'](result); }, '@@transducer/step': function(result, input) { var ret = xf['@@transducer/step'](result, input); return ret['@@transducer/reduced'] ? _forceReduced(ret) : ret; } }; }; return function _xcat(xf) { var rxf = preservingReduced(xf); return { '@@transducer/init': _xfBase.init, '@@transducer/result': function(result) { return rxf['@@transducer/result'](result); }, '@@transducer/step': function(result, input) { return !isArrayLike(input) ? _reduce(rxf, result, [input]) : _reduce(rxf, result, input); } }; }; }());