From f8b73bace67a64f4d7884eeba8e6bde40d77ee01 Mon Sep 17 00:00:00 2001 From: Abdullah Atta Date: Wed, 26 Mar 2025 15:29:29 +0500 Subject: [PATCH] web: fix `Service worker did not respond.` error --- apps/web/src/utils/version.ts | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/apps/web/src/utils/version.ts b/apps/web/src/utils/version.ts index 0f0cb28f8..e2594550f 100644 --- a/apps/web/src/utils/version.ts +++ b/apps/web/src/utils/version.ts @@ -38,16 +38,12 @@ function versionAsNumber(version: string) { export function getServiceWorkerVersion( serviceWorker: ServiceWorker ): Promise { - return new Promise((resolve, reject) => { - const timeout = setTimeout( - () => reject("Service worker did not respond."), - 10 * 1000 - ); - navigator.serviceWorker.addEventListener("message", (ev) => { + return new Promise((resolve) => { + function onMessage(ev: MessageEvent) { const { type } = ev.data; if (type !== "GET_VERSION") return; - clearTimeout(timeout); + navigator.serviceWorker.removeEventListener("message", onMessage); const { version, hash, isBeta } = ev.data; resolve({ formatted: format(version, hash, PLATFORM), @@ -56,7 +52,9 @@ export function getServiceWorkerVersion( hash, isBeta }); - }); + } + + navigator.serviceWorker.addEventListener("message", onMessage); serviceWorker.postMessage({ type: "GET_VERSION" }); }); }