summaryrefslogtreecommitdiff
path: root/cli/npm
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2024-08-28 14:17:47 -0400
committerGitHub <noreply@github.com>2024-08-28 14:17:47 -0400
commitb708a13eb02510925b5fd964fe933b4896093185 (patch)
treee20a84f95680439a3eb665245fc7ede27bf4be02 /cli/npm
parent7dd861aa36974d5afa9633078b51c4c7f17cf181 (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.rs3
-rw-r--r--cli/npm/managed/resolution.rs13
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() {