54 lines
6.5 KiB
JavaScript
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvc3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHlCQUF5QjtBQUN6QixNQUFNLFNBQVMsR0FBRyxvQkFBb0IsQ0FBQztBQUV2QyxNQUFNLGNBQWMsR0FBRztJQUN2QixhQUFhO0lBQ2IsVUFBVTtJQUNWLGdCQUFnQjtJQUNoQixRQUFRO0lBQ1IsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixjQUFjO0NBQ2IsQ0FBQztBQUVGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFLLEVBQUUsRUFBRTtJQUN6QyxDQUFDLENBQUMsU0FBUyxDQUNULENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDVixNQUFNLEtBQUssR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FDVCxxREFBcUQsRUFDckQsY0FBYyxDQUNmLENBQUM7UUFDRixNQUFNLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckMsQ0FBQyxDQUFDLEVBQUUsQ0FDTCxDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBSyxFQUFFLEVBQUU7SUFDdkMsQ0FBQyxDQUFDLFdBQVcsQ0FDWCxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ1YsTUFBTSxDQUFDLEdBQUcsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsRUFBRTtZQUNMLE9BQU8sQ0FBQyxHQUFHLENBQ1QsNENBQTRDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQzVELENBQUM7WUFDRixPQUFPLENBQUMsQ0FBQztTQUNWO1FBRUQsSUFBSSxRQUFRLENBQUM7UUFDYixJQUFJO1lBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FDVCw4REFBOEQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FDOUUsQ0FBQztZQUVGLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDbkM7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakI7UUFDRCxNQUFNLEtBQUssR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FDVCw4Q0FBOEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FDOUQsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUE7U0FDOUQ7UUFDRCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdkMsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQyxDQUFDLEVBQUUsQ0FDTCxDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUM7QUFFSCxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRTNDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7UUFDbkIsS0FBSyxZQUFZO1lBQ2YsTUFBTSxLQUFLLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0RBQWdELENBQUMsQ0FBQztZQUM5RCxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDdEMsTUFBTTtLQUNUO0FBQ0gsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBFc3RhYmxpc2ggYSBjYWNoZSBuYW1lXG5jb25zdCBjYWNoZU5hbWUgPSBcImRhbmRlbGlvbl9jYWNoZV92MVwiO1xuXG5jb25zdCBjb250ZW50VG9DYWNoZSA9IFtcblwiL2luZGV4Lmh0bWxcIixcblwiL21haW4uanNcIixcblwiL21hcmtlZC5taW4uanNcIixcblwiL2RiLmpzXCIsXG5cIi9ib29rZXJseS53b2ZmMlwiLFxuXCIvdmlyZ2lsLndvZmYyXCIsXG5cIi9mYXZpY29uLmljb1wiXG5dO1xuXG5zZWxmLmFkZEV2ZW50TGlzdGVuZXIoXCJpbnN0YWxsXCIsIChlOmFueSkgPT4ge1xuICBlLndhaXRVbnRpbChcbiAgICAoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgY2FjaGUgPSBhd2FpdCBjYWNoZXMub3BlbihjYWNoZU5hbWUpO1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIFwiW1NlcnZpY2UgV29ya2VyXSBDYWNoaW5nIGFsbDogYXBwIHNoZWxsIGFuZCBjb250ZW50XCIsXG4gICAgICAgIGNvbnRlbnRUb0NhY2hlXG4gICAgICApO1xuICAgICAgYXdhaXQgY2FjaGUuYWRkQWxsKGNvbnRlbnRUb0NhY2hlKTtcbiAgICB9KSgpXG4gICk7XG59KTtcblxuc2VsZi5hZGRFdmVudExpc3RlbmVyKFwiZmV0Y2hcIiwgKGU6YW55KSA9PiB7XG4gIGUucmVzcG9uZFdpdGgoXG4gICAgKGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHIgPSBhd2FpdCBjYWNoZXMubWF0Y2goZS5yZXF1ZXN0KTtcbiAgICAgIGlmIChyKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBbU2VydmljZSBXb3JrZXJdIENhY2hlIGhpdCBmb3IgcmVzb3VyY2U6ICR7ZS5yZXF1ZXN0LnVybH1gXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiByO1xuICAgICAgfVxuXG4gICAgICBsZXQgcmVzcG9uc2U7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBgW1NlcnZpY2UgV29ya2VyXSBDYWNoZSBtaXNzLCBhdHRlbXB0aW5nIHRvIGZldGNoIHJlc291cmNlOiAke2UucmVxdWVzdC51cmx9YFxuICAgICAgICApO1xuXG4gICAgICAgIHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goZS5yZXF1ZXN0KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGUpO1xuICAgICAgfVxuICAgICAgY29uc3QgY2FjaGUgPSBhd2FpdCBjYWNoZXMub3BlbihjYWNoZU5hbWUpO1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGBbU2VydmljZSBXb3JrZXJdIEFkZGluZyByZXNvdXJjZSB0byBjYWNoZTogJHtlLnJlcXVlc3QudXJsfWBcbiAgICAgICk7XG5cbiAgICAgIGlmICghcmVzcG9uc2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggcmVzb3VyY2U6ICR7ZS5yZXF1ZXN0LnVybH1gKVxuICAgICAgfVxuICAgICAgY2FjaGUucHV0KGUucmVxdWVzdCwgcmVzcG9uc2UuY2xvbmUoKSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfSkoKVxuICApO1xufSk7XG5cbmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGFzeW5jIChlKSA9PiB7XG4gIGNvbnNvbGUubG9nKGBNZXNzYWdlIHJlY2VpdmVkOiAke2UuZGF0YX1gKTtcblxuICBzd2l0Y2ggKGUuZGF0YS50eXBlKSB7XG4gICAgY2FzZSBcInVwZGF0ZU1haW5cIjpcbiAgICAgIGNvbnN0IGNhY2hlID0gYXdhaXQgY2FjaGVzLm9wZW4oY2FjaGVOYW1lKTtcbiAgICAgIGNvbnNvbGUubG9nKGBbU2VydmljZSBXb3JrZXJdIENhY2hpbmcgbmV3IHJlc291cmNlOiBtYWluLmpzYCk7XG4gICAgICBjYWNoZS5wdXQoXCIvbWFpbi5qc1wiLCBuZXcgUmVzcG9uc2UoKSk7XG4gICAgICBicmVhaztcbiAgfVxufSk7XG4iXX0=
|