28 lines
877 B
TypeScript
28 lines
877 B
TypeScript
export function flushCachesAndUnregisterServiceWorker() {
|
|
return new Promise<void>((resolve) => {
|
|
if (!navigator.serviceWorker) {
|
|
console.log("No service worker active");
|
|
return resolve();
|
|
}
|
|
|
|
navigator.serviceWorker.addEventListener("message", (event) => {
|
|
if (event.data.type === "cacheFlushed") {
|
|
console.log("Cache flushed");
|
|
// Then unregister all service workers
|
|
navigator.serviceWorker.getRegistrations().then((registrations) => {
|
|
for (const registration of registrations) {
|
|
registration.unregister();
|
|
console.log("Service worker unregistered");
|
|
resolve();
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
// First flush active cache
|
|
navigator.serviceWorker.ready.then((registration) => {
|
|
registration.active!.postMessage({ type: "flushCache" });
|
|
});
|
|
});
|
|
}
|