Refactor: drop all Bun.write usage

This commit is contained in:
SukkaW 2024-07-23 15:22:39 +08:00
parent b947f9f818
commit eed0d58697
6 changed files with 33 additions and 8 deletions

View File

@ -5,6 +5,8 @@ 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 fsp from 'fs/promises';
export const buildInternalReverseChnCIDR = task(import.meta.main, import.meta.path)(async () => {
const cidr = await getChnCidrPromise();
@ -19,5 +21,9 @@ export const buildInternalReverseChnCIDR = task(import.meta.main, import.meta.pa
)
);
return Bun.write(path.resolve(import.meta.dir, '../Internal/reversed-chn-cidr.txt'), `${reversedCidr.join('\n')}\n`);
return fsp.writeFile(
path.resolve(import.meta.dir, '../Internal/reversed-chn-cidr.txt'),
reversedCidr.join('\n') + '\n',
{ encoding: 'utf-8' }
);
});

View File

@ -1,4 +1,5 @@
import path from 'path';
import fsp from 'fs/promises';
import { task } from './trace';
import { treeDir } from './lib/tree-dir';
import type { TreeType, TreeTypeArray } from './lib/tree-dir';
@ -41,7 +42,7 @@ export const buildPublic = task(import.meta.main, import.meta.path)(async (span)
const src = path.join(rootPath, file);
const dest = path.join(publicPath, file);
return Bun.write(dest, Bun.file(src));
return fsp.copyFile(src, dest);
}));
});
@ -49,7 +50,7 @@ export const buildPublic = task(import.meta.main, import.meta.path)(async (span)
.traceChild('generate index.html')
.traceAsyncFn(() => treeDir(publicPath).then(generateHtml));
return Bun.write(path.join(publicPath, 'index.html'), html);
return fsp.writeFile(path.join(publicPath, 'index.html'), html);
});
const priorityOrder: Record<'default' | string & {}, number> = {

View File

@ -1,4 +1,5 @@
import path from 'path';
import fsp from 'fs/promises';
import { task } from './trace';
import { compareAndWriteFile } from './lib/create-file';
import { DIRECTS, LANS } from '../Source/non_ip/direct';
@ -60,7 +61,7 @@ export const buildAlwaysRealIPModule = task(import.meta.main, import.meta.path)(
],
path.resolve(import.meta.dir, '../Modules/sukka_common_always_realip.sgmodule')
),
Bun.write(
fsp.writeFile(
path.resolve(import.meta.dir, '../Internal/clash_fake_ip_filter.yaml'),
yaml.stringify(
{

View File

@ -1,5 +1,8 @@
import { task } from './trace';
import path from 'path';
import fs from 'fs';
import { Readable } from 'stream';
import { pipeline } from 'stream/promises';
import { fetchWithRetry } from './lib/fetch-retry';
const ASSETS_LIST = {
@ -15,5 +18,16 @@ const mockDir = path.resolve(import.meta.dir, '../Mock');
export const downloadMockAssets = task(import.meta.main, import.meta.path)((span) => Promise.all(Object.entries(ASSETS_LIST).map(
([filename, url]) => span
.traceChild(url)
.traceAsyncFn(() => fetchWithRetry(url).then(res => Bun.write(path.join(mockDir, filename), res)))
.traceAsyncFn(() => fetchWithRetry(url).then(res => {
const src = path.join(mockDir, filename);
if (!res.body) {
throw new Error(`Empty body from ${url}`);
}
const writeStream = fs.createWriteStream(src, { encoding: 'utf-8' });
return pipeline(
Readable.fromWeb(res.body),
writeStream
);
}))
)));

View File

@ -4,6 +4,8 @@ import { surgeDomainsetToClashDomainset, surgeRulesetToClashClassicalTextRuleset
import picocolors from 'picocolors';
import type { Span } from '../trace';
import path from 'path';
import fs from 'fs';
import fsp from 'fs/promises';
import { sort } from './timsort';
import { fastStringArrayJoin } from './misc';
@ -13,7 +15,7 @@ export async function compareAndWriteFile(span: Span, linesA: string[], filePath
const linesALen = linesA.length;
if (!(await file.exists())) {
if (!fs.existsSync(filePath)) {
console.log(`${filePath} does not exists, writing...`);
isEqual = false;
} else if (linesALen === 0) {
@ -70,7 +72,7 @@ export async function compareAndWriteFile(span: Span, linesA: string[], filePath
await span.traceChildAsync(`writing ${filePath}`, async () => {
// if (linesALen < 10000) {
return Bun.write(file, fastStringArrayJoin(linesA, '\n') + '\n');
return fsp.writeFile(filePath, fastStringArrayJoin(linesA, '\n') + '\n');
// }
// const writer = file.writer();

View File

@ -1,4 +1,5 @@
import path from 'path';
import fsp from 'fs/promises';
import { fdir as Fdir } from 'fdir';
import { readFileByLine } from './lib/fetch-text-by-line';
@ -43,5 +44,5 @@ async function trimFileLines(file: string) {
result += line.trim() + '\n';
}
return Bun.write(file, result);
return fsp.writeFile(file, result);
}