"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.promiseMap = void 0; const noop = () => { }; /** * Creates promises of a list of values. Resolves all promises and * returns an array of resolved values. */ const promiseMap = (values, onValue, onError = noop) => new Promise((resolve) => { const length = values.length; if (!length) { return resolve([]); } const results = []; let resolvedCount = 0; for (let i = 0; i < length; i++) { const value = values[i]; const promise = onValue(value); promise.then((result) => { results[i] = result; resolvedCount++; if (resolvedCount === length) { resolve(results); } }, (error) => { results[i] = null; onError(error, value, i); resolvedCount++; if (resolvedCount === length) { resolve(results); } }); } }); exports.promiseMap = promiseMap;