diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2022-09-23 17:35:48 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-23 17:35:48 -0400 |
commit | f6a9b49dfb57a2392ea37a64cfdee956a1c392ec (patch) | |
tree | 6e4e0586b6481d869032854acbabfa12d6edd98a /cli/npm/cache.rs | |
parent | 12306022da16fb5019d0a3d4f3d6e78dd7830d63 (diff) |
perf: don't re-download package tarball to global cache if local node_modules folder exists for package (#16005)
Diffstat (limited to 'cli/npm/cache.rs')
-rw-r--r-- | cli/npm/cache.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/cli/npm/cache.rs b/cli/npm/cache.rs index a733ecceb..6b841501a 100644 --- a/cli/npm/cache.rs +++ b/cli/npm/cache.rs @@ -199,6 +199,18 @@ impl NpmCache { dist: &NpmPackageVersionDistInfo, registry_url: &Url, ) -> Result<(), AnyError> { + self + .ensure_package_inner(id, dist, registry_url) + .await + .with_context(|| format!("Failed caching npm package '{}'.", id)) + } + + async fn ensure_package_inner( + &self, + id: &NpmPackageId, + dist: &NpmPackageVersionDistInfo, + registry_url: &Url, + ) -> Result<(), AnyError> { let package_folder = self.readonly.package_folder(id, registry_url); if package_folder.exists() // if this file exists, then the package didn't successfully extract |