summaryrefslogtreecommitdiff
path: root/cli/npm/managed/resolvers/mod.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-09-30 12:06:38 -0400
committerGitHub <noreply@github.com>2023-09-30 12:06:38 -0400
commit8d24be1a59714761665516e0d78d25059608c29b (patch)
treeaed0140b63441008cb9b549d44948f7a36a4f5f1 /cli/npm/managed/resolvers/mod.rs
parent1cda3840ff673512f7c6d58fa8402c35c760bc3b (diff)
refactor(npm): create `cli::npm::managed` module (#20740)
Creates the `cli::npm::managed` module and starts moving more functionality into it.
Diffstat (limited to 'cli/npm/managed/resolvers/mod.rs')
-rw-r--r--cli/npm/managed/resolvers/mod.rs50
1 files changed, 50 insertions, 0 deletions
diff --git a/cli/npm/managed/resolvers/mod.rs b/cli/npm/managed/resolvers/mod.rs
new file mode 100644
index 000000000..b6d96c4af
--- /dev/null
+++ b/cli/npm/managed/resolvers/mod.rs
@@ -0,0 +1,50 @@
+// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
+
+mod common;
+mod global;
+mod local;
+
+use std::path::PathBuf;
+use std::sync::Arc;
+
+use deno_core::url::Url;
+use deno_npm::NpmSystemInfo;
+use deno_runtime::deno_fs::FileSystem;
+
+use crate::npm::NpmCache;
+use crate::util::progress_bar::ProgressBar;
+
+pub use self::common::NpmPackageFsResolver;
+use self::global::GlobalNpmPackageResolver;
+use self::local::LocalNpmPackageResolver;
+
+use super::NpmResolution;
+
+pub fn create_npm_fs_resolver(
+ fs: Arc<dyn FileSystem>,
+ cache: Arc<NpmCache>,
+ progress_bar: &ProgressBar,
+ registry_url: Url,
+ resolution: Arc<NpmResolution>,
+ maybe_node_modules_path: Option<PathBuf>,
+ system_info: NpmSystemInfo,
+) -> Arc<dyn NpmPackageFsResolver> {
+ match maybe_node_modules_path {
+ Some(node_modules_folder) => Arc::new(LocalNpmPackageResolver::new(
+ fs,
+ cache,
+ progress_bar.clone(),
+ registry_url,
+ node_modules_folder,
+ resolution,
+ system_info,
+ )),
+ None => Arc::new(GlobalNpmPackageResolver::new(
+ fs,
+ cache,
+ registry_url,
+ resolution,
+ system_info,
+ )),
+ }
+}