summaryrefslogtreecommitdiff
path: root/cli/module_loader.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/module_loader.rs')
-rw-r--r--cli/module_loader.rs30
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.