summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
Diffstat (limited to 'cli')
-rw-r--r--cli/module_loader.rs12
-rw-r--r--cli/node/mod.rs21
2 files changed, 17 insertions, 16 deletions
diff --git a/cli/module_loader.rs b/cli/module_loader.rs
index 112f29170..b61b4304e 100644
--- a/cli/module_loader.rs
+++ b/cli/module_loader.rs
@@ -77,13 +77,11 @@ impl CliModuleLoader {
specifier: &ModuleSpecifier,
maybe_referrer: Option<ModuleSpecifier>,
) -> Result<ModuleCodeSource, AnyError> {
- if specifier.as_str() == "node:module" {
- return Ok(ModuleCodeSource {
- code: deno_runtime::deno_node::MODULE_ES_SHIM.to_string(),
- found_url: specifier.to_owned(),
- media_type: MediaType::JavaScript,
- });
- }
+ // TODO(bartlomieju): uncomment, when all `node:` module have been
+ // snapshotted
+ // if specifier.scheme() == "node" {
+ // unreachable!("Node built-in modules should be handled internally.");
+ // }
let graph = self.ps.graph();
match graph.get(specifier) {
Some(deno_graph::Module {
diff --git a/cli/node/mod.rs b/cli/node/mod.rs
index 9ab593304..dffcb7437 100644
--- a/cli/node/mod.rs
+++ b/cli/node/mod.rs
@@ -26,6 +26,7 @@ use deno_runtime::deno_node::package_resolve;
use deno_runtime::deno_node::path_to_declaration_path;
use deno_runtime::deno_node::NodeModuleKind;
use deno_runtime::deno_node::NodeModulePolyfill;
+use deno_runtime::deno_node::NodeModulePolyfillSpecifier;
use deno_runtime::deno_node::NodePermissions;
use deno_runtime::deno_node::NodeResolutionMode;
use deno_runtime::deno_node::PackageJson;
@@ -133,16 +134,18 @@ fn is_builtin_node_module(specifier: &str) -> bool {
}
pub fn resolve_builtin_node_module(specifier: &str) -> Result<Url, AnyError> {
- // NOTE(bartlomieju): `module` is special, because we don't want to use
- // `deno_std/node/module.ts`, but instead use a special shim that we
- // provide in `ext/node`.
- if specifier == "module" {
- return Ok(Url::parse("node:module").unwrap());
- }
-
if let Some(module) = find_builtin_node_module(specifier) {
- let module_url = NODE_COMPAT_URL.join(module.specifier).unwrap();
- return Ok(module_url);
+ match module.specifier {
+ // We will load the source code from the `std/node` polyfill.
+ NodeModulePolyfillSpecifier::StdNode(specifier) => {
+ let module_url = NODE_COMPAT_URL.join(specifier).unwrap();
+ return Ok(module_url);
+ }
+ // The module has already been snapshotted and is present in the binary.
+ NodeModulePolyfillSpecifier::Embedded(specifier) => {
+ return Ok(ModuleSpecifier::parse(specifier).unwrap());
+ }
+ }
}
Err(generic_error(format!(