fix: don't report the same deprecated package multiple times (#4863)

This commit is contained in:
Zoltan Kochan
2022-06-07 01:08:11 +03:00
committed by GitHub
parent e1cb00e286
commit 26413c30cc
2 changed files with 17 additions and 10 deletions

View File

@@ -0,0 +1,6 @@
---
"@pnpm/resolve-dependencies": patch
"pnpm": patch
---
Report only the first occurence of a deprecated package.

View File

@@ -877,16 +877,6 @@ async function resolveDependency (
if (options.currentDepth === 0 && pkgResponse.body.latest && pkgResponse.body.latest !== pkg.version) {
ctx.outdatedDependencies[pkgResponse.body.id] = pkgResponse.body.latest
}
if (pkg.deprecated) {
deprecationLogger.debug({
deprecated: pkg.deprecated,
depth: options.currentDepth,
pkgId: pkgResponse.body.id,
pkgName: pkg.name,
pkgVersion: pkg.version,
prefix: ctx.prefix,
})
}
// In case of leaf dependencies (dependencies that have no prod deps or peer deps),
// we only ever need to analyze one leaf dep in a graph, so the nodeId can be short and stateless.
@@ -899,6 +889,17 @@ async function resolveDependency (
const isNew = !ctx.resolvedPackagesByDepPath[depPath]
if (isNew) {
if (pkg.deprecated) {
// Report deprecated packages only on first occurrence.
deprecationLogger.debug({
deprecated: pkg.deprecated,
depth: options.currentDepth,
pkgId: pkgResponse.body.id,
pkgName: pkg.name,
pkgVersion: pkg.version,
prefix: ctx.prefix,
})
}
if (pkgResponse.body.isInstallable === false || !parentIsInstallable) {
ctx.skipped.add(pkgResponse.body.id)
}