From e352a6e6fc8edf4a06e151b3b6525fcb7c773ae6 Mon Sep 17 00:00:00 2001 From: Regev Brody Date: Sun, 7 Jul 2024 18:32:03 +0300 Subject: [PATCH] fix: Is there a way to not upgrade a package if it's peer depndencies are not currently met #1418 --- src/lib/upgradePackageDefinitions.ts | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/lib/upgradePackageDefinitions.ts b/src/lib/upgradePackageDefinitions.ts index f2b1adba..51189195 100644 --- a/src/lib/upgradePackageDefinitions.ts +++ b/src/lib/upgradePackageDefinitions.ts @@ -29,25 +29,24 @@ const checkIfInPeerViolation = ( upgradedPeerDependencies: Index>, ): CheckIfInPeerViolationResult => { const upgradedDependencies = { ...currentDependencies, ...filteredUpgradedDependencies } - const violatedDependencies = new Set() const filteredUpgradedDependenciesAfterPeers = pickBy(filteredUpgradedDependencies, (spec, dep) => { const peerDeps = upgradedPeerDependencies[dep] if (!peerDeps) { return true } - const valid = Object.entries(peerDeps).every( + return Object.entries(peerDeps).every( ([peer, peerSpec]) => upgradedDependencies[peer] === undefined || intersects(upgradedDependencies[peer], peerSpec), ) - if (!valid) { - violatedDependencies.add(dep) - } - return valid }) - const violated = violatedDependencies.size > 0 + const violated = + Object.keys(filteredUpgradedDependencies).length > Object.keys(filteredUpgradedDependenciesAfterPeers).length let filteredUpgradedPeerDependencies = upgradedPeerDependencies if (violated) { - filteredUpgradedPeerDependencies = pickBy(upgradedPeerDependencies, (spec, dep) => !violatedDependencies.has(dep)) + filteredUpgradedPeerDependencies = pickBy( + upgradedPeerDependencies, + (spec, dep) => filteredUpgradedDependenciesAfterPeers[dep] || !filteredUpgradedDependencies[dep], + ) } return { violated,