@newos/cli
Version:
Command-line interface for the NewOS
36 lines • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.allPromisesOrError = void 0;
const lodash_1 = require("lodash");
async function allPromisesOrError(promisesWithObjects, toErrorMessage) {
const failures = [];
const handlingFailure = async (item) => {
let promise;
let object = null;
try {
if (Array.isArray(item)) {
[promise, object] = item;
}
else {
promise = item;
}
return await promise;
}
catch (error) {
failures.push({ error, object });
return null;
}
};
const results = await Promise.all(lodash_1.map(promisesWithObjects, handlingFailure));
if (!lodash_1.isEmpty(failures)) {
if (failures.length === 1)
throw failures[0].error;
const message = failures
.map(({ error, object }) => (toErrorMessage ? toErrorMessage(error, object) : error.message || error))
.join('\n');
throw Error(message);
}
return results;
}
exports.allPromisesOrError = allPromisesOrError;
//# sourceMappingURL=async.js.map