UNPKG

cc-zos

Version:

Command-line interface for the ZeppelinOS smart contract platform

40 lines (32 loc) 1.06 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.allPromisesOrError = allPromisesOrError; var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } async function allPromisesOrError(promisesWithObjects, toErrorMessage) { const failures = []; const handlingFailure = async item => { let promise, object = null; try { if (_lodash2.default.isArray(item)) { [promise, object] = item; } else { promise = item; } return await promise; } catch (error) { failures.push([error, object]); return null; } }; const results = await Promise.all(_lodash2.default.map(promisesWithObjects, handlingFailure)); if (!_lodash2.default.isEmpty(failures)) { const message = failures.map(([err, obj]) => toErrorMessage ? toErrorMessage(err, obj) : err.message || err).join('\n'); throw Error(message); } return results; }