|
@ -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)) |
|
|