@worker-tools/middleware
Version:
A suite of standalone HTTP server middlewares for Worker Runtimes.
27 lines • 1.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.unsettle = exports.isRejected = exports.isFulfilled = void 0;
const aggregate_error_js_1 = require("./aggregate-error.js");
const isFulfilled = (r) => {
return r.status === 'fulfilled';
};
exports.isFulfilled = isFulfilled;
const isRejected = (r) => {
return r.status === 'rejected';
};
exports.isRejected = isRejected;
/**
* Helper function that unwinds `Promise.allSettled`:
* Takes the promise returned and throws a `AggregateError` iff at least one promise settled with a rejection.
* Otherwise returns the list of fulfilled values.
* @param allSettledPromise A promise returned by `Promise.allSettled`
* @returns List of fulfilled values
*/
const unsettle = async (allSettledPromise) => {
const rs = await allSettledPromise;
if (rs.every(exports.isFulfilled))
return rs.map(r => r.value);
throw new aggregate_error_js_1.AggregateError(rs.filter(exports.isRejected).map(r => r.reason), "One or more Promises in 'unsettle' were rejected");
};
exports.unsettle = unsettle;
//# sourceMappingURL=unsettle.js.map