24 lines
715 B
JavaScript
24 lines
715 B
JavaScript
// public/service-worker.js
|
|
self.addEventListener('install', () => self.skipWaiting());
|
|
|
|
self.addEventListener('activate', async () => {
|
|
// Unregister old CRA SW
|
|
const regs = await self.registration.scope ? [self.registration] : await self.clients.getRegistrations();
|
|
for (const reg of regs) {
|
|
if (reg && reg.scriptURL.endsWith('service-worker.js')) {
|
|
await reg.unregister();
|
|
}
|
|
}
|
|
|
|
// Clear all caches
|
|
if ('caches' in self) {
|
|
const keys = await caches.keys();
|
|
for (const key of keys) {
|
|
await caches.delete(key);
|
|
}
|
|
}
|
|
|
|
// Reload all clients
|
|
const clients = await self.clients.matchAll({ type: 'window' });
|
|
clients.forEach(client => client.navigate(client.url));
|
|
});
|