From 0321ca32a4d5cb858a53f519dff677f04ea174de Mon Sep 17 00:00:00 2001 From: Zoltan Kochan Date: Wed, 3 Aug 2022 16:05:07 +0300 Subject: [PATCH] fix: don't print the same deprecation warning multiple times (#5149) --- .changeset/clean-ears-jam.md | 6 ++++++ packages/resolve-dependencies/src/resolveDependencies.ts | 8 +++++--- 2 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 .changeset/clean-ears-jam.md diff --git a/.changeset/clean-ears-jam.md b/.changeset/clean-ears-jam.md new file mode 100644 index 0000000000..e4b982f988 --- /dev/null +++ b/.changeset/clean-ears-jam.md @@ -0,0 +1,6 @@ +--- +"@pnpm/resolve-dependencies": patch +"pnpm": patch +--- + +Don't print the same deprecation warning multiple times. diff --git a/packages/resolve-dependencies/src/resolveDependencies.ts b/packages/resolve-dependencies/src/resolveDependencies.ts index a26d5e65aa..79c1b37cac 100644 --- a/packages/resolve-dependencies/src/resolveDependencies.ts +++ b/packages/resolve-dependencies/src/resolveDependencies.ts @@ -925,7 +925,9 @@ async function resolveDependency ( status: 'resolved', }) - ctx.resolvedPackagesByDepPath[depPath] = await getResolvedPackage({ + // WARN: It is very important to keep this sync + // Otherwise, deprecation messages for the same package might get written several times + ctx.resolvedPackagesByDepPath[depPath] = getResolvedPackage({ allowBuild: ctx.allowBuild, dependencyLockfile: currentPkg.dependencyLockfile, depPath, @@ -1016,7 +1018,7 @@ function pkgIsLeaf (pkg: PackageManifest) { isEmpty(pkg.peerDependencies ?? {}) } -async function getResolvedPackage ( +function getResolvedPackage ( options: { allowBuild?: (pkgName: string) => boolean dependencyLockfile?: PackageSnapshot @@ -1029,7 +1031,7 @@ async function getResolvedPackage ( prepare: boolean wantedDependency: WantedDependency } -): Promise { +): ResolvedPackage { const peerDependencies = peerDependenciesWithoutOwn(options.pkg) const requiresBuild = (options.allowBuild == null || options.allowBuild(options.pkg.name))