From 1f54d877895ea25258a941818f07c6e84d44a7a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Tue, 9 Aug 2022 21:06:01 +0200 Subject: 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 --- cli/tests/integration/compat_tests.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'cli/tests/integration/compat_tests.rs') diff --git a/cli/tests/integration/compat_tests.rs b/cli/tests/integration/compat_tests.rs index ce89cc623..e8e6316bf 100644 --- a/cli/tests/integration/compat_tests.rs +++ b/cli/tests/integration/compat_tests.rs @@ -172,3 +172,22 @@ fn native_modules_as_global_vars() { ); assert!(out.contains("true")); } + +#[test] +fn ext_node_cjs_execution() { + let (out, _err) = util::run_and_collect_output_with_args( + true, + vec![ + "run", + "-A", + "--unstable", + "--quiet", + "commonjs/init.js", + "./example.js", + ], + None, + Some(vec![("DENO_NODE_COMPAT_URL".to_string(), std_file_url())]), + false, + ); + assert!(out.contains("{ hello: \"world\" }")); +} -- cgit v1.2.3