mirror of
https://github.com/SukkaW/Surge.git
synced 2026-01-29 01:51:52 +08:00
Refactor: continues to rewrite to TS
This commit is contained in:
48
Build/build-internal-reverse-chn-cidr.ts
Normal file
48
Build/build-internal-reverse-chn-cidr.ts
Normal file
@@ -0,0 +1,48 @@
|
||||
import { fetchRemoteTextAndCreateReadlineInterface } from './lib/fetch-remote-text-by-line';
|
||||
import { processLineFromReadline } from './lib/process-line';
|
||||
import path from 'path';
|
||||
import fsp from 'fs/promises'
|
||||
import { task } from './lib/trace-runner';
|
||||
|
||||
const RESERVED_IPV4_CIDR = [
|
||||
'0.0.0.0/8',
|
||||
'10.0.0.0/8',
|
||||
'100.64.0.0/10',
|
||||
'127.0.0.0/8',
|
||||
'169.254.0.0/16',
|
||||
'172.16.0.0/12',
|
||||
'192.0.0.0/24',
|
||||
'192.0.2.0/24',
|
||||
'192.168.0.0/16',
|
||||
'198.18.0.0/15',
|
||||
'198.51.100.0/24',
|
||||
'203.0.113.0/24',
|
||||
'224.0.0.0/4',
|
||||
'233.252.0.0/24',
|
||||
'240.0.0.0/4'
|
||||
];
|
||||
|
||||
export const buildInternalReverseChnCIDR = task(__filename, async () => {
|
||||
const [{ exclude }, cidr] = await Promise.all([
|
||||
import('cidr-tools-wasm'),
|
||||
processLineFromReadline(await fetchRemoteTextAndCreateReadlineInterface('https://raw.githubusercontent.com/misakaio/chnroutes2/master/chnroutes.txt')),
|
||||
fsp.mkdir(path.resolve(__dirname, '../List/internal'), { recursive: true })
|
||||
]);
|
||||
|
||||
const reversedCidr = exclude(
|
||||
[
|
||||
'0.0.0.0/0',
|
||||
// https://github.com/misakaio/chnroutes2/issues/25
|
||||
'223.118.0.0/15',
|
||||
'223.120.0.0/15'
|
||||
],
|
||||
RESERVED_IPV4_CIDR.concat(cidr),
|
||||
true
|
||||
);
|
||||
|
||||
return Bun.write(path.resolve(__dirname, '../List/internal/reversed-chn-cidr.txt'), `${reversedCidr.join('\n')}\n`);
|
||||
});
|
||||
|
||||
if (import.meta.main) {
|
||||
buildInternalReverseChnCIDR();
|
||||
}
|
||||
Reference in New Issue
Block a user