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