jaywalk
Version:
Runtime type validation
30 lines • 999 B
JavaScript
;
var Promise = require('any-promise');
var error_1 = require('./error');
function promiseEvery(fns) {
var err;
var results = new Array(fns.length);
if (fns.length === 0) {
return Promise.resolve(results);
}
function handle(fn, index) {
return new Promise(function (resolve) { return resolve(fn()); })
.then(function (result) {
results[index] = result;
return results;
}, function (error) {
if (!(error instanceof error_1.ValidationError)) {
return Promise.reject(error);
}
err = error;
return results;
});
}
return fns.reduce(function (result, next, index) {
return result.then(function () {
return handle(next, index);
});
}, Promise.resolve(results)).then(function (res) { return err ? Promise.reject(err) : res; });
}
exports.promiseEvery = promiseEvery;
//# sourceMappingURL=promises.js.map