diff options
Diffstat (limited to 'cli/resolver.rs')
-rw-r--r-- | cli/resolver.rs | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/cli/resolver.rs b/cli/resolver.rs index cc1059aed..ebb808c6b 100644 --- a/cli/resolver.rs +++ b/cli/resolver.rs @@ -22,6 +22,7 @@ use crate::args::package_json::PackageJsonDeps; use crate::args::JsxImportSourceConfig; use crate::args::PackageJsonDepsProvider; use crate::npm::CliNpmResolver; +use crate::npm::InnerCliNpmResolverRef; use crate::util::sync::AtomicFlag; /// Result of checking if a specifier is mapped via @@ -118,10 +119,10 @@ impl CliGraphResolver { options: CliGraphResolverOptions, ) -> Self { Self { - mapped_specifier_resolver: MappedSpecifierResolver { - maybe_import_map: options.maybe_import_map, + mapped_specifier_resolver: MappedSpecifierResolver::new( + options.maybe_import_map, package_json_deps_provider, - }, + ), maybe_default_jsx_import_source: options .maybe_jsx_import_source_config .as_ref() @@ -167,19 +168,18 @@ impl Resolver for CliGraphResolver { specifier: &str, referrer: &ModuleSpecifier, ) -> Result<ModuleSpecifier, AnyError> { - use MappedResolution::*; let result = match self .mapped_specifier_resolver .resolve(specifier, referrer)? { - ImportMap(specifier) => Ok(specifier), - PackageJson(specifier) => { + MappedResolution::ImportMap(specifier) => Ok(specifier), + MappedResolution::PackageJson(specifier) => { // found a specifier in the package.json, so mark that // we need to do an "npm install" later self.found_package_json_dep_flag.raise(); Ok(specifier) } - None => deno_graph::resolve_import(specifier, referrer) + MappedResolution::None => deno_graph::resolve_import(specifier, referrer) .map_err(|err| err.into()), }; @@ -263,9 +263,14 @@ impl NpmResolver for CliGraphResolver { fn resolve_npm(&self, package_req: &PackageReq) -> NpmPackageReqResolution { match &self.npm_resolver { - Some(npm_resolver) => { - npm_resolver.resolve_npm_for_deno_graph(package_req) - } + Some(npm_resolver) => match npm_resolver.as_inner() { + InnerCliNpmResolverRef::Managed(npm_resolver) => { + npm_resolver.resolve_npm_for_deno_graph(package_req) + } + // if we are using byonm, then this should never be called because + // we don't use deno_graph's npm resolution in this case + InnerCliNpmResolverRef::Byonm(_) => unreachable!(), + }, None => NpmPackageReqResolution::Err(anyhow!( "npm specifiers were requested; but --no-npm is specified" )), |