export function allSettled(promises: Promise<any>[]): Promise<PromiseSettledResult<any>[]> {
const mapped = promises.map(p =>
p instanceof Promise
? p
.then(
value =>
({
status: 'fulfilled',
value,
}) as const,
)
.catch(
reason =>
status: 'rejected',
reason,
: ({
value: p,
} as const),
return Promise.all(mapped)
}
export function sleep(ms: number): Promise<void> {
return new Promise(resolve => setTimeout(resolve, ms))