Refactor: continues to rewrite to TS

This commit is contained in:
SukkaW
2023-11-15 16:26:46 +08:00
parent ec338a659f
commit 99589cf2fc
32 changed files with 258 additions and 471 deletions

28
Build/lib/clash.ts Normal file
View File

@@ -0,0 +1,28 @@
// @ts-check
import Trie from 'mnemonist/trie';
// https://dreamacro.github.io/clash/configuration/rules.html
const CLASH_SUPPORTED_RULE_TYPE = [
'DOMAIN',
'DOMAIN-SUFFIX',
'DOMAIN-KEYWORD',
'GEOIP',
'IP-CIDR',
'IP-CIDR6',
'SRC-IP-CIDR',
'SRC-PORT',
'DST-PORT',
'PROCESS-NAME',
'PROCESS-PATH'
];
export const surgeRulesetToClashClassicalTextRuleset = (rules: string[] | Set<string>) => {
const trie = Trie.from(rules);
return CLASH_SUPPORTED_RULE_TYPE.flatMap(
type => trie.find(`${type},`)
);
};
export const surgeDomainsetToClashDomainset = (domainset: string[]) => {
return domainset.map(i => (i[0] === '.' ? `+${i}` : i));
};