34 lines
1.0 KiB
JavaScript
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.
|
|
});
|