UNPKG

@codibre/fluent-iterable

Version:

Provides LINQ-like fluent api operations for iterables and async iterables (ES2018+).

17 lines (16 loc) 678 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.reduceRecipe = reduceRecipe; const utils_1 = require("../utils"); function reduceRecipe(reduceAndMap, resolver) { return function (reducer, initial) { if (arguments.length > 1) { return reduceAndMap.call(this, reducer, initial, utils_1.identity); } const iteratorFunc = Symbol.iterator in this ? this[Symbol.iterator] : this[Symbol.asyncIterator]; const iterator = iteratorFunc.call(this); return resolver(iterator.next(), (first) => reduceAndMap.call(iterator, reducer, first.value, utils_1.identity)); }; }