F2: one shared cache version renamed every cache, so the v2 bump that drops the v1 API cache (dinner responses with the pasted recipe_url) also deleted saved photos, fonts and the precache. Each cache now carries its own version in cacheVersions; only api is v2, so activate deletes mealquest-api-v1 and keeps mealquest-precache-v1, -media-v1 and -fonts-v1. F3: replace the source-text activation test with src/sw.test.ts, which loads the worker with the Workbox precache and router stubbed, dispatches activate against mocked Cache Storage, and asserts caches.delete is called for mealquest-api-v1 only. tsconfig.sw.json type-checks the test with the worker's types. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
24 lines
654 B
JSON
24 lines
654 B
JSON
{
|
|
"compilerOptions": {
|
|
"target": "ES2022",
|
|
"lib": ["ES2022", "DOM", "DOM.Iterable"],
|
|
"module": "ESNext",
|
|
"moduleResolution": "bundler",
|
|
"jsx": "react-jsx",
|
|
"types": ["vite/client"],
|
|
"strict": true,
|
|
"noUnusedLocals": true,
|
|
"noUnusedParameters": true,
|
|
"noFallthroughCasesInSwitch": true,
|
|
"noUncheckedIndexedAccess": true,
|
|
"verbatimModuleSyntax": true,
|
|
"isolatedModules": true,
|
|
"resolveJsonModule": true,
|
|
"allowImportingTsExtensions": true,
|
|
"skipLibCheck": true,
|
|
"noEmit": true
|
|
},
|
|
"include": ["src", "vite.config.ts", "manifest.json"],
|
|
"exclude": ["src/sw.ts", "src/sw.test.ts"]
|
|
}
|