prasi-bun/app/web/src/sworker.ts

60 lines
1.4 KiB
TypeScript

import { manifest, version } from "@parcel/service-worker";
const g = {
cache: null as null | Cache,
};
async function install() {
const cache = await caches.open(version);
g.cache = cache;
await cache.addAll(manifest);
}
addEventListener("install", (e) => (e as ExtendableEvent).waitUntil(install()));
async function activate() {
const keys = await caches.keys();
await Promise.all(keys.map((key) => key !== version && caches.delete(key)));
}
addEventListener("activate", (e) =>
(e as ExtendableEvent).waitUntil(activate())
);
// addEventListener("fetch", async (evt) => {
// const e = evt as FetchEvent;
// e.respondWith(
// (async () => {
// if (!g.cache) {
// g.cache = await caches.open(version);
// }
// const cache = g.cache;
// const r = await cache.match(e.request);
// if (r) {
// return r;
// }
// const url = e.request.url;
// if (url.includes("_api_frm")) {
// cache.add(e.request);
// }
// return await fetch(e.request);
// })()
// );
// });
// addEventListener("message", async (e) => {
// const type = e.data.type;
// if (!g.cache) {
// g.cache = await caches.open(version);
// }
// const cache = g.cache;
// switch (type) {
// case "add-cache":
// if (!(await cache.match(e.data.url))) {
// await cache.add(e.data.url);
// }
// break;
// }
// });