diff --git a/Build/build-microsoft-cdn.ts b/Build/build-microsoft-cdn.ts index de9321f8..f9faa097 100644 --- a/Build/build-microsoft-cdn.ts +++ b/Build/build-microsoft-cdn.ts @@ -1,6 +1,5 @@ import { task } from './trace'; import { SHARED_DESCRIPTION } from './constants/description'; -import { once } from 'foxts/once'; import { RulesetOutput } from './lib/rules/ruleset'; import Worktank from 'worktank'; import { RULES } from './constants/microsoft-cdn'; @@ -48,18 +47,13 @@ const pool = new Worktank({ } }); -export const getMicrosoftCdnRulesetPromise = once>(async () => { - const res = await pool.exec( - 'getMicrosoftCdnRuleset', - [__filename] - ); - pool.terminate(); - - return res; -}); +export const getMicrosoftCdnRulesetPromise = pool.exec( + 'getMicrosoftCdnRuleset', + [__filename] +).finally(() => pool.terminate()); export const buildMicrosoftCdn = task(require.main === module, __filename)(async (span) => { - const [domains, domainSuffixes] = await span.traceChildPromise('get microsoft cdn domains', getMicrosoftCdnRulesetPromise()); + const [domains, domainSuffixes] = await span.traceChildPromise('get microsoft cdn domains', getMicrosoftCdnRulesetPromise); return new RulesetOutput(span, 'microsoft_cdn', 'non_ip') .withTitle('Sukka\'s Ruleset - Microsoft CDN') diff --git a/Build/build-sspanel-appprofile.ts b/Build/build-sspanel-appprofile.ts index 4f5f38cf..afebac76 100644 --- a/Build/build-sspanel-appprofile.ts +++ b/Build/build-sspanel-appprofile.ts @@ -61,7 +61,7 @@ export const buildSSPanelUIMAppProfile = task(require.main === module, __filenam // domestic - domains getDomesticAndDirectDomainsRulesetPromise(), getAppleCdnDomainsPromise(), - getMicrosoftCdnRulesetPromise(), + getMicrosoftCdnRulesetPromise, readFileIntoProcessedArray(path.join(OUTPUT_SURGE_DIR, 'non_ip/apple_cn.conf')), readFileIntoProcessedArray(path.join(OUTPUT_SURGE_DIR, 'non_ip/neteasemusic.conf')), // microsoft & apple - domains diff --git a/Build/lib/create-file.ts b/Build/lib/create-file.ts index 52ee0a4c..84edd799 100644 --- a/Build/lib/create-file.ts +++ b/Build/lib/create-file.ts @@ -29,8 +29,8 @@ export async function compareAndWriteFile(span: Span, linesA: string[], filePath // The default highwater mark is normally 16384, // So we make sure direct write to file if the content is - // most likely less than 500 lines - if (linesALen < 500) { + // most likely less than 250 lines + if (linesALen < 250) { return writeFile(filePath, fastStringArrayJoin(linesA, '\n') + '\n'); } diff --git a/Build/lib/fetch-assets.ts b/Build/lib/fetch-assets.ts index 8ad2d0ed..4d5ce866 100644 --- a/Build/lib/fetch-assets.ts +++ b/Build/lib/fetch-assets.ts @@ -35,6 +35,9 @@ export async function fetchAssets( console.log(picocolors.gray('[fetch cancelled]'), picocolors.gray(url)); throw reusedCustomAbortError; } + if (index >= 0) { + console.log(picocolors.yellowBright('[fetch fallback begin]'), picocolors.gray(url)); + } const res = await $$fetch(url, { signal: controller.signal, ...defaultRequestInit }); let stream = nullthrow(res.body, url + ' has an empty body')