diff options
author | Marc Pervaz Boocha <mboocha@sudomsg.xyz> | 2022-01-10 12:05:47 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-10 12:05:47 +0530 |
commit | 229f45e73dc60df6522920d4e9bb1fc9e2cb728b (patch) | |
tree | 8245b024afd2dded659c9ceeed74f0c1c570346f /src/assets/sw.mjs | |
parent | Merge branch 'main' of github.com:marcthe12/website (diff) | |
parent | Merge branch 'main' into devel (diff) | |
download | sudomsg-229f45e73dc60df6522920d4e9bb1fc9e2cb728b.tar sudomsg-229f45e73dc60df6522920d4e9bb1fc9e2cb728b.tar.gz sudomsg-229f45e73dc60df6522920d4e9bb1fc9e2cb728b.tar.bz2 sudomsg-229f45e73dc60df6522920d4e9bb1fc9e2cb728b.tar.lz sudomsg-229f45e73dc60df6522920d4e9bb1fc9e2cb728b.tar.xz sudomsg-229f45e73dc60df6522920d4e9bb1fc9e2cb728b.tar.zst sudomsg-229f45e73dc60df6522920d4e9bb1fc9e2cb728b.zip |
Merge pull request #1 from marcthe12/devel
Devel
Diffstat (limited to 'src/assets/sw.mjs')
-rw-r--r-- | src/assets/sw.mjs | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/assets/sw.mjs b/src/assets/sw.mjs new file mode 100644 index 0000000..78d659a --- /dev/null +++ b/src/assets/sw.mjs @@ -0,0 +1,59 @@ +const sw_cache = { + offline: "/offline.html", + default: [ + "/index.css", + "/prism.css", + "/index.js", + "/favicon/icon.svg", + "/offline.html", + "/" + ], + // eslint-disable-next-line no-undef + store: VERSION, +} + +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() + 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 |