diff options
Diffstat (limited to 'cli/node/mod.rs')
-rw-r--r-- | cli/node/mod.rs | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/cli/node/mod.rs b/cli/node/mod.rs index 8f0f0ef6d..fc4db33ee 100644 --- a/cli/node/mod.rs +++ b/cli/node/mod.rs @@ -703,20 +703,25 @@ pub fn url_to_node_resolution( npm_resolver: &dyn RequireNpmResolver, ) -> Result<NodeResolution, AnyError> { let url_str = url.as_str().to_lowercase(); - Ok(if url_str.starts_with("http") { - NodeResolution::Esm(url) + if url_str.starts_with("http") { + Ok(NodeResolution::Esm(url)) } else if url_str.ends_with(".js") || url_str.ends_with(".d.ts") { let package_config = get_closest_package_json(&url, npm_resolver)?; if package_config.typ == "module" { - NodeResolution::Esm(url) + Ok(NodeResolution::Esm(url)) } else { - NodeResolution::CommonJs(url) + Ok(NodeResolution::CommonJs(url)) } } else if url_str.ends_with(".mjs") || url_str.ends_with(".d.mts") { - NodeResolution::Esm(url) + Ok(NodeResolution::Esm(url)) + } else if url_str.ends_with(".ts") { + Err(generic_error(format!( + "TypeScript files are not supported in npm packages: {}", + url + ))) } else { - NodeResolution::CommonJs(url) - }) + Ok(NodeResolution::CommonJs(url)) + } } fn finalize_resolution( |