From ec338a659f022c377310fb699520a3dee2b3f313 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Wed, 15 Nov 2023 15:53:29 +0800 Subject: [PATCH] Chore: more refactor to the bun --- Build/build-cdn-conf.ts | 2 +- ...us-build.js => download-previous-build.ts} | 30 ++++++++---------- Build/lib/create-file.js | 2 +- bun.lockb | Bin 101698 -> 102442 bytes package.json | 1 + 5 files changed, 16 insertions(+), 19 deletions(-) rename Build/{download-previous-build.js => download-previous-build.ts} (72%) diff --git a/Build/build-cdn-conf.ts b/Build/build-cdn-conf.ts index 8d9e531b..b0c62c7b 100644 --- a/Build/build-cdn-conf.ts +++ b/Build/build-cdn-conf.ts @@ -13,7 +13,7 @@ const getS3OSSDomains = async (): Promise> => { const publicSuffixFile = Bun.file(publicSuffixPath); if (await publicSuffixFile.exists()) { - for await (const line of readFileByLine(publicSuffixPath)) { + for await (const line of readFileByLine(publicSuffixFile)) { trie.add(line); } } else { diff --git a/Build/download-previous-build.js b/Build/download-previous-build.ts similarity index 72% rename from Build/download-previous-build.js rename to Build/download-previous-build.ts index 87615bbf..5e7fd770 100644 --- a/Build/download-previous-build.js +++ b/Build/download-previous-build.ts @@ -1,15 +1,14 @@ -// @ts-check -const tar = require('tar'); -const fsp = require('fs/promises'); -const path = require('path'); -const { tmpdir } = require('os'); -const { Readable } = require('stream'); -const { pipeline } = require('stream/promises'); -const { readFileByLine } = require('./lib/fetch-remote-text-by-line'); -const { isCI } = require('ci-info'); -const { task, traceAsync } = require('./lib/trace-runner'); +import tar from 'tar'; +import fsp from 'fs/promises'; +import path from 'path'; +import os from 'os'; +import { Readable } from 'stream'; +import { pipeline } from 'stream/promises'; +import { readFileByLine } from './lib/fetch-remote-text-by-line'; +import { isCI } from 'ci-info'; +import { task, traceAsync } from './lib/trace-runner'; -const downloadPreviousBuild = task(__filename, async () => { +export const downloadPreviousBuild = task(__filename, async () => { const filesList = ['Clash', 'List']; let allFileExists = true; @@ -41,7 +40,7 @@ const downloadPreviousBuild = task(__filename, async () => { return; } - const extractedPath = path.join(tmpdir(), `sukka-surge-last-build-extracted-${Date.now()}`); + const extractedPath = path.join(os.tmpdir(), `sukka-surge-last-build-extracted-${Date.now()}`); await traceAsync( 'Download and extract previous build', @@ -49,7 +48,7 @@ const downloadPreviousBuild = task(__filename, async () => { fetch('https://codeload.github.com/sukkalab/ruleset.skk.moe/tar.gz/master'), fsp.mkdir(extractedPath, { recursive: true }) ]).then(([resp]) => pipeline( - Readable.fromWeb(resp.body), + Readable.fromWeb(resp.body!), tar.x({ cwd: extractedPath, /** @@ -78,7 +77,7 @@ const downloadPreviousBuild = task(__filename, async () => { // return fsp.unlink(extractedPath).catch(() => { }); }); -const downloadPublicSuffixList = task(__filename, async () => { +export const downloadPublicSuffixList = task(__filename, async () => { const publicSuffixDir = path.resolve(__dirname, '../node_modules/.cache'); const publicSuffixPath = path.join(publicSuffixDir, 'public_suffix_list_dat.txt'); @@ -90,9 +89,6 @@ const downloadPublicSuffixList = task(__filename, async () => { return Bun.write(publicSuffixPath, resp); }, 'download-publicsuffixlist'); -module.exports.downloadPreviousBuild = downloadPreviousBuild; -module.exports.downloadPublicSuffixList = downloadPublicSuffixList; - if (import.meta.main) { Promise.all([ downloadPreviousBuild(), diff --git a/Build/lib/create-file.js b/Build/lib/create-file.js index 7126309d..ffc0e53e 100644 --- a/Build/lib/create-file.js +++ b/Build/lib/create-file.js @@ -19,7 +19,7 @@ async function compareAndWriteFile(linesA, filePath) { } else { let index = 0; - for await (const lineB of readFileByLine(filePath)) { + for await (const lineB of readFileByLine(file)) { const lineA = linesA[index]; index++; diff --git a/bun.lockb b/bun.lockb index 810feff19a4d81f20c2d163eed92d43e10eca989..7ea8d990598acbc82a7e0df030f3b9342500d741 100755 GIT binary patch delta 14367 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 diff --git a/package.json b/package.json index 44ac7c0b..35ea0886 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "devDependencies": { "@eslint-sukka/node": "^4.1.7", "@types/mocha": "10.0.2", + "@types/tar": "^6.1.9", "bun-types": "^1.0.11", "chai": "4.3.10", "eslint-config-sukka": "4.1.7",