feat(sw): add typings for SW events
This commit is contained in:
parent
da0e292d7e
commit
73aeb65d30
1 changed files with 30 additions and 14 deletions
44
src/sw.mjs
44
src/sw.mjs
|
|
@ -1,3 +1,5 @@
|
|||
/// <reference lib="webworker" />
|
||||
|
||||
/**
|
||||
* Note: @ayco/astro-sw integration injects variables `__prefix`, `__version`, & `__assets`
|
||||
* -- find usage in `astro.config.mjs` integrations
|
||||
|
|
@ -129,20 +131,34 @@ self.addEventListener('activate', (event) => {
|
|||
cleanOldCaches()
|
||||
})
|
||||
|
||||
self.addEventListener('install', (event) => {
|
||||
console.info('installing service worker...')
|
||||
self.skipWaiting() // go straight to activate
|
||||
self.addEventListener(
|
||||
'install',
|
||||
/**
|
||||
* @param {ExtendableEvent} event - The install event.
|
||||
* @returns {void}
|
||||
*/
|
||||
(event) => {
|
||||
console.info('installing service worker...')
|
||||
self.skipWaiting() // go straight to activate
|
||||
|
||||
event.waitUntil(addResourcesToCache(__assets ?? []))
|
||||
})
|
||||
event.waitUntil(addResourcesToCache(__assets ?? []))
|
||||
}
|
||||
)
|
||||
|
||||
self.addEventListener('fetch', (event) => {
|
||||
console.info('fetch happened', { data: event })
|
||||
self.addEventListener(
|
||||
'fetch',
|
||||
/**
|
||||
* @param {FetchEvent} event - The fetch event triggered by the browser.
|
||||
* @returns {Promise<Response>} A promise that resolves to the appropriate response.
|
||||
*/
|
||||
(event) => {
|
||||
console.info('fetch happened', { data: event })
|
||||
|
||||
event.respondWith(
|
||||
cacheAndRevalidate({
|
||||
request: event.request,
|
||||
fallbackUrl: './',
|
||||
})
|
||||
)
|
||||
})
|
||||
event.respondWith(
|
||||
cacheAndRevalidate({
|
||||
request: event.request,
|
||||
fallbackUrl: './',
|
||||
})
|
||||
)
|
||||
}
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in a new issue