Skip to content

Commit 80e3d05

Browse files
committed
Fix peer dependencies for versions with range operators (#1378).
getPeerDependencies and getPeerDependenciesFromRegistry expect exact versions, not version ranges.
1 parent 0126a8f commit 80e3d05

File tree

2 files changed

+4
-6
lines changed

2 files changed

+4
-6
lines changed

src/lib/upgradePackageDefinitions.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,10 @@ export async function upgradePackageDefinitions(
4646
return !options.jsonUpgraded || !options.minimal || !satisfies(latestVersions[dep], currentDependencies[dep])
4747
})
4848

49+
const filteredLatestDependencies = pickBy(latestVersions, (spec, dep) => filteredUpgradedDependencies[dep])
50+
4951
if (options.peer && !isEmpty(filteredUpgradedDependencies)) {
50-
const upgradedPeerDependencies = await getPeerDependenciesFromRegistry(filteredUpgradedDependencies, options)
52+
const upgradedPeerDependencies = await getPeerDependenciesFromRegistry(filteredLatestDependencies, options)
5153
const peerDependencies = { ...options.peerDependencies, ...upgradedPeerDependencies }
5254
if (!isEqual(options.peerDependencies, peerDependencies)) {
5355
const [newUpgradedDependencies, newLatestVersions, newPeerDependencies] = await upgradePackageDefinitions(

src/package-managers/npm.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -653,11 +653,7 @@ export const greatest: GetVersion = async (
653653
* @returns Promised {packageName: version} collection
654654
*/
655655
export const getPeerDependencies = async (packageName: string, version: Version): Promise<Index<Version>> => {
656-
// if version number uses >, omit the version and find latest
657-
// otherwise, it will error out in the shell
658-
// https://github.com/raineorshine/npm-check-updates/issues/1181
659-
const atVersion = !version.startsWith('>') ? `@${version}` : ''
660-
const args = ['view', `${packageName}${atVersion}`, 'peerDependencies']
656+
const args = ['view', `${packageName}@${version}`, 'peerDependencies']
661657
const result = await spawnNpm(args, {}, { rejectOnError: false })
662658
return result ? parseJson(result, { command: [...args, '--json'].join(' ') }) : {}
663659
}

0 commit comments

Comments
 (0)