
























@@ -71,6 +71,8 @@ export type ProviderOperationDeadline = {
7171timeoutMs?: number;
7272};
737374+export type ProviderOperationTimeoutMs = number | (() => number);
75+7476export function createProviderOperationDeadline(params: {
7577timeoutMs?: number;
7678label: string;
@@ -142,10 +144,11 @@ export async function pollProviderOperationJson<TPayload>(params: {
142144method: "GET",
143145headers: params.headers,
144146},
145-timeoutMs: resolveProviderOperationTimeoutMs({
146-deadline: params.deadline,
147-defaultTimeoutMs: params.defaultTimeoutMs,
148-}),
147+timeoutMs: () =>
148+resolveProviderOperationTimeoutMs({
149+deadline: params.deadline,
150+defaultTimeoutMs: params.defaultTimeoutMs,
151+}),
149152fetchFn: params.fetchFn,
150153requestFailedMessage: params.requestFailedMessage,
151154});
@@ -169,7 +172,7 @@ export async function fetchProviderOperationResponse(params: {
169172stage: ProviderOperationRetryStage;
170173url: string;
171174init?: RequestInit;
172-timeoutMs?: number;
175+timeoutMs?: ProviderOperationTimeoutMs;
173176fetchFn: typeof fetch;
174177provider?: string;
175178requestFailedMessage?: string;
@@ -183,7 +186,7 @@ export async function fetchProviderOperationResponse(params: {
183186const response = await fetchWithTimeout(
184187params.url,
185188params.init ?? {},
186-params.timeoutMs ?? DEFAULT_GUARDED_HTTP_TIMEOUT_MS,
189+resolveProviderOperationRequestTimeoutMs(params.timeoutMs),
187190params.fetchFn,
188191);
189192if (params.requestFailedMessage) {
@@ -197,7 +200,7 @@ export async function fetchProviderOperationResponse(params: {
197200export async function fetchProviderDownloadResponse(params: {
198201url: string;
199202init?: RequestInit;
200-timeoutMs?: number;
203+timeoutMs?: ProviderOperationTimeoutMs;
201204fetchFn: typeof fetch;
202205provider?: string;
203206requestFailedMessage: string;
@@ -215,6 +218,16 @@ export async function fetchProviderDownloadResponse(params: {
215218});
216219}
217220221+function resolveProviderOperationRequestTimeoutMs(
222+timeoutMs: ProviderOperationTimeoutMs | undefined,
223+): number {
224+const resolved = typeof timeoutMs === "function" ? timeoutMs() : timeoutMs;
225+if (typeof resolved !== "number" || !Number.isFinite(resolved) || resolved <= 0) {
226+return DEFAULT_GUARDED_HTTP_TIMEOUT_MS;
227+}
228+return resolved;
229+}
230+218231function resolveGuardedHttpTimeoutMs(timeoutMs: number | undefined): number {
219232if (typeof timeoutMs !== "number" || !Number.isFinite(timeoutMs) || timeoutMs <= 0) {
220233return DEFAULT_GUARDED_HTTP_TIMEOUT_MS;
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。