import { precacheAndRoute, matchPrecache } from "workbox-precaching"; import { setDefaultHandler } from "workbox-routing"; import { NetworkOnly } from "workbox-strategies"; declare let self: ServiceWorkerGlobalScope; self.addEventListener("message", (event) => { if (event.data && (event.data as { type: string }).type === "SKIP_WAITING") { void self.skipWaiting(); } }); precacheAndRoute(self.__WB_MANIFEST); const networkOnly = new NetworkOnly(); setDefaultHandler((options) => { const { request, url } = options; if (url && url.pathname.startsWith("/api/")) { return networkOnly.handle(options); } if (request instanceof Request && request.destination === "document") return matchPrecache("/index.html").then((r) => r == null ? Response.error() : r ); else return networkOnly.handle(options); });