| 1 | export function groupByStatus<T>(results: PromiseSettledResult<T>[]): { |
| 2 | fulfilled: PromiseFulfilledResult<T>[]; |
| 3 | rejected: PromiseRejectedResult[]; |
| 4 | } { |
| 5 | return results.reduce<{ |
| 6 | fulfilled: PromiseFulfilledResult<T>[]; |
| 7 | rejected: PromiseRejectedResult[]; |
| 8 | }>( |
| 9 | (acc, result) => |
| 10 | result.status === 'fulfilled' |
| 11 | ? { ...acc, fulfilled: [...acc.fulfilled, result] } |
| 12 | : { ...acc, rejected: [...acc.rejected, result] }, |
| 13 | { fulfilled: [], rejected: [] }, |
| 14 | ); |
| 15 | } |
| 16 | |
| 17 | export async function asyncSequential<TInput, TOutput>( |
| 18 | items: TInput[], |