NODEDC_TASKMANAGER/plane-src/apps/web/public/sw.js

34 lines
1.0 KiB
JavaScript

/*
* Temporary cleanup service worker.
*
* We intentionally stop intercepting requests, clear legacy caches, and
* unregister ourselves. This prevents stale HTML/chunk bundles from surviving
* fresh web deployments and causing client-side hydration/runtime crashes.
*/
self.addEventListener("install", (event) => {
event.waitUntil(self.skipWaiting());
});
self.addEventListener("activate", (event) => {
event.waitUntil(
(async () => {
const cacheKeys = await caches.keys();
await Promise.all(cacheKeys.map((cacheKey) => caches.delete(cacheKey)));
const clients = await self.clients.matchAll({ type: "window", includeUncontrolled: true });
await Promise.all(
clients.map((client) =>
"navigate" in client && typeof client.navigate === "function" ? client.navigate(client.url) : Promise.resolve()
)
);
await self.registration.unregister();
})()
);
});
self.addEventListener("fetch", () => {
// Intentionally empty: do not cache or intercept runtime requests.
});