diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2024-08-28 14:17:47 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-28 14:17:47 -0400 |
commit | b708a13eb02510925b5fd964fe933b4896093185 (patch) | |
tree | e20a84f95680439a3eb665245fc7ede27bf4be02 /cli/npm | |
parent | 7dd861aa36974d5afa9633078b51c4c7f17cf181 (diff) |
feat: improve lockfile v4 to store normalized version constraints and be more terse (#25247)
Stores normalized version constraints in the lockfile, which will
improve reproducibility and will fix a bug with duplicate specifiers
ending up in the lockfile. Also, gets rid of some duplicate data in the
specifiers area of the lockfile.
Diffstat (limited to 'cli/npm')
-rw-r--r-- | cli/npm/managed/mod.rs | 3 | ||||
-rw-r--r-- | cli/npm/managed/resolution.rs | 13 |
2 files changed, 5 insertions, 11 deletions
diff --git a/cli/npm/managed/mod.rs b/cli/npm/managed/mod.rs index 8f82ddea2..a0148c648 100644 --- a/cli/npm/managed/mod.rs +++ b/cli/npm/managed/mod.rs @@ -406,8 +406,7 @@ impl ManagedCliNpmResolver { } } if result.dependencies_result.is_ok() { - result.dependencies_result = - self.cache_packages().await.map_err(AnyError::from); + result.dependencies_result = self.cache_packages().await; } result diff --git a/cli/npm/managed/resolution.rs b/cli/npm/managed/resolution.rs index 3d13e1735..486e87816 100644 --- a/cli/npm/managed/resolution.rs +++ b/cli/npm/managed/resolution.rs @@ -22,6 +22,7 @@ use deno_npm::NpmPackageCacheFolderId; use deno_npm::NpmPackageId; use deno_npm::NpmResolutionPackage; use deno_npm::NpmSystemInfo; +use deno_semver::jsr::JsrDepPackageReq; use deno_semver::package::PackageNv; use deno_semver::package::PackageReq; use deno_semver::VersionReq; @@ -329,16 +330,10 @@ fn populate_lockfile_from_snapshot( ) { let mut lockfile = lockfile.lock(); for (package_req, nv) in snapshot.package_reqs() { + let id = &snapshot.resolve_package_from_deno_module(nv).unwrap().id; lockfile.insert_package_specifier( - format!("npm:{}", package_req), - format!( - "npm:{}", - snapshot - .resolve_package_from_deno_module(nv) - .unwrap() - .id - .as_serialized() - ), + JsrDepPackageReq::npm(package_req.clone()), + format!("{}{}", id.nv.version, id.peer_deps_serialized()), ); } for package in snapshot.all_packages_for_every_system() { |