diff options
Diffstat (limited to 'cli/module_loader.rs')
-rw-r--r-- | cli/module_loader.rs | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/cli/module_loader.rs b/cli/module_loader.rs index 462b41cbb..4ddb297a5 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -21,6 +21,8 @@ use deno_core::ModuleType; use deno_core::OpState; use deno_core::ResolutionKind; use deno_core::SourceMapGetter; +use deno_graph::EsmModule; +use deno_graph::JsonModule; use deno_runtime::permissions::PermissionsContainer; use std::cell::RefCell; use std::pin::Pin; @@ -78,23 +80,33 @@ impl CliModuleLoader { maybe_referrer: Option<ModuleSpecifier>, ) -> Result<ModuleCodeSource, AnyError> { if specifier.scheme() == "node" { - unreachable!("Node built-in modules should be handled internally."); + unreachable!(); // Node built-in modules should be handled internally. } let graph = self.ps.graph(); match graph.get(specifier) { - Some(deno_graph::Module { - maybe_source: Some(code), + Some(deno_graph::Module::Json(JsonModule { + source, media_type, specifier, .. - }) => { + })) => Ok(ModuleCodeSource { + code: source.to_string(), + found_url: specifier.clone(), + media_type: *media_type, + }), + Some(deno_graph::Module::Esm(EsmModule { + source, + media_type, + specifier, + .. + })) => { let code = match media_type { MediaType::JavaScript | MediaType::Unknown | MediaType::Cjs | MediaType::Mjs - | MediaType::Json => code.to_string(), + | MediaType::Json => source.to_string(), MediaType::Dts | MediaType::Dcts | MediaType::Dmts => "".to_string(), MediaType::TypeScript | MediaType::Mts @@ -107,7 +119,7 @@ impl CliModuleLoader { &self.ps.parsed_source_cache, specifier, *media_type, - code, + source, &self.ps.emit_options, self.ps.emit_options_hash, )? @@ -295,10 +307,8 @@ impl SourceMapGetter for CliModuleLoader { ) -> Option<String> { let graph = self.ps.graph(); let code = match graph.get(&resolve_url(file_name).ok()?) { - Some(deno_graph::Module { - maybe_source: Some(code), - .. - }) => code, + Some(deno_graph::Module::Esm(module)) => &module.source, + Some(deno_graph::Module::Json(module)) => &module.source, _ => return None, }; // Do NOT use .lines(): it skips the terminating empty line. |