mirror of
https://github.com/SukkaW/Surge.git
synced 2025-12-15 18:50:34 +08:00
Fix types
This commit is contained in:
parent
3e7ef5a294
commit
99e5d46531
@ -214,7 +214,7 @@ export class Cache<S = string> {
|
|||||||
fn: (resp: Response) => Promise<T>,
|
fn: (resp: Response) => Promise<T>,
|
||||||
opt: Omit<CacheApplyOption<T, S>, 'incrementTtlWhenHit'>,
|
opt: Omit<CacheApplyOption<T, S>, 'incrementTtlWhenHit'>,
|
||||||
requestInit?: RequestInit
|
requestInit?: RequestInit
|
||||||
) {
|
): Promise<T> {
|
||||||
if (opt.temporaryBypass) {
|
if (opt.temporaryBypass) {
|
||||||
return fn(await fetchWithRetry(url, requestInit ?? defaultRequestInit));
|
return fn(await fetchWithRetry(url, requestInit ?? defaultRequestInit));
|
||||||
}
|
}
|
||||||
@ -323,12 +323,12 @@ export class Cache<S = string> {
|
|||||||
this.set(getETagKey(primaryUrl), r.headers.get('etag')!, TTL.ONE_WEEK_STATIC);
|
this.set(getETagKey(primaryUrl), r.headers.get('etag')!, TTL.ONE_WEEK_STATIC);
|
||||||
|
|
||||||
// If we do not have a cached value, we ignore 304
|
// If we do not have a cached value, we ignore 304
|
||||||
if (r.status === 304 && previouslyCached != null) {
|
if (r.status === 304 && typeof previouslyCached === 'string') {
|
||||||
controller.abort();
|
controller.abort();
|
||||||
throw new Custom304NotModifiedError(primaryUrl);
|
throw new Custom304NotModifiedError(primaryUrl, previouslyCached);
|
||||||
}
|
}
|
||||||
} else if (!primaryETag && previouslyCached) {
|
} else if (!primaryETag && typeof previouslyCached === 'string') {
|
||||||
throw new CustomNoETagFallbackError(previouslyCached as string);
|
throw new CustomNoETagFallbackError(previouslyCached);
|
||||||
}
|
}
|
||||||
|
|
||||||
return r.text();
|
return r.text();
|
||||||
@ -369,13 +369,13 @@ export class Cache<S = string> {
|
|||||||
this.set(getETagKey(url), res.headers.get('etag')!, TTL.ONE_WEEK_STATIC);
|
this.set(getETagKey(url), res.headers.get('etag')!, TTL.ONE_WEEK_STATIC);
|
||||||
|
|
||||||
// If we do not have a cached value, we ignore 304
|
// If we do not have a cached value, we ignore 304
|
||||||
if (res.status === 304 && previouslyCached != null) {
|
if (res.status === 304 && typeof previouslyCached === 'string') {
|
||||||
controller.abort();
|
controller.abort();
|
||||||
throw new Custom304NotModifiedError(url);
|
throw new Custom304NotModifiedError(url, previouslyCached);
|
||||||
}
|
}
|
||||||
} else if (!primaryETag && previouslyCached) {
|
} else if (!primaryETag && typeof previouslyCached === 'string') {
|
||||||
controller.abort();
|
controller.abort();
|
||||||
throw new CustomNoETagFallbackError(previouslyCached as string);
|
throw new CustomNoETagFallbackError(previouslyCached);
|
||||||
}
|
}
|
||||||
|
|
||||||
const text = await res.text();
|
const text = await res.text();
|
||||||
|
|||||||
@ -12,7 +12,7 @@ export class Custom304NotModifiedError extends Error {
|
|||||||
public readonly name = 'Custom304NotModifiedError';
|
public readonly name = 'Custom304NotModifiedError';
|
||||||
public readonly digest = 'Custom304NotModifiedError';
|
public readonly digest = 'Custom304NotModifiedError';
|
||||||
|
|
||||||
constructor(public readonly url: string) {
|
constructor(public readonly url: string, public readonly data: string) {
|
||||||
super('304 Not Modified');
|
super('304 Not Modified');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -107,7 +107,9 @@ function createFetchRetry($fetch: typeof fetch): FetchWithRetry {
|
|||||||
}
|
}
|
||||||
|
|
||||||
console.log(picocolors.gray('[fetch fail]'), url, err);
|
console.log(picocolors.gray('[fetch fail]'), url, err);
|
||||||
throw err;
|
const newErr = new Error('Fetch failed');
|
||||||
|
newErr.cause = err;
|
||||||
|
throw newErr;
|
||||||
}
|
}
|
||||||
}, retryOpts);
|
}, retryOpts);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user