refactor(sw): check for fallbackUrl

This commit is contained in:
Ayo Ayco 2025-08-26 00:53:34 +02:00
parent f80807eebd
commit 343568042c

View file

@ -78,9 +78,6 @@ const networkFirst = async ({ request, fallbackUrl }) => {
try { try {
// Try to get the resource from the network for 5 seconds // Try to get the resource from the network for 5 seconds
const responseFromNetwork = await fetch(request.clone()) const responseFromNetwork = await fetch(request.clone())
// response may be used only once
// we need to save clone to put one copy in cache
// and serve second one
putInCache(request, responseFromNetwork.clone()) putInCache(request, responseFromNetwork.clone())
console.info('using network response', responseFromNetwork.url) console.info('using network response', responseFromNetwork.url)
return responseFromNetwork return responseFromNetwork
@ -93,12 +90,14 @@ const networkFirst = async ({ request, fallbackUrl }) => {
return responseFromCache return responseFromCache
} }
// Try the fallback // If fallback is provided, try to use it, otherwise return error
if (fallbackUrl) {
const fallbackResponse = await cache.match(fallbackUrl) const fallbackResponse = await cache.match(fallbackUrl)
if (fallbackResponse) { if (fallbackResponse) {
console.info('using fallback cached response...', fallbackResponse.url) console.info('using fallback cached response...', fallbackResponse.url)
return fallbackResponse return fallbackResponse
} }
}
// when even the fallback response is not available, // when even the fallback response is not available,
// there is nothing we can do, but we must always // there is nothing we can do, but we must always