Files
dandelion/sw.js
2024-03-10 15:48:35 -07:00

54 lines
6.5 KiB
JavaScript

"use strict";
// Establish a cache name
const cacheName = "dandelion_cache_v1";
const contentToCache = [
"/index.html",
"/main.js",
"/marked.min.js",
"/db.js",
"/bookerly.woff2",
"/virgil.woff2",
"/favicon.ico"
];
self.addEventListener("install", (e) => {
e.waitUntil((async () => {
const cache = await caches.open(cacheName);
console.log("[Service Worker] Caching all: app shell and content", contentToCache);
await cache.addAll(contentToCache);
})());
});
self.addEventListener("fetch", (e) => {
e.respondWith((async () => {
const r = await caches.match(e.request);
if (r) {
console.log(`[Service Worker] Cache hit for resource: ${e.request.url}`);
return r;
}
let response;
try {
console.log(`[Service Worker] Cache miss, attempting to fetch resource: ${e.request.url}`);
response = await fetch(e.request);
}
catch (e) {
console.warn(e);
}
const cache = await caches.open(cacheName);
console.log(`[Service Worker] Adding resource to cache: ${e.request.url}`);
if (!response) {
throw new Error(`Failed to fetch resource: ${e.request.url}`);
}
cache.put(e.request, response.clone());
return response;
})());
});
addEventListener("message", async (e) => {
console.log(`Message received: ${e.data}`);
switch (e.data.type) {
case "updateMain":
const cache = await caches.open(cacheName);
console.log(`[Service Worker] Caching new resource: main.js`);
cache.put("/main.js", new Response());
break;
}
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvc3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHlCQUF5QjtBQUN6QixNQUFNLFNBQVMsR0FBRyxvQkFBb0IsQ0FBQztBQUV2QyxNQUFNLGNBQWMsR0FBRztJQUN2QixhQUFhO0lBQ2IsVUFBVTtJQUNWLGdCQUFnQjtJQUNoQixRQUFRO0lBQ1IsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixjQUFjO0NBQ2IsQ0FBQztBQUVGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFLLEVBQUUsRUFBRTtJQUN6QyxDQUFDLENBQUMsU0FBUyxDQUNULENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDVixNQUFNLEtBQUssR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FDVCxxREFBcUQsRUFDckQsY0FBYyxDQUNmLENBQUM7UUFDRixNQUFNLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckMsQ0FBQyxDQUFDLEVBQUUsQ0FDTCxDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBSyxFQUFFLEVBQUU7SUFDdkMsQ0FBQyxDQUFDLFdBQVcsQ0FDWCxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ1YsTUFBTSxDQUFDLEdBQUcsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ04sT0FBTyxDQUFDLEdBQUcsQ0FDVCw0Q0FBNEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FDNUQsQ0FBQztZQUNGLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQztRQUVELElBQUksUUFBUSxDQUFDO1FBQ2IsSUFBSSxDQUFDO1lBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FDVCw4REFBOEQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FDOUUsQ0FBQztZQUVGLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLENBQUM7UUFDRCxNQUFNLEtBQUssR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FDVCw4Q0FBOEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FDOUQsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQTtRQUMvRCxDQUFDO1FBQ0QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUMsQ0FBQyxFQUFFLENBQ0wsQ0FBQztBQUNKLENBQUMsQ0FBQyxDQUFDO0FBRUgsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUUzQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEIsS0FBSyxZQUFZO1lBQ2YsTUFBTSxLQUFLLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0RBQWdELENBQUMsQ0FBQztZQUM5RCxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDdEMsTUFBTTtJQUNWLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEVzdGFibGlzaCBhIGNhY2hlIG5hbWVcbmNvbnN0IGNhY2hlTmFtZSA9IFwiZGFuZGVsaW9uX2NhY2hlX3YxXCI7XG5cbmNvbnN0IGNvbnRlbnRUb0NhY2hlID0gW1xuXCIvaW5kZXguaHRtbFwiLFxuXCIvbWFpbi5qc1wiLFxuXCIvbWFya2VkLm1pbi5qc1wiLFxuXCIvZGIuanNcIixcblwiL2Jvb2tlcmx5LndvZmYyXCIsXG5cIi92aXJnaWwud29mZjJcIixcblwiL2Zhdmljb24uaWNvXCJcbl07XG5cbnNlbGYuYWRkRXZlbnRMaXN0ZW5lcihcImluc3RhbGxcIiwgKGU6YW55KSA9PiB7XG4gIGUud2FpdFVudGlsKFxuICAgIChhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBjYWNoZSA9IGF3YWl0IGNhY2hlcy5vcGVuKGNhY2hlTmFtZSk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgXCJbU2VydmljZSBXb3JrZXJdIENhY2hpbmcgYWxsOiBhcHAgc2hlbGwgYW5kIGNvbnRlbnRcIixcbiAgICAgICAgY29udGVudFRvQ2FjaGVcbiAgICAgICk7XG4gICAgICBhd2FpdCBjYWNoZS5hZGRBbGwoY29udGVudFRvQ2FjaGUpO1xuICAgIH0pKClcbiAgKTtcbn0pO1xuXG5zZWxmLmFkZEV2ZW50TGlzdGVuZXIoXCJmZXRjaFwiLCAoZTphbnkpID0+IHtcbiAgZS5yZXNwb25kV2l0aChcbiAgICAoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgciA9IGF3YWl0IGNhY2hlcy5tYXRjaChlLnJlcXVlc3QpO1xuICAgICAgaWYgKHIpIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYFtTZXJ2aWNlIFdvcmtlcl0gQ2FjaGUgaGl0IGZvciByZXNvdXJjZTogJHtlLnJlcXVlc3QudXJsfWBcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHI7XG4gICAgICB9XG5cbiAgICAgIGxldCByZXNwb25zZTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBbU2VydmljZSBXb3JrZXJdIENhY2hlIG1pc3MsIGF0dGVtcHRpbmcgdG8gZmV0Y2ggcmVzb3VyY2U6ICR7ZS5yZXF1ZXN0LnVybH1gXG4gICAgICAgICk7XG5cbiAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChlLnJlcXVlc3QpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oZSk7XG4gICAgICB9XG4gICAgICBjb25zdCBjYWNoZSA9IGF3YWl0IGNhY2hlcy5vcGVuKGNhY2hlTmFtZSk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYFtTZXJ2aWNlIFdvcmtlcl0gQWRkaW5nIHJlc291cmNlIHRvIGNhY2hlOiAke2UucmVxdWVzdC51cmx9YFxuICAgICAgKTtcblxuICAgICAgaWYgKCFyZXNwb25zZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBmZXRjaCByZXNvdXJjZTogJHtlLnJlcXVlc3QudXJsfWApXG4gICAgICB9XG4gICAgICBjYWNoZS5wdXQoZS5yZXF1ZXN0LCByZXNwb25zZS5jbG9uZSgpKTtcbiAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9KSgpXG4gICk7XG59KTtcblxuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgYXN5bmMgKGUpID0+IHtcbiAgY29uc29sZS5sb2coYE1lc3NhZ2UgcmVjZWl2ZWQ6ICR7ZS5kYXRhfWApO1xuXG4gIHN3aXRjaCAoZS5kYXRhLnR5cGUpIHtcbiAgICBjYXNlIFwidXBkYXRlTWFpblwiOlxuICAgICAgY29uc3QgY2FjaGUgPSBhd2FpdCBjYWNoZXMub3BlbihjYWNoZU5hbWUpO1xuICAgICAgY29uc29sZS5sb2coYFtTZXJ2aWNlIFdvcmtlcl0gQ2FjaGluZyBuZXcgcmVzb3VyY2U6IG1haW4uanNgKTtcbiAgICAgIGNhY2hlLnB1dChcIi9tYWluLmpzXCIsIG5ldyBSZXNwb25zZSgpKTtcbiAgICAgIGJyZWFrO1xuICB9XG59KTtcbiJdfQ==