Browse Source

update sw

main
familyfriendlymikey 2 years ago
parent
commit
07a1e455a0
  1. 2
      package.json
  2. 23
      sw.imba

2
package.json

@ -1,6 +1,6 @@
{ {
"name": "fuzzyhome", "name": "fuzzyhome",
"version": "0.1.29", "version": "0.1.32",
"scripts": { "scripts": {
"start": "imba run -SMH --baseurl . -w server.imba", "start": "imba run -SMH --baseurl . -w server.imba",
"build-app": "rm -rf dist && imba build -SMH --baseurl . server.imba", "build-app": "rm -rf dist && imba build -SMH --baseurl . server.imba",

23
sw.imba

@ -1,9 +1,9 @@
const app_name = "fuzzyhome" const app_name = "fuzzyhome"
let p = console.log
import { version } from './package.json' import { version } from './package.json'
const app_prefix = "{app_name}_cache" const app_prefix = "{app_name}_cache"
const cache_name = "sw-{app_prefix}-{version}" const cache_name = "sw-{app_prefix}-{version}"
p cache_name let p = do |s| console.log "{cache_name} {s}"
p "loaded"
let urls = [ let urls = [
'./', './',
@ -13,31 +13,32 @@ let urls = [
] ]
self.addEventListener('fetch') do |e| self.addEventListener('fetch') do |e|
p "{cache_name} fetch" p "fetch"
def intercept request def intercept request
if request if request
p "{cache_name} responding with cache {e.request.url}" p "responding with cache {e.request.url}"
request request
else else
p "{cache_name} not cached, fetching {e.request.url}" p "not cached, fetching {e.request.url}"
fetch e.request fetch e.request
e.respondWith(caches.match(e.request.url).then(intercept)) e.respondWith(caches.match(e.request.url).then(intercept))
self.addEventListener('install') do |e| self.addEventListener('install') do |e|
p "{cache_name} install" p "install"
def add_urls_to_cache cache def add_urls_to_cache cache
p "{cache_name} adding urls to cache" p "adding urls to cache"
cache.addAll urls cache.addAll urls
skipWaiting! skipWaiting!
e.waitUntil(caches.open(cache_name).then(add_urls_to_cache)) e.waitUntil(caches.open(cache_name).then(add_urls_to_cache))
self.addEventListener('activate') do |e| self.addEventListener('activate') do |e|
p "{cache_name} activate" p "activate"
def delete_cached keys def delete_cached keys
let temp = keys.map! do |key, i| let temp = keys.map! do |key, i|
p "{cache_name} checking cache {key}" p "checking cache {key}"
if key !== cache_name if key !== cache_name
p "{cache_name} deleting cache {keys[i]}" p "deleting cache {key}"
caches.delete key let result = await caches.delete key
p "deletion of {key} result: {result}"
Promise.all(temp) Promise.all(temp)
e.waitUntil(caches.keys().then(delete_cached)) e.waitUntil(caches.keys().then(delete_cached))

Loading…
Cancel
Save