diff --git a/Build/build-domestic-direct-lan-ruleset-dns-mapping-module.ts b/Build/build-domestic-direct-lan-ruleset-dns-mapping-module.ts index ab780bfc..aa7fce23 100644 --- a/Build/build-domestic-direct-lan-ruleset-dns-mapping-module.ts +++ b/Build/build-domestic-direct-lan-ruleset-dns-mapping-module.ts @@ -9,7 +9,7 @@ import { SHARED_DESCRIPTION } from './lib/constants'; import { createMemoizedPromise } from './lib/memo-promise'; import * as yaml from 'yaml'; import { appendArrayInPlace } from './lib/append-array-in-place'; -import { writeFile } from './lib/bun'; +import { writeFile } from './lib/misc'; export const getDomesticAndDirectDomainsRulesetPromise = createMemoizedPromise(async () => { const domestics = await readFileIntoProcessedArray(path.resolve(__dirname, '../Source/non_ip/domestic.conf')); diff --git a/Build/build-internal-reverse-chn-cidr.ts b/Build/build-internal-reverse-chn-cidr.ts index 2a6ea400..57d240cf 100644 --- a/Build/build-internal-reverse-chn-cidr.ts +++ b/Build/build-internal-reverse-chn-cidr.ts @@ -5,7 +5,7 @@ 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/bun'; +import { writeFile } from './lib/misc'; export const buildInternalReverseChnCIDR = task(require.main === module, __filename)(async () => { const cidr = await getChnCidrPromise(); diff --git a/Build/build-public.ts b/Build/build-public.ts index cdc56813..3aebbab8 100644 --- a/Build/build-public.ts +++ b/Build/build-public.ts @@ -7,7 +7,7 @@ import type { TreeType, TreeTypeArray } from './lib/tree-dir'; import { fdir as Fdir } from 'fdir'; import Trie from 'mnemonist/trie'; -import { writeFile } from './lib/bun'; +import { writeFile } from './lib/misc'; const rootPath = path.resolve(__dirname, '../'); const publicPath = path.resolve(__dirname, '../public'); diff --git a/Build/build-sgmodule-always-realip.ts b/Build/build-sgmodule-always-realip.ts index 73b2a507..f1f44aff 100644 --- a/Build/build-sgmodule-always-realip.ts +++ b/Build/build-sgmodule-always-realip.ts @@ -3,7 +3,7 @@ import { task } from './trace'; import { compareAndWriteFile } from './lib/create-file'; import { DIRECTS, LANS } from '../Source/non_ip/direct'; import * as yaml from 'yaml'; -import { writeFile } from './lib/bun'; +import { writeFile } from './lib/misc'; const HOSTNAMES = [ // Network Detection, Captive Portal diff --git a/Build/lib/bun.ts b/Build/lib/bun.ts deleted file mode 100644 index a4472430..00000000 --- a/Build/lib/bun.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { dirname } from 'path'; -import fs from 'fs'; -import fsp from 'fs/promises'; - -const peekStatus = new WeakMap, 'pending' | 'rejected' | 'fulfilled'>(); -export function track(promise: Promise): Promise { - // only set to pending if not already tracked - if (!peekStatus.has(promise)) { - peekStatus.set(promise, 'pending'); - } - - // Observe the promise, saving the fulfillment in a closure scope. - return promise.then( - (v) => { - peekStatus.set(promise, 'fulfilled'); - return v; - }, - (e) => { - peekStatus.set(promise, 'rejected'); - throw e; - } - ); -} - -export function peek(promise: Promise): 'pending' | 'rejected' | 'fulfilled' | 'unknown' { - return peekStatus.get(promise) ?? 'unknown'; -} - -interface Write { - ( - destination: string, - input: NodeJS.TypedArray | string, - ): Promise -} - -export const writeFile: Write = async (destination: string, input) => { - const dir = dirname(destination); - - if (!fs.existsSync(dir)) { - await fsp.mkdir(dir, { recursive: true }); - } - return fsp.writeFile(destination, input, { encoding: 'utf-8' }); -}; diff --git a/Build/lib/create-file.ts b/Build/lib/create-file.ts index 61aaf46d..937793d8 100644 --- a/Build/lib/create-file.ts +++ b/Build/lib/create-file.ts @@ -4,9 +4,8 @@ import picocolors from 'picocolors'; import type { Span } from '../trace'; import path from 'path'; import fs from 'fs'; -import { fastStringArrayJoin } from './misc'; +import { fastStringArrayJoin, writeFile } from './misc'; import { readFileByLine } from './fetch-text-by-line'; -import { writeFile } from './bun'; export async function compareAndWriteFile(span: Span, linesA: string[], filePath: string) { let isEqual = true; diff --git a/Build/lib/misc.ts b/Build/lib/misc.ts index 40b07e89..163009cd 100644 --- a/Build/lib/misc.ts +++ b/Build/lib/misc.ts @@ -1,3 +1,7 @@ +import { dirname } from 'path'; +import fs from 'fs'; +import fsp from 'fs/promises'; + export const isTruthy = (i: T | 0 | '' | false | null | undefined): i is T => !!i; export const fastStringArrayJoin = (arr: string[], sep: string) => { @@ -11,8 +15,16 @@ export const fastStringArrayJoin = (arr: string[], sep: string) => { return result; }; -export const fastStringArrayJoin2 = (arr: string[], sep: string) => { - return arr.reduce((acc, cur, index) => { - return index === 0 ? cur : acc + sep + cur; - }, ''); +interface Write { + ( + destination: string, + input: NodeJS.TypedArray | string, + ): Promise +} + +export const writeFile: Write = async (destination: string, input, dir = dirname(destination)) => { + if (!fs.existsSync(dir)) { + await fsp.mkdir(dir, { recursive: true }); + } + return fsp.writeFile(destination, input, { encoding: 'utf-8' }); }; diff --git a/Mock/addthis-com_addthis_widget.js b/Mock/addthis-com_addthis_widget.js index b3774a43..d0474e66 100644 --- a/Mock/addthis-com_addthis_widget.js +++ b/Mock/addthis-com_addthis_widget.js @@ -2,6 +2,7 @@ 'use strict'; const noopfn = function () { + // noop }; window.addthis = { addEventListener: noopfn, diff --git a/Mock/www-google-analytics-com_cx_api.js b/Mock/www-google-analytics-com_cx_api.js index 218a4874..b5c441ac 100644 --- a/Mock/www-google-analytics-com_cx_api.js +++ b/Mock/www-google-analytics-com_cx_api.js @@ -2,6 +2,7 @@ 'use strict'; const noopfn = function () { + // noop }; window.cxApi = { chooseVariation() { diff --git a/Mock/www-google-analytics-com_inpage_linkid.js b/Mock/www-google-analytics-com_inpage_linkid.js index b0885117..7a4fae14 100644 --- a/Mock/www-google-analytics-com_inpage_linkid.js +++ b/Mock/www-google-analytics-com_inpage_linkid.js @@ -3,6 +3,7 @@ window._gaq = window._gaq || { push() { + // noop } }; }());