Stop retrying requests when the source is disposed, log warning in possible CORS detection case (see #158)

This commit is contained in:
Vanilagy
2025-11-24 16:28:10 +01:00
parent c5d1efc18d
commit da159bb063
2 changed files with 20 additions and 0 deletions
+9
View File
@@ -584,6 +584,7 @@ export const retriedFetch = async (
url: string | URL | Request,
requestInit: RequestInit,
getRetryDelay: (previousAttempts: number, error: unknown, url: string | URL | Request) => number | null,
shouldStop: () => boolean,
) => {
let attempts = 0;
@@ -591,6 +592,10 @@ export const retriedFetch = async (
try {
return await fetchFn(url, requestInit);
} catch (error) {
if (shouldStop()) {
throw error;
}
attempts++;
const retryDelayInSeconds = getRetryDelay(attempts, error, url);
@@ -607,6 +612,10 @@ export const retriedFetch = async (
if (retryDelayInSeconds > 0) {
await new Promise(resolve => setTimeout(resolve, 1000 * retryDelayInSeconds));
}
if (shouldStop()) {
throw error;
}
}
}
};