From dddef149aea597a145e3717b2c461b251e0f6a8d Mon Sep 17 00:00:00 2001 From: memdmp Date: Wed, 20 Aug 2025 13:39:01 +0200 Subject: feat: oidc attempt 82845345 --- src/lib/oncePromise.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/lib/oncePromise.ts') diff --git a/src/lib/oncePromise.ts b/src/lib/oncePromise.ts index f6ce775..6ce6287 100644 --- a/src/lib/oncePromise.ts +++ b/src/lib/oncePromise.ts @@ -10,13 +10,19 @@ const ensurePromise = (maybePromise: T | PromiseLike): Promise => ? (maybePromise as Promise) : Promise.resolve(maybePromise); /** Returns a function that caches successful promises until time runs out, and throws away unsuccessful ones */ -export const oncePromise = (create: () => Promise, timeout = -1) => { +export const oncePromise = ( + create: () => Promise, + retries = true, + timeout = -1 +) => { let getPromise = (): Promise => { const oldGetPromise = getPromise, - promise = ensurePromise(create()).catch((e) => { - getPromise = oldGetPromise; - throw e; - }), + promise = retries + ? ensurePromise(create()).catch((e) => { + getPromise = oldGetPromise; + throw e; + }) + : ensurePromise(create()), expires = timeout > 0 ? performance.now() + timeout : 0; return (getPromise = expires ? ((() => -- cgit v1.2.3