diff --git a/static/js/sw.js b/static/js/sw.js new file mode 100644 index 0000000..778550b --- /dev/null +++ b/static/js/sw.js @@ -0,0 +1,30 @@ +"use strict"; + +// used so I can prompt updates to the service worker +const version = "09-01-2025"; + +const cache = new Cache(); + +self.addEventListener("install", (event) => { + // can't add /static/* due to demos living there + cache.addAll([ + "/", + "/index.html", + "/static/css/*", + "/static/js/*", + "/static/images/*", + "/static/video/*" + ]); +}); + +async function handleCache(event) { + const cache_value = await cache.match(event.request); + if (cache_value === undefined) { + return fetch(event.request); + } + return cache_value; +} + +self.addEventListener("fetch", async (event) => { + event.respondWith(handleCache(event)); +});