2023-03-29 09:54:29 +02:00
|
|
|
export type PromiseSettledAndPartitioned<T> = [T[], any[]];
|
|
|
|
|
|
|
|
export function partitionPromiseSettledResults<T>() {
|
|
|
|
return [
|
2024-05-20 15:48:51 +02:00
|
|
|
(
|
|
|
|
[successes, failures]: PromiseSettledAndPartitioned<T>,
|
|
|
|
item: PromiseSettledResult<T>
|
|
|
|
) =>
|
2023-03-29 09:54:29 +02:00
|
|
|
item.status === "rejected"
|
2024-05-20 15:48:51 +02:00
|
|
|
? ([
|
|
|
|
successes,
|
|
|
|
[item.reason, ...failures]
|
|
|
|
] as PromiseSettledAndPartitioned<T>)
|
|
|
|
: ([
|
|
|
|
[item.value, ...successes],
|
|
|
|
failures
|
|
|
|
] as PromiseSettledAndPartitioned<T>),
|
2023-03-29 09:54:29 +02:00
|
|
|
[[], []] as PromiseSettledAndPartitioned<T>
|
|
|
|
] as const;
|
|
|
|
}
|