fix(service-worker): optimize proxy handler initialization
Refactor the proxy_handler function to avoid redundant WASM runs and recursive calls. Now, WASM is initialized only if _portal_proxy is undefined, and if the proxy remains unavailable, the request is handled by a direct fetch instead of retrying the handler. This improves efficiency and prevents potential infinite loops.
lemon-mint committed
Oct 31, 2025 at 12:41 UTC
5e3db8bef1412dc37e793ae071f2e97e5bd571fa
1 file changed
+5
-4
cmd/webclient/service-worker.js
+5
-4
@@ -69,6 +69,10 @@ async function sleep(ms) {
69
}
70
71
async function proxy_handler(event) {
72
+ if (!_portal_proxy) {
73
+ await runWASM();
74
+ }
75
+
76
console.log('Service Worker: Fetch event:', event.request);
77
if (typeof _portal_proxy != 'undefined') {
78
event.respondWith((async () => {
@@ -86,10 +90,7 @@ async function proxy_handler(event) {
90
}
91
console.log('Service Worker: _portal_proxy is not defined. Fetch event ignored.');
92
89
- _portal_proxy = undefined;
90
- await runWASM();
91
- await sleep(100);
92
- await proxy_handler(event);
93
+ event.respondWith(fetch(event.request));
94
}
95
96
self.addEventListener('fetch', proxy_handler);