From 8206d4fd3ce017e0019543a29b1153d8e351ab0d Mon Sep 17 00:00:00 2001 From: amesgen <amesgen@amesgen.de> Date: Sat, 11 Jan 2025 16:59:39 +0100 Subject: [PATCH] wasm: prevent bundlers from resolving import("node:timers") MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes the following esbuild error: ✘ [ERROR] Could not resolve "node:timers" www/ghc_wasm_jsffi.js:66:25: 66 │ return (await import("node:timers")).setImmediate; ╵ ~~~~~~~~~~~~~ The package "node:timers" wasn't found on the file system but is built into node. Are you trying to bundle for node? You can use "--platform=node" to do that, which will remove this error. Previously (i.e. after !13503), one had to work around this by passing `--external:node:timers`. (cherry picked from commit f6493dbccc7bf95dcdf946b978e262f739e3e15a) --- utils/jsffi/prelude.mjs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/utils/jsffi/prelude.mjs b/utils/jsffi/prelude.mjs index fb27f612992..f502f2040bd 100644 --- a/utils/jsffi/prelude.mjs +++ b/utils/jsffi/prelude.mjs @@ -63,7 +63,9 @@ const setImmediate = await (async () => { // deno if (globalThis.Deno) { - return (await import("node:timers")).setImmediate; + try { + return (await import("node:timers")).setImmediate; + } catch {} } // https://developer.mozilla.org/en-US/docs/Web/API/Scheduler/postTask -- GitLab