summaryrefslogtreecommitdiff
path: root/cli/module_graph.rs
diff options
context:
space:
mode:
authorNayeem Rahman <nayeemrmn99@gmail.com>2021-05-31 01:20:34 +0100
committerGitHub <noreply@github.com>2021-05-31 10:20:34 +1000
commit3a33510bd4a169aba00393c2b7e88bf7fa0cad06 (patch)
tree37320e072cb142a90017e9c0709eb88dd77670ef /cli/module_graph.rs
parent83ce33363347447e25d2d00732dad86b588b89f0 (diff)
fix(cli): Don't statically error on dynamic unmapped bare specifiers (#10618)
Fixes #10168 Fixes #10615 Fixes #10616
Diffstat (limited to 'cli/module_graph.rs')
-rw-r--r--cli/module_graph.rs18
1 files changed, 10 insertions, 8 deletions
diff --git a/cli/module_graph.rs b/cli/module_graph.rs
index 368df0a74..5bfa52e89 100644
--- a/cli/module_graph.rs
+++ b/cli/module_graph.rs
@@ -12,6 +12,7 @@ use crate::config_file::IgnoredCompilerOptions;
use crate::config_file::TsConfig;
use crate::diagnostics::Diagnostics;
use crate::import_map::ImportMap;
+use crate::import_map::ImportMapError;
use crate::info;
use crate::lockfile::Lockfile;
use crate::media_type::MediaType;
@@ -397,10 +398,13 @@ impl Module {
Ok(specifier) => Some(specifier),
Err(any_error) => {
match any_error.downcast_ref::<ModuleResolutionError>() {
- Some(ModuleResolutionError::ImportPrefixMissing(_, _)) => None,
- _ => {
- return Err(any_error);
- }
+ Some(ModuleResolutionError::ImportPrefixMissing(..)) => None,
+ _ => match any_error.downcast_ref::<ImportMapError>() {
+ Some(ImportMapError::UnmappedBareSpecifier(..)) => None,
+ _ => {
+ return Err(any_error);
+ }
+ },
}
}
};
@@ -447,10 +451,8 @@ impl Module {
) -> Result<ModuleSpecifier, AnyError> {
let maybe_resolve = if let Some(import_map) = self.maybe_import_map.clone()
{
- import_map
- .lock()
- .unwrap()
- .resolve(specifier, self.specifier.as_str())?
+ let import_map = import_map.lock().unwrap();
+ Some(import_map.resolve(specifier, self.specifier.as_str())?)
} else {
None
};