mirror of
https://github.com/SukkaW/Surge.git
synced 2025-12-12 01:00:34 +08:00
Make reject filter download abortable
This commit is contained in:
parent
685427472b
commit
2c4d5a33a5
@ -133,11 +133,19 @@ async function processFilterRules(filterRulesUrl, fallbackUrls, includeThirdPart
|
|||||||
|
|
||||||
let filterRules;
|
let filterRules;
|
||||||
try {
|
try {
|
||||||
|
const controller = new AbortController();
|
||||||
|
const signal = controller.signal;
|
||||||
|
|
||||||
/** @type string[] */
|
/** @type string[] */
|
||||||
filterRules = (
|
filterRules = (
|
||||||
await Promise.any(
|
await Promise.any(
|
||||||
[filterRulesUrl, ...(fallbackUrls || [])].map(
|
[filterRulesUrl, ...(fallbackUrls || [])].map(
|
||||||
async url => (await fetchWithRetry(url)).text()
|
url => fetchWithRetry(url, { signal })
|
||||||
|
.then(r => r.text())
|
||||||
|
.then(text => {
|
||||||
|
controller.abort();
|
||||||
|
return text;
|
||||||
|
})
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
).split('\n').map(line => line.trim());
|
).split('\n').map(line => line.trim());
|
||||||
|
|||||||
@ -135,5 +135,10 @@
|
|||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18.0.0"
|
"node": ">=18.0.0"
|
||||||
|
},
|
||||||
|
"pnpm": {
|
||||||
|
"patchedDependencies": {
|
||||||
|
"@vercel/fetch-retry@5.1.3": "patches/@vercel__fetch-retry@5.1.3.patch"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
13
patches/@vercel__fetch-retry@5.1.3.patch
Normal file
13
patches/@vercel__fetch-retry@5.1.3.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/index.js b/index.js
|
||||||
|
index e5eeb353f6da8968d926cb4e502207912b6c3594..eb1370dc19030404e3def46ce13938d34a9e6214 100644
|
||||||
|
--- a/index.js
|
||||||
|
+++ b/index.js
|
||||||
|
@@ -66,7 +66,7 @@ function setup(fetch) {
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
- if (err.type === 'aborted') {
|
||||||
|
+ if (err.type === 'aborted' || err.name === 'AbortError') {
|
||||||
|
return bail(err);
|
||||||
|
}
|
||||||
|
const clientError = isClientError(err);
|
||||||
10
pnpm-lock.yaml
generated
10
pnpm-lock.yaml
generated
@ -4,6 +4,11 @@ settings:
|
|||||||
autoInstallPeers: true
|
autoInstallPeers: true
|
||||||
excludeLinksFromLockfile: false
|
excludeLinksFromLockfile: false
|
||||||
|
|
||||||
|
patchedDependencies:
|
||||||
|
'@vercel/fetch-retry@5.1.3':
|
||||||
|
hash: jczsp2gadg65vd4ekschpibzda
|
||||||
|
path: patches/@vercel__fetch-retry@5.1.3.patch
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
'@cliqz/adblocker':
|
'@cliqz/adblocker':
|
||||||
specifier: ^1.26.6
|
specifier: ^1.26.6
|
||||||
@ -13,7 +18,7 @@ dependencies:
|
|||||||
version: 0.2.0
|
version: 0.2.0
|
||||||
'@vercel/fetch-retry':
|
'@vercel/fetch-retry':
|
||||||
specifier: ^5.1.3
|
specifier: ^5.1.3
|
||||||
version: 5.1.3(node-fetch@2.6.11)
|
version: 5.1.3(patch_hash=jczsp2gadg65vd4ekschpibzda)(node-fetch@2.6.11)
|
||||||
ci-info:
|
ci-info:
|
||||||
specifier: ^3.8.0
|
specifier: ^3.8.0
|
||||||
version: 3.8.0
|
version: 3.8.0
|
||||||
@ -248,7 +253,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==}
|
resolution: {integrity: sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@vercel/fetch-retry@5.1.3(node-fetch@2.6.11):
|
/@vercel/fetch-retry@5.1.3(patch_hash=jczsp2gadg65vd4ekschpibzda)(node-fetch@2.6.11):
|
||||||
resolution: {integrity: sha512-UIbFc4VsEZHOr6dWuE+kxY4NxnOLXFMCWm0fSKRRHUEtrIzaJLzHpWk2QskCXTSzFgFvhkLAvSrBK2XZg7NSzg==}
|
resolution: {integrity: sha512-UIbFc4VsEZHOr6dWuE+kxY4NxnOLXFMCWm0fSKRRHUEtrIzaJLzHpWk2QskCXTSzFgFvhkLAvSrBK2XZg7NSzg==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
node-fetch: ^2.6.7
|
node-fetch: ^2.6.7
|
||||||
@ -259,6 +264,7 @@ packages:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: false
|
dev: false
|
||||||
|
patched: true
|
||||||
|
|
||||||
/acorn-jsx@5.3.2(acorn@8.9.0):
|
/acorn-jsx@5.3.2(acorn@8.9.0):
|
||||||
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
|
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user