From 8a8bbf7c8a824387a8c3077a7e10ad053b709d11 Mon Sep 17 00:00:00 2001 From: PalmDevs Date: Sat, 10 May 2025 18:18:08 +0700 Subject: [PATCH] feat(lib/utils): export `promises` --- lib/utils/package.json | 3 +++ lib/utils/src/promises.ts | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 lib/utils/src/promises.ts diff --git a/lib/utils/package.json b/lib/utils/package.json index 9d37aba..36eba3c 100644 --- a/lib/utils/package.json +++ b/lib/utils/package.json @@ -21,6 +21,9 @@ "./objects": { "default": "./src/objects.ts" }, + "./promises": { + "default": "./src/promises.ts" + }, "./proxy": { "default": "./src/proxy.ts" }, diff --git a/lib/utils/src/promises.ts b/lib/utils/src/promises.ts new file mode 100644 index 0000000..c202b6b --- /dev/null +++ b/lib/utils/src/promises.ts @@ -0,0 +1,21 @@ +export function allSettled(promises: Promise[]): Promise[]> { + const mapped = promises.map(p => + p + ?.then( + value => + ({ + status: 'fulfilled', + value, + }) as const, + ) + .catch( + reason => + ({ + status: 'rejected', + reason, + }) as const, + ), + ) + + return Promise.all(mapped) +}