From 1ad2282166a328a0e070f4b3387bc10b5ebb8c0a Mon Sep 17 00:00:00 2001 From: izzy Date: Mon, 24 Nov 2025 15:31:07 +0000 Subject: [PATCH] refactor: use while loop rather than recursive calls --- web/src/lib/utils/maintenance.ts | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/web/src/lib/utils/maintenance.ts b/web/src/lib/utils/maintenance.ts index c543243b6e..1f7415c3cc 100644 --- a/web/src/lib/utils/maintenance.ts +++ b/web/src/lib/utils/maintenance.ts @@ -34,20 +34,25 @@ export const loadMaintenanceAuth = async () => { }; export const loadMaintenanceStatus = async () => { - try { - const status = await maintenanceStatus(); - maintenanceStore.status.set(status); + let loaded = false; + while (!loaded) { + try { + const status = await maintenanceStatus(); + maintenanceStore.status.set(status); - if (status.action === MaintenanceAction.End) { - websocketStore.serverRestarting.set({ - isMaintenanceMode: false, - }); - } - } catch (error) { - const status = (error as { status: number })?.status; - if (status && status >= 500 && status < 600) { - await new Promise((r) => setTimeout(r, 1e3)); - await loadMaintenanceStatus(); + if (status.action === MaintenanceAction.End) { + websocketStore.serverRestarting.set({ + isMaintenanceMode: false, + }); + } + } catch (error) { + const status = (error as { status: number })?.status; + if (status && status >= 500 && status < 600) { + await new Promise((resolve) => setTimeout(resolve, 1000)); + continue; + } + + throw error; } } };