diff --git a/src/app/App.ts b/src/app/App.ts index 00af6203..5abedf68 100644 --- a/src/app/App.ts +++ b/src/app/App.ts @@ -75,12 +75,12 @@ export const App = { } console.debug(`[App] LocalStorage=${'localStorage' in window} Caches=${'caches' in window}`) -App.version.watch(async (value) => { - console.debug(`[App.version.watch] ${value}`) +App.version.watchRun(async (value) => { + console.debug(`[App.version.watchRun] ${value}`) App.schemasLoaded.set(false) await updateSchemas(value) App.schemasLoaded.set(true) - console.debug(`[App.version.watch] Done! ${value}`) + console.debug(`[App.version.watchRun] Done! ${value}`) }) App.theme.watchRun((value) => { diff --git a/src/app/DataFetcher.ts b/src/app/DataFetcher.ts index 35bd36c1..bbfac9a4 100644 --- a/src/app/DataFetcher.ts +++ b/src/app/DataFetcher.ts @@ -176,15 +176,22 @@ async function getData(url: string, fn: (v: any) => T = (v: any) => v): } async function deleteMatching(matches: (url: string) => boolean) { - const cache = await caches.open(CACHE_NAME) + console.debug(`[deleteMatching] Open cache ${CACHE_NAME}`) + let cache: Cache + try { + cache = await caches.open(CACHE_NAME) + } catch (e) { + console.error(`[deleteMatching] Failed to open cache ${CACHE_NAME}: ${e.message}`) + return + } + console.debug(`[deleteMatching] Opened cache! ${CACHE_NAME}`) const promises: Promise[] = [] - console.debug(`[deleteMatching] ${CACHE_NAME} ${cache}`) for (const request of await cache.keys()) { if (matches(request.url)) { promises.push(cache.delete(request)) } } - console.debug(`[deleteMatching] ${CACHE_NAME} ${promises.length}`) + console.debug(`[deleteMatching] Removing ${promises.length} cache objects...`) return (await Promise.all(promises)).length > 0 } diff --git a/src/app/Router.ts b/src/app/Router.ts index cea4fbc1..dcc1c395 100644 --- a/src/app/Router.ts +++ b/src/app/Router.ts @@ -66,7 +66,6 @@ window.addEventListener("popstate", router); document.addEventListener("DOMContentLoaded", () => { console.debug(`[DOMContentLoaded] LocalStorage=${'localStorage' in window} Caches=${'caches' in window}`) - App.version.trigger() document.body.addEventListener("click", e => { if (e.target instanceof Element && e.target.hasAttribute('data-link') diff --git a/src/app/state/Property.ts b/src/app/state/Property.ts index 66fb3705..a5dc4fa2 100644 --- a/src/app/state/Property.ts +++ b/src/app/state/Property.ts @@ -37,8 +37,4 @@ export class Property { } return this } - - trigger() { - this.watchers.forEach(w => w.watcher(this.value, null)) - } }