From 82395afa6e2f363e65710ab82fe372087bb1a1fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Kr=C4=8Dek?= Date: Mon, 11 Aug 2025 16:47:08 +0200 Subject: [PATCH] Better caching --- package.json | 2 +- src/lib/components/wizard/StepRowFilter.svelte | 2 +- src/service-worker.ts | 13 ++++++++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 55ea62f..a1af53f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "card-forge", "private": true, - "version": "0.0.1", + "version": "0.0.2", "type": "module", "scripts": { "dev": "vite dev", diff --git a/src/lib/components/wizard/StepRowFilter.svelte b/src/lib/components/wizard/StepRowFilter.svelte index 7ee0b24..b60d330 100644 --- a/src/lib/components/wizard/StepRowFilter.svelte +++ b/src/lib/components/wizard/StepRowFilter.svelte @@ -72,7 +72,7 @@ birthday: mapping.birthday !== -1 ? row[mapping.birthday] || '' : '', pictureUrl, alreadyPrinted, - _rowIndex: index + 2, + _rowIndex: index + 1, _valid: isValid, _checked: false }; diff --git a/src/service-worker.ts b/src/service-worker.ts index acd0f71..8b8403b 100644 --- a/src/service-worker.ts +++ b/src/service-worker.ts @@ -16,7 +16,8 @@ self.addEventListener('install', (event) => { await cache.addAll(ASSETS); } - event.waitUntil(addFilesToCache()); + // Precache and activate this SW immediately so new versions take control + event.waitUntil(Promise.all([addFilesToCache(), self.skipWaiting()])) }); self.addEventListener('activate', (event) => { @@ -27,7 +28,11 @@ self.addEventListener('activate', (event) => { } } - event.waitUntil(deleteOldCaches()); + // Clean old caches and take control of existing clients immediately + event.waitUntil((async () => { + await deleteOldCaches(); + await self.clients.claim(); + })()); }); self.addEventListener('fetch', (event) => { @@ -64,7 +69,9 @@ self.addEventListener('fetch', (event) => { throw new Error('invalid response from fetch'); } - if (response.status === 200) { + + // Only cache successful same-origin GET responses at runtime + if (response.status === 200 && url.origin === self.location.origin) { cache.put(event.request, response.clone()); }