diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2023-02-15 11:30:54 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-15 11:30:54 -0500 |
commit | b34e751a5b2193e8ce65203386e00147c08a7a64 (patch) | |
tree | 47ad04c90e4df431396185b1e3d15fcd2623a973 /cli/resolver.rs | |
parent | c7535950b6de086fce741809728129c79288dee8 (diff) |
refactor: make resolver required (#17783)
Makes the resolver required and prints a warning when vendoring and a
dynamic import can't be resolved.
Closes #16522
Diffstat (limited to 'cli/resolver.rs')
-rw-r--r-- | cli/resolver.rs | 35 |
1 files changed, 13 insertions, 22 deletions
diff --git a/cli/resolver.rs b/cli/resolver.rs index 817b5d3b0..11b2d874c 100644 --- a/cli/resolver.rs +++ b/cli/resolver.rs @@ -1,7 +1,6 @@ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. use deno_core::error::AnyError; -use deno_core::resolve_import; use deno_core::ModuleSpecifier; use deno_graph::source::Resolver; use deno_graph::source::DEFAULT_JSX_IMPORT_SOURCE_MODULE; @@ -13,41 +12,33 @@ use crate::args::JsxImportSourceConfig; /// A resolver that takes care of resolution, taking into account loaded /// import map, JSX settings. #[derive(Debug, Clone, Default)] -pub struct CliResolver { +pub struct CliGraphResolver { maybe_import_map: Option<Arc<ImportMap>>, maybe_default_jsx_import_source: Option<String>, maybe_jsx_import_source_module: Option<String>, } -impl CliResolver { - pub fn maybe_new( +impl CliGraphResolver { + pub fn new( maybe_jsx_import_source_config: Option<JsxImportSourceConfig>, maybe_import_map: Option<Arc<ImportMap>>, - ) -> Option<Self> { - if maybe_jsx_import_source_config.is_some() || maybe_import_map.is_some() { - Some(Self { - maybe_import_map, - maybe_default_jsx_import_source: maybe_jsx_import_source_config - .as_ref() - .and_then(|c| c.default_specifier.clone()), - maybe_jsx_import_source_module: maybe_jsx_import_source_config - .map(|c| c.module), - }) - } else { - None + ) -> Self { + Self { + maybe_import_map, + maybe_default_jsx_import_source: maybe_jsx_import_source_config + .as_ref() + .and_then(|c| c.default_specifier.clone()), + maybe_jsx_import_source_module: maybe_jsx_import_source_config + .map(|c| c.module), } } - pub fn with_import_map(import_map: Arc<ImportMap>) -> Self { - Self::maybe_new(None, Some(import_map)).unwrap() - } - pub fn as_graph_resolver(&self) -> &dyn Resolver { self } } -impl Resolver for CliResolver { +impl Resolver for CliGraphResolver { fn default_jsx_import_source(&self) -> Option<String> { self.maybe_default_jsx_import_source.clone() } @@ -69,7 +60,7 @@ impl Resolver for CliResolver { .resolve(specifier, referrer) .map_err(|err| err.into()) } else { - resolve_import(specifier, referrer.as_str()).map_err(|err| err.into()) + deno_graph::resolve_import(specifier, referrer).map_err(|err| err.into()) } } } |