mirror of
https://github.com/astral-sh/setup-uv.git
synced 2026-05-31 13:48:28 +02:00
fix: add timeout to fetch to prevent silent hangs (#883)
Add `AbortSignal.timeout(5s)` to fetch requests to ensure they fail fast instead of hanging indefinitely when network issues occur.
This commit is contained in:
+10
-4
@@ -95790,10 +95790,16 @@ function getProxyAgent() {
|
||||
}
|
||||
return void 0;
|
||||
}
|
||||
var fetch = async (url2, opts) => await (0, import_undici2.fetch)(url2, {
|
||||
dispatcher: getProxyAgent(),
|
||||
...opts
|
||||
});
|
||||
var fetch = async (url2, opts) => {
|
||||
const timeoutSignal = AbortSignal.timeout(5e3);
|
||||
const existingSignal = opts.signal;
|
||||
const mergedSignal = existingSignal ? AbortSignal.any([timeoutSignal, existingSignal]) : timeoutSignal;
|
||||
return await (0, import_undici2.fetch)(url2, {
|
||||
dispatcher: getProxyAgent(),
|
||||
...opts,
|
||||
signal: mergedSignal
|
||||
});
|
||||
};
|
||||
|
||||
// src/download/variant-selection.ts
|
||||
function selectDefaultVariant(entries, duplicateEntryDescription) {
|
||||
|
||||
+10
-4
@@ -49749,10 +49749,16 @@ function getProxyAgent() {
|
||||
}
|
||||
return void 0;
|
||||
}
|
||||
var fetch = async (url, opts) => await (0, import_undici2.fetch)(url, {
|
||||
dispatcher: getProxyAgent(),
|
||||
...opts
|
||||
});
|
||||
var fetch = async (url, opts) => {
|
||||
const timeoutSignal = AbortSignal.timeout(5e3);
|
||||
const existingSignal = opts.signal;
|
||||
const mergedSignal = existingSignal ? AbortSignal.any([timeoutSignal, existingSignal]) : timeoutSignal;
|
||||
return await (0, import_undici2.fetch)(url, {
|
||||
dispatcher: getProxyAgent(),
|
||||
...opts,
|
||||
signal: mergedSignal
|
||||
});
|
||||
};
|
||||
|
||||
// src/download/manifest.ts
|
||||
var cachedManifestData = /* @__PURE__ */ new Map();
|
||||
|
||||
+11
-2
@@ -14,8 +14,17 @@ export function getProxyAgent() {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
export const fetch = async (url: string, opts: RequestInit) =>
|
||||
await undiciFetch(url, {
|
||||
export const fetch = async (url: string, opts: RequestInit) => {
|
||||
// Merge timeout signal with any existing signal from opts
|
||||
const timeoutSignal = AbortSignal.timeout(5_000);
|
||||
const existingSignal = opts.signal;
|
||||
const mergedSignal = existingSignal
|
||||
? AbortSignal.any([timeoutSignal, existingSignal])
|
||||
: timeoutSignal;
|
||||
|
||||
return await undiciFetch(url, {
|
||||
dispatcher: getProxyAgent(),
|
||||
...opts,
|
||||
signal: mergedSignal,
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user