Fix: make fetch-retry relax more

This commit is contained in:
SukkaW 2024-10-10 16:39:56 +08:00
parent c75f7fcc76
commit d0b58bb78c

View File

@ -91,15 +91,32 @@ function createFetchRetry($fetch: typeof fetch): FetchWithRetry {
return res; return res;
} }
} catch (err: unknown) { } catch (err: unknown) {
if (err instanceof Error && ( const mayBailError = (err: unknown) => {
err.name === 'AbortError' if (typeof err === 'object' && err !== null && 'name' in err) {
|| ('digest' in err && err.digest === 'AbortError') if ((
) && !retryOpts.retryOnAborted) { err.name === 'AbortError'
console.log(picocolors.gray('[fetch abort]'), url); || ('digest' in err && err.digest === 'AbortError')
return bail(err) as never; ) && !retryOpts.retryOnAborted) {
} console.log(picocolors.gray('[fetch abort]'), url);
if (isClientError(err)) { return bail(err) as never;
return bail(err) as never; }
if (err.name === 'Custom304NotModifiedError') {
return bail(err) as never;
}
if (err.name === 'CustomNoETagFallbackError') {
return bail(err) as never;
}
}
if (isClientError(err)) {
return bail(err) as never;
}
};
mayBailError(err);
if (err instanceof AggregateError) {
for (const e of err.errors) {
mayBailError(e);
}
} }
console.log(picocolors.gray('[fetch fail]'), url, err); console.log(picocolors.gray('[fetch fail]'), url, err);