From aecd7540e6dce8e32f1d955466dda459a2a561e8 Mon Sep 17 00:00:00 2001 From: Alexey Zinoviev Date: Tue, 6 Aug 2024 19:44:01 +0400 Subject: [PATCH] uberf-7765: only retry network errors when loading config for desktop app Signed-off-by: Alexey Zinoviev --- desktop/src/ui/preload.ts | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/desktop/src/ui/preload.ts b/desktop/src/ui/preload.ts index 1daeb28ac2..4502e52ec1 100644 --- a/desktop/src/ui/preload.ts +++ b/desktop/src/ui/preload.ts @@ -19,21 +19,27 @@ export function concatLink (host: string, path: string): string { async function loadServerConfig (url: string): Promise { let retries = 5 - let error: any + let res: Response | undefined do { try { - return await (await fetch(url)).json() + res = await fetch(url) + break } catch (e) { - error = e retries-- - if (retries > 0) { - await new Promise((resolve) => setTimeout(resolve, 1000 * (5 - retries))) + if (retries === 0) { + throw new Error(`Failed to load server config: ${e}`) } + await new Promise((resolve) => setTimeout(resolve, 1000 * (5 - retries))) } } while (retries > 0) - throw new Error(`Failed to load server config: ${error}`) + if (res === undefined) { + // In theory should never get here + throw new Error('Failed to load server config') + } + + return await res.json() } const openArg = (process.argv.find((it) => it.startsWith('--open=')) ?? '').split('--open=')[1]