diff options
change to 11ty.js for non markdown templates
Signed-off-by: Marc Pervaz Boocha <mboocha@sudomsg.xyz>
Please enter the commit message for your changes. Lines starting
with '#' will be ignored, and an empty message aborts the commit.
On branch main
Your branch is up to date with 'origin/main'.
Changes to be committed:
modified: .eleventy.js
modified: .eslintrc.js
new file: assets/index.css
new file: assets/index.js
new file: assets/mandle.png
new file: assets/sw.js
renamed: favicon.ico -> favicon/icon.ico
modified: package-lock.json
modified: package.json
modified: src/about.md
deleted: src/assets/atom.njk
deleted: src/assets/error.md
deleted: src/assets/index.css
deleted: src/assets/index.mjs
deleted: src/assets/json.njk
deleted: src/assets/manifest.njk
deleted: src/assets/prism.css
deleted: src/assets/robot.njk
deleted: src/assets/sitemap.njk
deleted: src/assets/sw.mjs
new file: src/blog.11ty.js
deleted: src/blog.njk
modified: src/data/env.js
deleted: src/data/err.js
modified: src/data/metadata.js
deleted: src/data/navigator.js
new file: src/gen/atom.11ty.js
new file: src/gen/error.11ty.js
renamed: src/assets/assets.11tydata.js -> src/gen/gen.11tydata.js
new file: src/gen/json.11ty.js
new file: src/gen/manifest.11ty.js
new file: src/gen/metadata.11ty.js
new file: src/gen/robot.11ty.js
new file: src/gen/sitemap.11ty.js
modified: src/index.md
new file: src/layouts/base.11ty.js
deleted: src/layouts/base.njk
new file: src/layouts/page.11ty.js
new file: src/layouts/post.11ty.js
deleted: src/layouts/post.njk
modified: src/post/post.11tydata.js
Diffstat (limited to 'assets/sw.js')
-rw-r--r-- | assets/sw.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/assets/sw.js b/assets/sw.js new file mode 100644 index 0000000..e6b6538 --- /dev/null +++ b/assets/sw.js @@ -0,0 +1,61 @@ +import metadata from "/assets/metadata.js" + +const data = metadata() + +const sw_cache = { + offline: "/offline.html", + default: [ + "/assets/index.css", + "/vendor/prism.css", + "/assets/index.js", + "/favicon/icon.svg", + "/offline.html", + ], + store: data.version, +}; + +(function() { + self.addEventListener("install", event => { + self.skipWaiting(); + event.waitUntil((async() => { + const cache = await self.caches.open(sw_cache.store); + return cache.addAll(sw_cache.default); + })()); + }); + + self.addEventListener("activate", event => { + event.waitUntil((async() => { + const keys = await self.caches.keys(); + return Promise.all(keys.map(key => { + if (key !== sw_cache.store) { + return self.caches.delete(key); + } + })); + })()); + }); + + self.addEventListener("fetch", event => { + event.respondWith((async() => { + if (event.request.method != "GET") { + return fetch(event.request); + } + + const req_url = new URL(event.request.url); + if (req_url.origin != self.location.origin) { + return fetch(event.request); + } + + const cacheres = await self.caches.match(event.request); + return cacheres || (async() => { + try { + const response = await self.fetch(event.request); + const cache = await self.caches.open(sw_cache.store); + cache.put(event.request, response.clone()); + return response; + } catch { + return self.caches.match(sw_cache.offline); + } + })(); + })()); + }); +})();
\ No newline at end of file |