24 lines
641 B
TypeScript

import { fromCache, precache } from "./cache";
import { openDB as createDB } from "./db";
import { handle, PathHandler } from "./fetchHandlers";
declare const self: ServiceWorkerGlobalScope;
self.addEventListener("install", (event) => {
self.skipWaiting();
event.waitUntil(precache());
});
self.addEventListener("activate", (event) => event.waitUntil(createDB()));
self.addEventListener("fetch", (event) => {
const { request } = event;
const path = new URL(request.url).pathname;
const handlers: PathHandler[] = [
{ path: "", getResponse: () => fromCache(request) },
];
event.respondWith(handle(path, handlers));
});