summaryrefslogtreecommitdiff
path: root/cli/npm/installer.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-04-14 16:22:33 -0400
committerGitHub <noreply@github.com>2023-04-14 16:22:33 -0400
commit136dce67cec749dce5989ea29e88359ef79a0045 (patch)
tree38e96bbbf22dc06cdba418a35467b215f1335549 /cli/npm/installer.rs
parenta4111442191fff300132259752e6d2d5613d1871 (diff)
refactor: break up `ProcState` (#18707)
1. Breaks up functionality within `ProcState` into several other structs to break out the responsibilities (`ProcState` is only a data struct now). 2. Moves towards being able to inject dependencies more easily and have functionality only require what it needs. 3. Exposes `Arc<T>` around the "service structs" instead of it being embedded within them. The idea behind embedding them was to reduce the verbosity of needing to pass around `Arc<...>`, but I don't think it was exactly working and as we move more of these structs to be more injectable I don't think the extra verbosity will be a big deal.
Diffstat (limited to 'cli/npm/installer.rs')
-rw-r--r--cli/npm/installer.rs24
1 files changed, 11 insertions, 13 deletions
diff --git a/cli/npm/installer.rs b/cli/npm/installer.rs
index 9e5fcc4c3..bdcafb542 100644
--- a/cli/npm/installer.rs
+++ b/cli/npm/installer.rs
@@ -19,8 +19,8 @@ use super::NpmResolution;
#[derive(Debug)]
struct PackageJsonDepsInstallerInner {
has_installed_flag: AtomicFlag,
- npm_registry_api: CliNpmRegistryApi,
- npm_resolution: NpmResolution,
+ npm_registry_api: Arc<CliNpmRegistryApi>,
+ npm_resolution: Arc<NpmResolution>,
package_deps: PackageJsonDeps,
}
@@ -58,22 +58,20 @@ impl PackageJsonDepsInstallerInner {
}
/// Holds and controls installing dependencies from package.json.
-#[derive(Debug, Clone, Default)]
-pub struct PackageJsonDepsInstaller(Option<Arc<PackageJsonDepsInstallerInner>>);
+#[derive(Debug, Default)]
+pub struct PackageJsonDepsInstaller(Option<PackageJsonDepsInstallerInner>);
impl PackageJsonDepsInstaller {
pub fn new(
- npm_registry_api: CliNpmRegistryApi,
- npm_resolution: NpmResolution,
+ npm_registry_api: Arc<CliNpmRegistryApi>,
+ npm_resolution: Arc<NpmResolution>,
deps: Option<PackageJsonDeps>,
) -> Self {
- Self(deps.map(|package_deps| {
- Arc::new(PackageJsonDepsInstallerInner {
- has_installed_flag: Default::default(),
- npm_registry_api,
- npm_resolution,
- package_deps,
- })
+ Self(deps.map(|package_deps| PackageJsonDepsInstallerInner {
+ has_installed_flag: Default::default(),
+ npm_registry_api,
+ npm_resolution,
+ package_deps,
}))
}