mirror of
https://github.com/SukkaW/Surge.git
synced 2026-01-28 09:31:54 +08:00
Refactor: add nad use global.ts
Some checks failed
Build / Build (push) Has been cancelled
Build / Diff output (push) Has been cancelled
Build / Deploy to Cloudflare Pages (3.114.12) (push) Has been cancelled
Build / Deploy to GitHub and GitLab (push) Has been cancelled
Build / Remove Artifacts after Deployment (push) Has been cancelled
Some checks failed
Build / Build (push) Has been cancelled
Build / Diff output (push) Has been cancelled
Build / Deploy to Cloudflare Pages (3.114.12) (push) Has been cancelled
Build / Deploy to GitHub and GitLab (push) Has been cancelled
Build / Remove Artifacts after Deployment (push) Has been cancelled
This commit is contained in:
36
Build/build-global-server-dns-mapping.ts
Normal file
36
Build/build-global-server-dns-mapping.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import { appendArrayInPlace } from 'foxts/append-array-in-place';
|
||||
import { GLOBAL } from '../Source/non_ip/global';
|
||||
import { createGetDnsMappingRule } from './build-domestic-direct-lan-ruleset-dns-mapping-module';
|
||||
import { SOURCE_DIR } from './constants/dir';
|
||||
import { task } from './trace';
|
||||
import { once } from 'foxts/once';
|
||||
import path from 'node:path';
|
||||
import { readFileIntoProcessedArray } from './lib/fetch-text-by-line';
|
||||
import { SHARED_DESCRIPTION } from './constants/description';
|
||||
import { RulesetOutput } from './lib/rules/ruleset';
|
||||
|
||||
export const getGlobalRulesetPromise = once(async () => {
|
||||
const globals = await readFileIntoProcessedArray(path.join(SOURCE_DIR, 'non_ip/global.conf'));
|
||||
const getDnsMappingRuleWithWildcard = createGetDnsMappingRule(true);
|
||||
|
||||
[GLOBAL].forEach((item) => {
|
||||
Object.values(item).forEach(({ domains }) => {
|
||||
appendArrayInPlace(globals, domains.flatMap(getDnsMappingRuleWithWildcard));
|
||||
});
|
||||
});
|
||||
|
||||
return [globals] as const;
|
||||
});
|
||||
|
||||
export const buildGlobalRuleset = task(require.main === module, __filename)(async (span) => {
|
||||
const [globals] = await getGlobalRulesetPromise();
|
||||
return new RulesetOutput(span, 'global', 'non_ip')
|
||||
.withTitle('Sukka\'s Ruleset - General Global Services')
|
||||
.appendDescription(
|
||||
SHARED_DESCRIPTION,
|
||||
'',
|
||||
'This file contains rules for services that are NOT available inside the Mainland China.'
|
||||
)
|
||||
.addFromRuleset(globals)
|
||||
.write();
|
||||
});
|
||||
@@ -13,6 +13,7 @@ import { isTruthy, nullthrow } from 'foxts/guard';
|
||||
import { appendArrayInPlace } from 'foxts/append-array-in-place';
|
||||
import { OUTPUT_INTERNAL_DIR, OUTPUT_SURGE_DIR, SOURCE_DIR } from './constants/dir';
|
||||
import { ClashOnlyRulesetOutput } from './lib/rules/ruleset';
|
||||
import { getGlobalRulesetPromise } from './build-global-server-dns-mapping';
|
||||
|
||||
const POLICY_GROUPS: Array<[name: string, insertProxy: boolean, insertDirect: boolean]> = [
|
||||
['Default Proxy', true, false],
|
||||
@@ -50,7 +51,7 @@ export const buildSSPanelUIMAppProfile = task(require.main === module, __filenam
|
||||
appleRules,
|
||||
// streamRules,
|
||||
steamDomainset,
|
||||
globalRules,
|
||||
[globalRules],
|
||||
telegramRules,
|
||||
[domesticCidrs4, domesticCidrs6],
|
||||
// [streamCidrs4, streamCidrs6],
|
||||
@@ -69,7 +70,7 @@ export const buildSSPanelUIMAppProfile = task(require.main === module, __filenam
|
||||
// steam - domains
|
||||
steamDomainsPromise,
|
||||
// global - domains
|
||||
readFileIntoProcessedArray(path.join(OUTPUT_SURGE_DIR, 'non_ip/global.conf')),
|
||||
getGlobalRulesetPromise(),
|
||||
readFileIntoProcessedArray(path.join(OUTPUT_SURGE_DIR, 'non_ip/telegram.conf')),
|
||||
// domestic - ip cidr
|
||||
getChnCidrPromise(),
|
||||
|
||||
@@ -13,6 +13,7 @@ import { buildTelegramCIDR } from './build-telegram-cidr';
|
||||
import { buildChnCidr } from './build-chn-cidr';
|
||||
import { buildSpeedtestDomainSet } from './build-speedtest-domainset';
|
||||
import { buildDomesticRuleset } from './build-domestic-direct-lan-ruleset-dns-mapping-module';
|
||||
import { buildGlobalRuleset } from './build-global-server-dns-mapping';
|
||||
import { buildStreamService } from './build-stream-service';
|
||||
|
||||
import { buildRedirectModule } from './build-sgmodule-redirect';
|
||||
@@ -100,6 +101,7 @@ const buildFinishedLock = path.join(ROOT_DIR, '.BUILD_FINISHED');
|
||||
downloadPreviousBuildPromise.then(() => buildChnCidr(rootSpan)),
|
||||
downloadPreviousBuildPromise.then(() => buildSpeedtestDomainSet(rootSpan)),
|
||||
downloadPreviousBuildPromise.then(() => buildDomesticRuleset(rootSpan)),
|
||||
downloadPreviousBuildPromise.then(() => buildGlobalRuleset(rootSpan)),
|
||||
downloadPreviousBuildPromise.then(() => buildRedirectModule(rootSpan)),
|
||||
downloadPreviousBuildPromise.then(() => buildAlwaysRealIPModule(rootSpan)),
|
||||
downloadPreviousBuildPromise.then(() => buildStreamService(rootSpan)),
|
||||
|
||||
Reference in New Issue
Block a user