mirror of
https://github.com/denoland/deno.git
synced 2024-12-30 11:16:38 -05:00
1f54d87789
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
17 lines
623 B
JavaScript
17 lines
623 B
JavaScript
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);
|