1 | import { AggregateError } from "./aggregate-error.js";
|
2 |
|
3 | export const isFulfilled = <T>(r: PromiseSettledResult<T>): r is PromiseFulfilledResult<T> => {
|
4 | return r.status === 'fulfilled';
|
5 | }
|
6 | export const isRejected = <T>(r: PromiseSettledResult<T>): r is PromiseRejectedResult => {
|
7 | return r.status === 'rejected';
|
8 | }
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 | export const unsettle = async <T>(allSettledPromise: Promise<PromiseSettledResult<T>[]>): Promise<T[]> => {
|
18 | const rs = await allSettledPromise;
|
19 | if (rs.every(isFulfilled)) return rs.map(r => r.value)
|
20 | throw new AggregateError(rs.filter(isRejected).map(r => r.reason), "One or more Promises in 'unsettle' were rejected");
|
21 | }
|