aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/assets/sw.mjs62
1 files changed, 27 insertions, 35 deletions
diff --git a/src/assets/sw.mjs b/src/assets/sw.mjs
index 48ead74..97d44bf 100644
--- a/src/assets/sw.mjs
+++ b/src/assets/sw.mjs
@@ -14,49 +14,41 @@ const sw_cache = {
self.addEventListener('install', async event => {
self.skipWaiting()
- const precache = async() => {
- const cache = await self.caches.open(sw_cache.store);
- return cache.addAll(sw_cache.default)
- }
- event.waitUntil(precache())
+ const cache = await self.caches.open(sw_cache.store);
+ event.waitUntil(cache.addAll(sw_cache.default))
})
self.addEventListener('activate', async event => {
- const invalidatecache = async() => {
- const keys = await self.caches.keys()
- Promise.all(
- keys.map(key => {
- if (key !== sw_cache.store) {
- return self.caches.delete(key)
- }
- }))
- }
- event.waitUntil(invalidatecache())
+ const keys = await self.caches.keys()
+
+ event.waitUntil(Promise.all(keys.map(key => {
+ if (key !== sw_cache.store) {
+ return self.caches.delete(key)
+ }
+ })))
})
self.addEventListener('fetch', async event => {
- const cache_fetch = async() => {
- if (event.request.method != 'GET') {
- return
- }
+ if (event.request.method != 'GET') {
+ return
+ }
- if (event.request.url.origin != self.location.origin) {
- return
- }
+ const a = new URL(event.request.url)
+ if (a.origin != self.location.origin) {
+ return
+ }
- const cacheres = await self.caches.match(event.request)
- if (cacheres !== undefined) {
- return cacheres
- }
- 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)
- }
+ const cacheres = await self.caches.match(event.request)
+ if (cacheres !== undefined) {
+ event.respondWith(cacheres)
+ }
+ try {
+ const response = await self.fetch(event.request)
+ const cache = await self.caches.open(sw_cache.store)
+ cache.put(event.request, response.clone())
+ event.respondWith(response)
+ } catch {
+ event.respondWith(self.caches.match(sw_cache.offline))
}
- event.respondWith(cache_fetch())
}) \ No newline at end of file