feat(lockfile): track JSR and npm dependencies in config file (#22004)

See overview in https://github.com/denoland/deno_lockfile/pull/13
This commit is contained in:
David Sherret 2024-01-22 16:31:12 -05:00 committed by GitHub
parent d20c9e75d1
commit 69d5f136ba
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
18 changed files with 409 additions and 123 deletions

View file

@ -10,7 +10,6 @@ use deno_core::parking_lot::RwLock;
use deno_lockfile::NpmPackageDependencyLockfileInfo;
use deno_lockfile::NpmPackageLockfileInfo;
use deno_npm::registry::NpmPackageInfo;
use deno_npm::registry::NpmPackageVersionDistInfoIntegrity;
use deno_npm::registry::NpmRegistryApi;
use deno_npm::resolution::NpmPackageVersionResolutionError;
use deno_npm::resolution::NpmPackagesPartitioned;
@ -388,21 +387,6 @@ fn populate_lockfile_from_snapshot(
fn npm_package_to_lockfile_info(
pkg: &NpmResolutionPackage,
) -> NpmPackageLockfileInfo {
fn integrity_for_lockfile(
integrity: NpmPackageVersionDistInfoIntegrity,
) -> String {
match integrity {
NpmPackageVersionDistInfoIntegrity::Integrity {
algorithm,
base64_hash,
} => format!("{}-{}", algorithm, base64_hash),
NpmPackageVersionDistInfoIntegrity::UnknownIntegrity(integrity) => {
integrity.to_string()
}
NpmPackageVersionDistInfoIntegrity::LegacySha1Hex(hex) => hex.to_string(),
}
}
let dependencies = pkg
.dependencies
.iter()
@ -415,7 +399,7 @@ fn npm_package_to_lockfile_info(
NpmPackageLockfileInfo {
display_id: pkg.id.nv.to_string(),
serialized_id: pkg.id.as_serialized(),
integrity: integrity_for_lockfile(pkg.dist.integrity()),
integrity: pkg.dist.integrity().for_lockfile(),
dependencies,
}
}