@ 261027.7

261026.1 · b6bf196ae1e954da44a0f35532cd30b2e0969202

feat: use module.registerHooks for amaro/strip and amaro/transform

Use synchronous module.registerHooks() when available, so the loaders also apply to require() of TypeScript and avoid the loader thread. Fall back to module.register() on Node.js versions without it.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

reading declarations

Changes to src/register/. All files

src/register/register-strip.mjs

@@ -1,3 +1,9 @@-import { register } from "node:module";+import module from "node:module"; -register("./strip-loader.js", import.meta.url);+if (typeof module.registerHooks === "function") {+	const { default: loader } = await import("./strip-loader.js");+	module.registerHooks({ load: loader.loadSync });+} else {+	// Node.js versions without `module.registerHooks()`.+	module.register("./strip-loader.js", import.meta.url);+}

src/register/register-transform.mjs

@@ -1,4 +1,4 @@-import { register } from "node:module";+import module from "node:module"; import { emitWarning, env, execArgv } from "node:process";  const hasSourceMaps =@@ -9,4 +9,10 @@ if (!hasSourceMaps) { 	emitWarning("Source maps are disabled, stack traces will not be accurate"); } -register("./transform-loader.js", import.meta.url);+if (typeof module.registerHooks === "function") {+	const { default: loader } = await import("./transform-loader.js");+	module.registerHooks({ load: loader.loadSync });+} else {+	// Node.js versions without `module.registerHooks()`.+	module.register("./transform-loader.js", import.meta.url);+}