From b1481c87f23ee98a64c8faf0ed0f0246f76f1343 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Tue, 23 Jul 2024 15:46:38 +0800 Subject: [PATCH] Refactor: `Bun.peek` polyfill for Node.js --- Build/build-speedtest-domainset.ts | 3 ++- Build/download-previous-build.ts | 1 - Build/lib/bun.ts | 13 +++++++++++++ Build/lib/cache-filesystem.ts | 3 ++- bun.lockb | Bin 114018 -> 115106 bytes package.json | 4 +++- 6 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 Build/lib/bun.ts diff --git a/Build/build-speedtest-domainset.ts b/Build/build-speedtest-domainset.ts index 0faed415..5079f8f1 100644 --- a/Build/build-speedtest-domainset.ts +++ b/Build/build-speedtest-domainset.ts @@ -13,6 +13,7 @@ import { readFileIntoProcessedArray } from './lib/fetch-text-by-line'; import { TTL, deserializeArray, fsFetchCache, serializeArray } from './lib/cache-filesystem'; import { createTrie } from './lib/trie'; +import { peek } from './lib/bun'; const s = new Sema(2); @@ -239,7 +240,7 @@ export const buildSpeedtestDomainSet = task(import.meta.main, import.meta.path)( const timer = setTimeout(() => { console.error(picocolors.red('Task timeout!')); Object.entries(pMap).forEach(([name, p]) => { - console.log(`[${name}]`, Bun.peek.status(p)); + console.log(`[${name}]`, peek.status(p)); }); resolve(); diff --git a/Build/download-previous-build.ts b/Build/download-previous-build.ts index 4c878690..dd946fb7 100644 --- a/Build/download-previous-build.ts +++ b/Build/download-previous-build.ts @@ -33,7 +33,6 @@ export const downloadPreviousBuild = task(import.meta.main, import.meta.path)(as buildOutputList.push(line); if (!isCI) { - // Bun.file().exists() doesn't check directory if (!existsSync(path.join(import.meta.dir, '..', line))) { flag = flag & ~ALL_FILES_EXISTS; } diff --git a/Build/lib/bun.ts b/Build/lib/bun.ts new file mode 100644 index 00000000..13f43b62 --- /dev/null +++ b/Build/lib/bun.ts @@ -0,0 +1,13 @@ +interface Peek { + (promise: T | Promise): Promise | T, + status( + promise: T | Promise, + ): 'pending' | 'fulfilled' | 'rejected' | 'unknown' +} + +const noopPeek = (_: Promise) => _; +noopPeek.status = () => 'unknown'; + +export const peek: Peek = typeof Bun !== 'undefined' + ? Bun.peek + : noopPeek as Peek; diff --git a/Build/lib/cache-filesystem.ts b/Build/lib/cache-filesystem.ts index 2cb0c599..bfdb1e2e 100644 --- a/Build/lib/cache-filesystem.ts +++ b/Build/lib/cache-filesystem.ts @@ -5,6 +5,7 @@ import path from 'path'; import { mkdirSync } from 'fs'; import picocolors from 'picocolors'; import { fastStringArrayJoin } from './misc'; +import { peek } from 'bun'; const identity = (x: any) => x; @@ -178,7 +179,7 @@ export class Cache { const serializer = 'serializer' in opt ? opt.serializer : identity; const promise = fn(); - const peeked = Bun.peek(promise); + const peeked = peek(promise); if (peeked === promise) { return promise.then((value) => { diff --git a/bun.lockb b/bun.lockb index b8a26819ca5ea0664f06fe2de31cb48fb500e86c..627c72d2a30d843bdc90c874c328c4304155a45d 100755 GIT binary patch delta 20464 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 F{{Xjz*8czi delta 19716 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 diff --git a/package.json b/package.json index cd09c36e..45ab37dc 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "csv-parse": "^5.5.6", "fast-cidr-tools": "^0.2.5", "fdir": "^6.1.1", + "foxact": "^0.2.36", "mnemonist": "^0.39.8", "path-scurry": "^1.11.1", "picocolors": "^1.0.1", @@ -47,5 +48,6 @@ }, "resolutions": { "has": "npm:@nolyfill/has@latest" - } + }, + "packageManager": "pnpm@9.5.0+sha512.140036830124618d624a2187b50d04289d5a087f326c9edfc0ccd733d76c4f52c3a313d4fc148794a2a9d81553016004e6742e8cf850670268a7387fc220c903" }