diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2023-09-28 16:43:45 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-28 22:43:45 +0200 |
commit | d43e48c4e96b02289d505cd2558ba85d7d6cb57b (patch) | |
tree | d69a40b3e948a5c4ea166700610e24e35ecc61c4 /cli/module_loader.rs | |
parent | 0bd53fd52d8937afed401fe1c61bb2ba0b23501c (diff) |
refactor(ext/node): remove dependency on deno_npm and deno_semver (#20718)
This is required from BYONM (bring your own node_modules).
Part of #18967
Diffstat (limited to 'cli/module_loader.rs')
-rw-r--r-- | cli/module_loader.rs | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/cli/module_loader.rs b/cli/module_loader.rs index 4a1e0b671..f1882d5d7 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -12,6 +12,7 @@ use crate::graph_util::ModuleGraphBuilder; use crate::graph_util::ModuleGraphContainer; use crate::node; use crate::node::CliNodeCodeTranslator; +use crate::npm::CliNpmResolver; use crate::resolver::CliGraphResolver; use crate::tools::check; use crate::tools::check::TypeChecker; @@ -646,6 +647,7 @@ pub struct NpmModuleLoader { node_code_translator: Arc<CliNodeCodeTranslator>, fs: Arc<dyn deno_fs::FileSystem>, node_resolver: Arc<NodeResolver>, + npm_resolver: Arc<CliNpmResolver>, } impl NpmModuleLoader { @@ -654,12 +656,14 @@ impl NpmModuleLoader { node_code_translator: Arc<CliNodeCodeTranslator>, fs: Arc<dyn deno_fs::FileSystem>, node_resolver: Arc<NodeResolver>, + npm_resolver: Arc<CliNpmResolver>, ) -> Self { Self { cjs_resolutions, node_code_translator, fs, node_resolver, + npm_resolver, } } @@ -693,9 +697,13 @@ impl NpmModuleLoader { nv_ref: &NpmPackageNvReference, permissions: &PermissionsContainer, ) -> Result<ModuleSpecifier, AnyError> { + let package_folder = self + .npm_resolver + .resolve_pkg_folder_from_deno_module(nv_ref.nv())?; self .handle_node_resolve_result(self.node_resolver.resolve_npm_reference( - nv_ref, + &package_folder, + nv_ref.sub_path(), NodeResolutionMode::Execution, permissions, )) @@ -704,16 +712,20 @@ impl NpmModuleLoader { pub fn resolve_req_reference( &self, - reference: &NpmPackageReqReference, + req_ref: &NpmPackageReqReference, permissions: &PermissionsContainer, ) -> Result<ModuleSpecifier, AnyError> { + let package_folder = self + .npm_resolver + .resolve_pkg_folder_from_deno_module_req(req_ref.req())?; self - .handle_node_resolve_result(self.node_resolver.resolve_npm_req_reference( - reference, + .handle_node_resolve_result(self.node_resolver.resolve_npm_reference( + &package_folder, + req_ref.sub_path(), NodeResolutionMode::Execution, permissions, )) - .with_context(|| format!("Could not resolve '{reference}'.")) + .with_context(|| format!("Could not resolve '{}'.", req_ref)) } pub fn maybe_prepare_load( |