From 40527526e569532fa076e05a229f29c6edd4522c Mon Sep 17 00:00:00 2001 From: David Sherret Date: Mon, 16 Jan 2023 14:46:30 -0500 Subject: refactor(npm): avoid cloning snapshot for lockfile (#17451) --- cli/npm/resolution/mod.rs | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) (limited to 'cli/npm/resolution') diff --git a/cli/npm/resolution/mod.rs b/cli/npm/resolution/mod.rs index 18158bd17..c4d05598c 100644 --- a/cli/npm/resolution/mod.rs +++ b/cli/npm/resolution/mod.rs @@ -382,10 +382,6 @@ impl NpmResolution { .cloned() } - pub fn all_packages(&self) -> Vec { - self.snapshot.read().all_packages() - } - pub fn all_packages_partitioned(&self) -> NpmPackagesPartitioned { self.snapshot.read().all_packages_partitioned() } @@ -398,15 +394,12 @@ impl NpmResolution { self.snapshot.read().clone() } - pub fn lock( - &self, - lockfile: &mut Lockfile, - snapshot: &NpmResolutionSnapshot, - ) -> Result<(), AnyError> { + pub fn lock(&self, lockfile: &mut Lockfile) -> Result<(), AnyError> { + let snapshot = self.snapshot.read(); for (package_req, package_id) in snapshot.package_reqs.iter() { lockfile.insert_npm_specifier(package_req, package_id); } - for package in self.all_packages() { + for package in snapshot.all_packages() { lockfile.check_or_insert_npm_package(&package)?; } Ok(()) -- cgit v1.2.3