mirror of
https://github.com/SukkaW/Surge.git
synced 2026-01-29 01:51:52 +08:00
Chore: async write stream & mkdirp
This commit is contained in:
@@ -5,8 +5,10 @@ import { exclude, merge } from 'fast-cidr-tools';
|
||||
import { getChnCidrPromise } from './build-chn-cidr';
|
||||
import { NON_CN_CIDR_INCLUDED_IN_CHNROUTE, RESERVED_IPV4_CIDR } from './constants/cidr';
|
||||
|
||||
import { writeFile } from './lib/misc';
|
||||
import fs from 'node:fs';
|
||||
import { OUTPUT_INTERNAL_DIR } from './constants/dir';
|
||||
import { asyncWriteToStream } from './lib/async-write-to-stream';
|
||||
import { mkdirp } from './lib/misc';
|
||||
|
||||
export const buildInternalReverseChnCIDR = task(require.main === module, __filename)(async () => {
|
||||
const [cidr] = await getChnCidrPromise();
|
||||
@@ -23,9 +25,17 @@ export const buildInternalReverseChnCIDR = task(require.main === module, __filen
|
||||
);
|
||||
|
||||
const outputFile = path.join(OUTPUT_INTERNAL_DIR, 'reversed-chn-cidr.txt');
|
||||
await mkdirp(OUTPUT_INTERNAL_DIR);
|
||||
|
||||
return writeFile(
|
||||
outputFile,
|
||||
reversedCidr.join('\n') + '\n'
|
||||
);
|
||||
const writeStream = fs.createWriteStream(outputFile);
|
||||
for (const line of reversedCidr) {
|
||||
const p = asyncWriteToStream(writeStream, line + '\n');
|
||||
if (p) {
|
||||
// eslint-disable-next-line no-await-in-loop -- stream high water mark
|
||||
await p;
|
||||
}
|
||||
}
|
||||
await asyncWriteToStream(writeStream, '\n');
|
||||
|
||||
writeStream.end();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user