From 9d136c8dd5ff2e71fa700f5e1a741aac7a664c2a Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Tue, 16 Jan 2024 21:02:55 +0900 Subject: [PATCH] fix: apply fix from eslint --- src/providers/decorators.ts | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/providers/decorators.ts b/src/providers/decorators.ts index d2e1f56c..f0746b26 100644 --- a/src/providers/decorators.ts +++ b/src/providers/decorators.ts @@ -74,22 +74,23 @@ function memoize unknown>(fn: T): T { }) as T; } -function retry unknown>( +function retry Promise>( fn: T, { retries = 3, delay = 1000 } = {}, -): T { - return ((...args) => { - try { - return fn(...args); - } catch (error) { - if (retries > 0) { +) { + return async (...args: unknown[]) => { + let latestError: unknown; + while (retries > 0) { + try { + return await fn(...args); + } catch (error) { retries--; - setTimeout(() => retry(fn, { retries, delay })(...args), delay); - } else { - throw error; + await new Promise((resolve) => setTimeout(resolve, delay)); + latestError = error; } } - }) as T; + throw latestError; + }; } export default {