refactor(pwa): ♻️ update fetch strategy types

This commit is contained in:
Julien Oculi 2024-07-18 15:43:46 +02:00
parent 77f9ae3518
commit 67e3330587

View file

@ -5,7 +5,7 @@ export class Strategy {
this.#cache = cache this.#cache = cache
} }
cacheFirst({ request, preloadResponse }: FetchEvent) { cacheFirst({ request, preloadResponse }: Pick<FetchEvent, 'request' | 'preloadResponse'>) {
const fetchRequest = async () => { const fetchRequest = async () => {
const response = await fetch(request) const response = await fetch(request)
if (response.ok) { if (response.ok) {
@ -57,13 +57,13 @@ export class Strategy {
} }
async networkFirst( async networkFirst(
{ request, preloadResponse }: FetchEvent, { request, preloadResponse }: Pick<FetchEvent, 'request' | 'preloadResponse'>,
{ fallbackUrl, timeout }: { fallbackUrl?: string; timeout?: number }, { fallbackUrl, timeout }: { fallbackUrl?: string; timeout?: number },
) { ) {
const signal = timeout ? AbortSignal.timeout(timeout) : undefined const signal = timeout ? AbortSignal.timeout(timeout) : undefined
try { try {
// Get navigator preload (see: https://developer.mozilla.org/en-US/docs/Web/API/FetchEvent/preloadResponse) // Get navigator preload (see: https://developer.mozilla.org/en-US/docs/Web/API/Pick<FetchEvent, 'request' | 'preloadResponse'>/preloadResponse)
const preload = await getPreload(preloadResponse) const preload = await getPreload(preloadResponse)
if (preload?.ok) { if (preload?.ok) {
this.#cache.put(request, preload.clone()) this.#cache.put(request, preload.clone())