From cb3ae9363d76a61aadca265c91698517e07e702c Mon Sep 17 00:00:00 2001 From: Percs <83934299+Percslol@users.noreply.github.com> Date: Thu, 11 Apr 2024 19:29:53 -0500 Subject: [PATCH] there are bare clients --- package.json | 2 +- public/sw.js | 13 +++++++++++-- src/components/ts/TransportManager.ts | 12 ++++++++---- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index e28a54a..faad729 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/node": "^8.2.5", "@astrojs/sitemap": "^3.1.2", - "@mercuryworkshop/bare-mux": "^1.0.5", + "@mercuryworkshop/bare-mux": "^1.0.7", "@mercuryworkshop/epoxy-transport": "^1.1.0", "@mercuryworkshop/libcurl-transport": "^1.3.1", "@titaniumnetwork-dev/ultraviolet": "^3.0.0", diff --git a/public/sw.js b/public/sw.js index b132ade..644795a 100644 --- a/public/sw.js +++ b/public/sw.js @@ -5,6 +5,15 @@ importScripts("/uv/uv.bundle.js"); importScripts("/uv.config.js"); importScripts(__uv$config.sw); -const sw = new UVServiceWorker(); +const uv = new UVServiceWorker(); -self.addEventListener("fetch", (event) => event.respondWith(sw.fetch(event))); +self.addEventListener('fetch', event => { + event.respondWith( + (async ()=>{ + if(event.request.url.startsWith(location.origin + __uv$config.prefix)) { + return await uv.fetch(event); + } + return await fetch(event.request); + })() + ); +}); diff --git a/src/components/ts/TransportManager.ts b/src/components/ts/TransportManager.ts index 6c2b0b8..8fc9365 100644 --- a/src/components/ts/TransportManager.ts +++ b/src/components/ts/TransportManager.ts @@ -65,17 +65,21 @@ export default class TransportManager { export const TransportMgr = new TransportManager(); export async function registerSW() { + navigator.serviceWorker.ready.then(async (sw) => { + await registerRemoteListener(sw.active!); + TransportMgr.setTransport( + TransportMgr.getTransport(), + localStorage.getItem("alu__wispUrl") || wispURLDefault + ); + }) return new Promise(async (resolve) => { await navigator.serviceWorker - .register("/sw.js", { - scope: window.__uv$config.prefix, - }) + .register("/sw.js") .then((registration) => { registration.update().then(() => { console.log("Registered SW!"); resolve(null); }); - }); }); }