fast-iterable
Version:
Provides LINQ-like fluent api operations for iterables and async iterables (ES2018+).
13 lines (12 loc) • 568 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.reduceAndMapRecipe = void 0;
const prepare_1 = require("../types-internal/prepare");
function reduceAndMapRecipe({ forEach, resolver }) {
return function (reducer, initial, baseResult) {
let accumulator = initial;
const result = (0, prepare_1.prepare)(baseResult);
return resolver(forEach.call(this, (t) => resolver(reducer(accumulator, t), (r) => (accumulator = r))), () => result(accumulator));
};
}
exports.reduceAndMapRecipe = reduceAndMapRecipe;