summaryrefslogtreecommitdiff
path: root/cli/module_loader.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-09-28 16:43:45 -0400
committerGitHub <noreply@github.com>2023-09-28 22:43:45 +0200
commitd43e48c4e96b02289d505cd2558ba85d7d6cb57b (patch)
treed69a40b3e948a5c4ea166700610e24e35ecc61c4 /cli/module_loader.rs
parent0bd53fd52d8937afed401fe1c61bb2ba0b23501c (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.rs22
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(