mirror of
https://github.com/SukkaW/Surge.git
synced 2025-12-12 01:00:34 +08:00
Chore: enable microsoft_cdn build / refine Clash transformation
This commit is contained in:
parent
809281f56b
commit
c9c23ee127
@ -14,6 +14,7 @@ import { buildStreamService } from './build-stream-service';
|
||||
import { buildRedirectModule } from './build-redirect-module';
|
||||
import { validate } from './validate-domainset';
|
||||
|
||||
import { buildMicrosoftCdn } from './build-microsoft-cdn';
|
||||
import { buildSSPanelUIMAppProfile } from './build-sspanel-appprofile';
|
||||
|
||||
import { buildPublic } from './build-public';
|
||||
@ -67,6 +68,8 @@ import { downloadMockAssets } from './download-mock-assets';
|
||||
const buildRedirectModulePromise = downloadPreviousBuildPromise.then(() => buildRedirectModule());
|
||||
const buildStreamServicePromise = downloadPreviousBuildPromise.then(() => buildStreamService());
|
||||
|
||||
const buildMicrosoftCdnPromise = downloadPreviousBuildPromise.then(() => buildMicrosoftCdn());
|
||||
|
||||
const buildSSPanelUIMAppProfilePromise = Promise.all([
|
||||
downloadPreviousBuildPromise
|
||||
]).then(() => buildSSPanelUIMAppProfile());
|
||||
@ -90,6 +93,7 @@ import { downloadMockAssets } from './download-mock-assets';
|
||||
buildDomesticRulesetPromise,
|
||||
buildRedirectModulePromise,
|
||||
buildStreamServicePromise,
|
||||
buildMicrosoftCdnPromise,
|
||||
buildSSPanelUIMAppProfilePromise,
|
||||
|
||||
downloadMockAssetsPromise
|
||||
|
||||
@ -16,10 +16,23 @@ const CLASH_SUPPORTED_RULE_TYPE = [
|
||||
'PROCESS-PATH'
|
||||
];
|
||||
|
||||
const REQUIRE_REWRITE = {
|
||||
'DEST-PORT': 'DST-PORT',
|
||||
'IN-PORT': 'SRC-PORT'
|
||||
} as const;
|
||||
|
||||
export const surgeRulesetToClashClassicalTextRuleset = (rules: string[] | Set<string>) => {
|
||||
const trie = Trie.from(rules);
|
||||
|
||||
return CLASH_SUPPORTED_RULE_TYPE.flatMap(
|
||||
type => trie.find(`${type},`)
|
||||
).concat(
|
||||
Object.keys(REQUIRE_REWRITE).flatMap(
|
||||
(type) => {
|
||||
const found = trie.find(`${type},`);
|
||||
return found.map(line => `${REQUIRE_REWRITE[type as keyof typeof REQUIRE_REWRITE]}${line.slice(type.length)}`);
|
||||
}
|
||||
)
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user