2025-04-28 10:23:05 -04:00
|
|
|
/// <reference types="@sveltejs/kit" />
|
|
|
|
|
/// <reference no-default-lib="true"/>
|
|
|
|
|
/// <reference lib="esnext" />
|
|
|
|
|
/// <reference lib="webworker" />
|
2025-06-12 19:33:29 -04:00
|
|
|
import { installBroadcastChannelListener } from './broadcast-channel';
|
|
|
|
|
import { addFilesToCache, deleteOldCaches } from './cache';
|
|
|
|
|
import { handleFetchEvent } from './fetch-event';
|
2025-04-28 10:23:05 -04:00
|
|
|
|
|
|
|
|
const sw = globalThis as unknown as ServiceWorkerGlobalScope;
|
|
|
|
|
|
2025-06-12 19:33:29 -04:00
|
|
|
const handleActivate = (event: ExtendableEvent) => {
|
2025-04-28 10:23:05 -04:00
|
|
|
event.waitUntil(sw.clients.claim());
|
|
|
|
|
// Remove previous cached data from disk
|
|
|
|
|
event.waitUntil(deleteOldCaches());
|
2025-06-12 19:33:29 -04:00
|
|
|
};
|
2025-04-28 10:23:05 -04:00
|
|
|
|
2025-06-12 19:33:29 -04:00
|
|
|
const handleInstall = (event: ExtendableEvent) => {
|
|
|
|
|
event.waitUntil(sw.skipWaiting());
|
|
|
|
|
// Create a new cache and add all files to it
|
|
|
|
|
event.waitUntil(addFilesToCache());
|
2025-04-28 10:23:05 -04:00
|
|
|
};
|
2025-06-12 19:33:29 -04:00
|
|
|
|
|
|
|
|
sw.addEventListener('install', handleInstall);
|
|
|
|
|
sw.addEventListener('activate', handleActivate);
|
|
|
|
|
sw.addEventListener('fetch', handleFetchEvent);
|
|
|
|
|
installBroadcastChannelListener();
|