diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2022-11-25 13:42:05 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-25 13:42:05 -0500 |
commit | d0a4e23ae824baf1994291d8480be29719f1b99a (patch) | |
tree | c7d608596c29df0fa0d8b87d527d6897759a79fc /cli/node/mod.rs | |
parent | 8fc62f93bfeb63edf2ee875ee5d4f8b63728f838 (diff) |
fix(npm): better error message when attempting to use typescript in npm packages (#16813)
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( |