import { cleanupOutdatedCaches, precacheAndRoute } from "workbox-precaching"; import { clientsClaim } from "workbox-core"; import type { AnyCall } from "./services"; function checkServiceWorker( self: WorkerGlobalScope, ): self is ServiceWorkerGlobalScope { return !!(self as unknown as ServiceWorkerGlobalScope).registration; } if (checkServiceWorker(self)) { cleanupOutdatedCaches(); precacheAndRoute(self.__WB_MANIFEST, { cleanURLs: false }); // auto update self.skipWaiting(); clientsClaim(); } else { throw new TypeError("This entry point must be run in a service worker"); } self.addEventListener("message", (event: MessageEvent) => { if (event.data.method === "ping") { event.source.postMessage({id: event.data.id, jsonrpc: "2.0", result: undefined}) } else { event.source.postMessage({ error: { code: -32601, message: "Method not found" } }) } })