mirror of
https://github.com/denoland/deno.git
synced 2025-01-06 22:35:51 -05:00
feat(node): add Module.runMain()
(#19080)
This PR adds the missing `Module.runMain()` function which is required for tools like `ts-node`. Fixes #19033
This commit is contained in:
parent
610936f5b2
commit
56a9a2a990
4 changed files with 22 additions and 0 deletions
|
@ -366,6 +366,7 @@
|
||||||
"test-http-outgoing-message-inheritance.js",
|
"test-http-outgoing-message-inheritance.js",
|
||||||
"test-http-outgoing-renderHeaders.js",
|
"test-http-outgoing-renderHeaders.js",
|
||||||
"test-http-outgoing-settimeout.js",
|
"test-http-outgoing-settimeout.js",
|
||||||
|
"test-module-run-main.js",
|
||||||
"test-net-access-byteswritten.js",
|
"test-net-access-byteswritten.js",
|
||||||
"test-net-better-error-messages-listen-path.js",
|
"test-net-better-error-messages-listen-path.js",
|
||||||
"test-net-better-error-messages-path.js",
|
"test-net-better-error-messages-path.js",
|
||||||
|
|
1
cli/tests/node_compat/test/fixtures/run-main.js
vendored
Normal file
1
cli/tests/node_compat/test/fixtures/run-main.js
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
globalThis.foo = 42;
|
15
cli/tests/node_compat/test/parallel/test-module-run-main.js
Normal file
15
cli/tests/node_compat/test/parallel/test-module-run-main.js
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
// deno-fmt-ignore-file
|
||||||
|
// deno-lint-ignore-file
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
const Module = require("module");
|
||||||
|
const assert = require("assert/strict");
|
||||||
|
const path = require("path");
|
||||||
|
|
||||||
|
const file = path.join(__dirname, "..", "fixtures", "run-main.js");
|
||||||
|
process.argv = [process.argv[0], file];
|
||||||
|
Module.runMain();
|
||||||
|
|
||||||
|
// The required file via `Module.runMain()` sets this global
|
||||||
|
assert.equal(globalThis.foo, 42);
|
|
@ -1108,6 +1108,11 @@ Module.syncBuiltinESMExports = function syncBuiltinESMExports() {
|
||||||
throw new Error("not implemented");
|
throw new Error("not implemented");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Mostly used by tools like ts-node.
|
||||||
|
Module.runMain = function () {
|
||||||
|
Module._load(process.argv[1], null, true);
|
||||||
|
};
|
||||||
|
|
||||||
Module.Module = Module;
|
Module.Module = Module;
|
||||||
|
|
||||||
nativeModuleExports.module = Module;
|
nativeModuleExports.module = Module;
|
||||||
|
|
Loading…
Reference in a new issue