diff --git a/src/serviceworker/src/fetch_strategy.ts b/src/serviceworker/src/fetch_strategy.ts index 267372b..0b82bc2 100644 --- a/src/serviceworker/src/fetch_strategy.ts +++ b/src/serviceworker/src/fetch_strategy.ts @@ -5,34 +5,6 @@ export class FetchStrategy { ) } - static cacheFirst( - cache: Cache, - { request, preloadResponse }: Pick< - FetchEvent, - 'request' | 'preloadResponse' - >, - ) { - const fetchRequest = async () => { - const response = await fetch(request) - if (response.ok) { - cache.put(request, response) - } - } - - // Get navigator preload request - preloadResponse - .then((preload: Response | undefined) => { - if (preload?.ok) { - return cache.put(request, preload) - } - throw new Error() - }) - // Else fetch request - .catch(fetchRequest) - - return cache.match(request) - } - static fastestAndCacheRefresh( cache: Cache, { request, preloadResponse }: Pick< @@ -66,38 +38,6 @@ export class FetchStrategy { return Promise.race([cachedOrError, fetchedAndCached]) } - static async networkFirst( - cache: Cache, - { request, preloadResponse }: Pick< - FetchEvent, - 'request' | 'preloadResponse' - >, - { fallbackUrl, timeout }: { fallbackUrl?: string; timeout?: number }, - ) { - const signal = timeout ? AbortSignal.timeout(timeout) : undefined - - try { - // Get navigator preload (see: https://developer.mozilla.org/en-US/docs/Web/API/Pick/preloadResponse) - const preload = await getPreload(preloadResponse) - if (preload?.ok) { - cache.put(request, preload.clone()) - return preload - } - } catch { - try { - // Else fetch request - const response = await fetch(request, { signal }) - if (response.ok) { - cache.put(request, response.clone()) - return response - } - } catch { - // Else return fallback or cached response - return cache.match(fallbackUrl ?? request) - } - } - } - static networkOnly( { request, preloadResponse }: Pick< FetchEvent, @@ -132,6 +72,7 @@ function getPreload( preloadResponse: FetchEvent['preloadResponse'], ac?: { signal?: AbortSignal }, ): Promise { + // Get navigator preload (see: https://developer.mozilla.org/en-US/docs/Web/API/Pick/preloadResponse) const { promise, resolve, reject } = Promise.withResolvers< Response | undefined >()