summaryrefslogtreecommitdiffstats
path: root/assets/sw.js
diff options
context:
space:
mode:
author2022-01-25 13:58:30 +0530
committer2022-01-25 13:58:30 +0530
commit3bd08521ac2fe0458598e5ddec385d6e516a3db6 (patch)
tree2a5ccf2ea8ad81a13d1e524eac49a803e042a8ff /assets/sw.js
parentfixed error in css and manifest.njk (diff)
downloadsudomsg-3bd08521ac2fe0458598e5ddec385d6e516a3db6.tar
sudomsg-3bd08521ac2fe0458598e5ddec385d6e516a3db6.tar.gz
sudomsg-3bd08521ac2fe0458598e5ddec385d6e516a3db6.tar.bz2
sudomsg-3bd08521ac2fe0458598e5ddec385d6e516a3db6.tar.lz
sudomsg-3bd08521ac2fe0458598e5ddec385d6e516a3db6.tar.xz
sudomsg-3bd08521ac2fe0458598e5ddec385d6e516a3db6.tar.zst
sudomsg-3bd08521ac2fe0458598e5ddec385d6e516a3db6.zip
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.js61
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