12 lines
526 B
TypeScript
12 lines
526 B
TypeScript
|
export type PromiseSettledAndPartitioned<T> = [T[], any[]];
|
||
|
|
||
|
export function partitionPromiseSettledResults<T>() {
|
||
|
return [
|
||
|
([successes, failures]: PromiseSettledAndPartitioned<T>, item: PromiseSettledResult<T>) =>
|
||
|
item.status === "rejected"
|
||
|
? ([successes, [item.reason, ...failures]] as PromiseSettledAndPartitioned<T>)
|
||
|
: ([[item.value, ...successes], failures] as PromiseSettledAndPartitioned<T>),
|
||
|
[[], []] as PromiseSettledAndPartitioned<T>
|
||
|
] as const;
|
||
|
}
|