summaryrefslogtreecommitdiff
path: root/cli/tests/testdata/commonjs/init.js
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2022-08-09 21:06:01 +0200
committerGitHub <noreply@github.com>2022-08-09 21:06:01 +0200
commit1f54d877895ea25258a941818f07c6e84d44a7a2 (patch)
tree1999d04ec926d464c94ed2c5a9fe10fb84f3de24 /cli/tests/testdata/commonjs/init.js
parentaf618e3b8fb11f3947ab5ded9523cdca9cf77ced (diff)
feat: add ext/node for require support (#15362)
This commit adds "ext/node" extension that implementes CommonJS module system. In the future this extension might be extended to actually contain implementation of Node compatibility layer in favor of "deno_std/node". Currently this functionality is not publicly exposed, it is available via "Deno[Deno.internal].require" namespace and is meant to be used by other functionality to be landed soon. This is a minimal first pass, things that still don't work: support for dynamic imports in CJS conditional exports
Diffstat (limited to 'cli/tests/testdata/commonjs/init.js')
-rw-r--r--cli/tests/testdata/commonjs/init.js17
1 files changed, 17 insertions, 0 deletions
diff --git a/cli/tests/testdata/commonjs/init.js b/cli/tests/testdata/commonjs/init.js
new file mode 100644
index 000000000..142ae7c76
--- /dev/null
+++ b/cli/tests/testdata/commonjs/init.js
@@ -0,0 +1,17 @@
+import { fromFileUrl } from "../../../../test_util/std/path/mod.ts";
+
+const DENO_NODE_COMPAT_URL = Deno.env.get("DENO_NODE_COMPAT_URL");
+const moduleAllUrl = `${DENO_NODE_COMPAT_URL}node/module_all.ts`;
+const processUrl = `${DENO_NODE_COMPAT_URL}node/process.ts`;
+let moduleName = import.meta.resolve(Deno.args[0]);
+moduleName = fromFileUrl(moduleName);
+
+const [moduleAll, processModule] = await Promise.all([
+ import(moduleAllUrl),
+ import(processUrl),
+]);
+Deno[Deno.internal].require.initializeCommonJs(
+ moduleAll.default,
+ processModule.default,
+);
+Deno[Deno.internal].require.Module._load(moduleName, null, true);