diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2022-08-09 21:06:01 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-09 21:06:01 +0200 |
commit | 1f54d877895ea25258a941818f07c6e84d44a7a2 (patch) | |
tree | 1999d04ec926d464c94ed2c5a9fe10fb84f3de24 /cli/tests/testdata/commonjs/init.js | |
parent | af618e3b8fb11f3947ab5ded9523cdca9cf77ced (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.js | 17 |
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); |