From b150450fac8671374cb9af4da63979d5d92d215b Mon Sep 17 00:00:00 2001 From: El RIDO Date: Sun, 3 Dec 2023 14:40:59 +0100 Subject: [PATCH] address nodejs unit testing issue mocha tests started failing as of node 20.10.0, likely due to this change: https://github.com/nodejs/node/pull/49936 Error was: node:internal/deps/undici/undici:11730 Error.captureStackTrace(err, this); ^ TypeError: Failed to parse URL from js/zlib-1.2.13.wasm at Object.fetch (node:internal/deps/undici/undici:11730:11) at async initialize (/home/runner/work/PrivateBin/PrivateBin/js/zlib-1.2.13.js:31:26) { [cause]: TypeError: Invalid URL: js/zlib-1.2.13.wasm at new URLImpl (/home/runner/work/PrivateBin/PrivateBin/js/node_modules/jsdom-url/node_modules/whatwg-url/lib/URL-impl.js:21:13) at new URLImplCore (/home/runner/work/PrivateBin/PrivateBin/js/node_modules/jsdom-url/lib/URLImpl.js:18:9) at new URLCore (/home/runner/work/PrivateBin/PrivateBin/js/node_modules/jsdom-url/lib/URL.js:28:9) at Object.construct (/home/runner/work/PrivateBin/PrivateBin/js/node_modules/class-proxy/index.js:18:23) at new Request (node:internal/deps/undici/undici:5270:25) at fetch (node:internal/deps/undici/undici:9508:25) at Object.fetch (node:internal/deps/undici/undici:11728:18) at fetch (node:internal/process/pre_execution:314:27) at initialize (/home/runner/work/PrivateBin/PrivateBin/js/zlib-1.2.13.js:31:32) at Object. (/home/runner/work/PrivateBin/PrivateBin/js/zlib-1.2.13.js:145:17) at Object. (/home/runner/work/PrivateBin/PrivateBin/js/zlib-1.2.13.js:146:4) [...] Notice that the error occurs on line 31, meaning that fetch is not undefined anymore. Node works on supporting fetch, which would make our workaround using fs.readFileSync obsolete, but it (or rather the undici library) currently doesn't support relative URLs. --- js/zlib-1.2.13.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/zlib-1.2.13.js b/js/zlib-1.2.13.js index 809ce0cd..a9760e96 100644 --- a/js/zlib-1.2.13.js +++ b/js/zlib-1.2.13.js @@ -25,7 +25,7 @@ }; let buff; - if (typeof fetch === 'undefined') { + if (typeof fs === 'object') { buff = fs.readFileSync('zlib-1.2.13.wasm'); } else { const resp = await fetch('js/zlib-1.2.13.wasm');