Browse Source

update service worker

main
familyfriendlymikey 2 years ago
parent
commit
69de7f5a7a
  1. 2
      package.json
  2. 20
      sw.imba

2
package.json

@ -1,6 +1,6 @@
{ {
"name": "fuzzyhome", "name": "fuzzyhome",
"version": "0.1.8", "version": "0.1.26",
"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",

20
sw.imba

@ -1,9 +1,9 @@
const app_name = "fuzzyhome"
let p = console.log let p = console.log
import { version } from './package.json' import { version } from './package.json'
const app_prefix = "fuzzyhome_cache" const app_prefix = "{app_name}_cache"
const cache_name = "{app_prefix}-{version}" const cache_name = "sw-{app_prefix}-{version}"
p cache_name
p "service worker for fuzzyhome version {version}"
let urls = [ let urls = [
'./', './',
@ -13,19 +13,20 @@ let urls = [
] ]
self.addEventListener('fetch') do |e| self.addEventListener('fetch') do |e|
p "{cache_name} fetch"
def intercept request def intercept request
if request if request
p "{cache_name} responding with cache : {e.request.url}" p "{cache_name} responding with cache {e.request.url}"
request request
else else
p "{cache_name} not cached, fetching : {e.request.url}" p "{cache_name} 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 "{cache_name} install"
def add_urls_to_cache cache def add_urls_to_cache cache
p "{cache_name} installing cache : {cache_name}" p "{cache_name} 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))
@ -34,8 +35,9 @@ self.addEventListener('activate') do |e|
p "{cache_name} activate" p "{cache_name} 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}"
if key !== cache_name if key !== cache_name
p "{cache_name} deleting cache : {keys[i]}" p "{cache_name} deleting cache {keys[i]}"
caches.delete keys[i] caches.delete key
Promise.all(temp) Promise.all(temp)
e.waitUntil(caches.keys().then(delete_cached)) e.waitUntil(caches.keys().then(delete_cached))

Loading…
Cancel
Save