UNPKG

async-ray

Version:

Allow perform every, filter, find, findIndex, forEach, map, reduce, reduceRight and some on array using Async callback

45 lines 1.71 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.aReduce = void 0; /** * Async Reduce function * * @export * @template T * @template R * @param {T[]} elements * @param {CallBackReduce<T, R>} cb * @param {R} [initialValue] * @returns {Promise<T | R>} */ function aReduce(elements, cb, initialValue) { return __awaiter(this, void 0, void 0, function* () { if (!elements.length && initialValue === undefined) { throw new Error('Reduce of empty array with no initial value'); } let reducedValue; let index = 0; if (initialValue === undefined) { reducedValue = elements[0]; index++; } else { reducedValue = initialValue; } for (; index < elements.length; index++) { reducedValue = yield cb(reducedValue, elements[index], index, elements); } return reducedValue; }); } exports.aReduce = aReduce; //# sourceMappingURL=a_reduce.js.map