astro-sw/demo/astro.config.mjs

39 lines
1.1 KiB
JavaScript

// @ts-check
import { defineConfig } from 'astro/config'
import node from '@astrojs/node'
import serviceWorker from '@ayco/astro-sw'
import { deleteOldCaches, staleWhileRevalidate } from '@ayco/astro-sw/presets'
export default defineConfig({
output: 'static',
adapter: node({
mode: 'middleware',
}),
site: 'https://ayo.ayco.io',
integrations: [
serviceWorker({
path: './src/example_sw.js',
presets: [staleWhileRevalidate(), deleteOldCaches()],
customRoutes: [
// '/threads'
],
excludeRoutes: ['/exclude'],
assetCachePrefix: 'hey',
logAssets: true,
esbuild: {
minify: true,
},
registrationHooks: {
installing: () => console.log('>>> installing...'),
waiting: () => console.log('>>> waiting...'),
active: () => console.log('>>> active...'),
error: (error) => console.error('>>> error', error),
afterRegistration: async () => {
const sw = await navigator.serviceWorker.getRegistration()
console.log('>>> registrered', sw)
},
},
}),
],
})