feat: add routes to assets to be cached

This commit is contained in:
Ayo Ayco 2024-08-15 16:43:08 +02:00
parent bb1e215ed3
commit 43dfab5173
3 changed files with 16 additions and 2 deletions

View file

@ -77,13 +77,23 @@ export default function serviceWorker(config) {
injectScript('page', registrationScript); injectScript('page', registrationScript);
}, },
'astro:build:ssr': ({ manifest }) => { 'astro:build:ssr': ({ manifest }) => {
assets = [...new Set(manifest.assets ?? [])].filter(ass => !ass.includes('sw.js')) assets = manifest.assets.filter(ass => !ass.includes('sw.js'))
}, },
'astro:build:done': async ({ dir }) => { 'astro:build:done': async ({ dir, routes }) => {
const outFile = fileURLToPath(new URL('./sw.js', dir)); const outFile = fileURLToPath(new URL('./sw.js', dir));
const __dirname = path.resolve(path.dirname('.')); const __dirname = path.resolve(path.dirname('.'));
const swPath = path.join(__dirname, serviceWorkerPath ?? ''); const swPath = path.join(__dirname, serviceWorkerPath ?? '');
let originalScript; let originalScript;
const _routes = routes
.filter(({isIndex}) => isIndex)
.map(({pathname}) => pathname)
?? [];
assets = [...new Set([...assets, ..._routes])]
console.log('>>> assets', assets);
try { try {
console.log('[astro-sw] Using service worker:', swPath); console.log('[astro-sw] Using service worker:', swPath);
originalScript = await readFile(swPath); originalScript = await readFile(swPath);

1
public/sample.asset.txt Normal file
View file

@ -0,0 +1 @@
asset

View file

@ -0,0 +1,3 @@
---
---
blog index