refactor(pwa): ♻️ update fetch strategy types
This commit is contained in:
parent
77f9ae3518
commit
67e3330587
|
|
@ -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())
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue