diff --git a/Build/lib/fetch-assets.ts b/Build/lib/fetch-assets.ts index bd3804aa..7b2b97f6 100644 --- a/Build/lib/fetch-assets.ts +++ b/Build/lib/fetch-assets.ts @@ -43,19 +43,15 @@ export const sleepWithAbort = (ms: number, signal: AbortSignal) => new Promise r.text()) - .then(text => { - controller.abort(); - return text; - }); const createFetchFallbackPromise = async (url: string, index: number) => { + if (index > 0) { // Most assets can be downloaded within 250ms. To avoid wasting bandwidth, we will wait for 500ms before downloading from the fallback URL. - try { - await sleepWithAbort(500 + (index + 1) * 10, controller.signal); - } catch { - console.log(picocolors.gray('[fetch cancelled early]'), picocolors.gray(url)); - throw new CustomAbortError(); + try { + await sleepWithAbort(500 + (index + 1) * 10, controller.signal); + } catch { + console.log(picocolors.gray('[fetch cancelled early]'), picocolors.gray(url)); + throw new CustomAbortError(); + } } if (controller.signal.aborted) { console.log(picocolors.gray('[fetch cancelled]'), picocolors.gray(url)); @@ -68,10 +64,7 @@ export async function fetchAssets(url: string, fallbackUrls: string[] | readonly }; return Promise.any([ - fetchMainPromise, + createFetchFallbackPromise(url, -1), ...fallbackUrls.map(createFetchFallbackPromise) - ]).catch(e => { - console.log(`Download Rule for [${url}] failed`); - throw e; - }); + ]); } diff --git a/Build/lib/fetch-retry.ts b/Build/lib/fetch-retry.ts index af73f343..3c570167 100644 --- a/Build/lib/fetch-retry.ts +++ b/Build/lib/fetch-retry.ts @@ -2,10 +2,6 @@ import retry from 'async-retry'; import picocolors from 'picocolors'; import { setTimeout } from 'node:timers/promises'; -import { setGlobalDispatcher, EnvHttpProxyAgent } from 'undici'; - -setGlobalDispatcher(new EnvHttpProxyAgent({ allowH2: true })); - function isClientError(err: unknown): err is NodeJS.ErrnoException { if (!err || typeof err !== 'object') return false; diff --git a/package.json b/package.json index 97891b46..546e5296 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,6 @@ "tar-fs": "^3.0.6", "tldts": "^6.1.50", "tldts-experimental": "^6.1.50", - "undici": "^6.20.0", "wtfnode": "^0.9.3", "yaml": "^2.5.1" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 63a35aba..5f512bcc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -65,9 +65,6 @@ importers: tldts-experimental: specifier: ^6.1.50 version: 6.1.50 - undici: - specifier: ^6.20.0 - version: 6.20.0 wtfnode: specifier: ^0.9.3 version: 0.9.3 @@ -1480,10 +1477,6 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici@6.20.0: - resolution: {integrity: sha512-AITZfPuxubm31Sx0vr8bteSalEbs9wQb/BOBi9FPlD9Qpd6HxZ4Q0+hI742jBhkPb4RT2v5MQzaW5VhRVyj+9A==} - engines: {node: '>=18.17'} - uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -2978,8 +2971,6 @@ snapshots: undici-types@5.26.5: {} - undici@6.20.0: {} - uri-js@4.4.1: dependencies: punycode: 2.3.1