diff options
author | Nayeem Rahman <nayeemrmn99@gmail.com> | 2021-05-31 01:20:34 +0100 |
---|---|---|
committer | Bert Belder <bertbelder@gmail.com> | 2021-05-31 16:37:36 +0200 |
commit | 8a7e1c616d12feb93ed3fda4a70228924c747b5c (patch) | |
tree | 272be52d9062243f67cc3a50c1bda8ad95bb0c64 /cli/module_graph.rs | |
parent | 925ba8fbbf947c2c95a616b43e3f89e20cd69e93 (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.rs | 18 |
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 }; |