diff --git a/src/package-managers/npm.ts b/src/package-managers/npm.ts index f42d64b0..62e59ff3 100644 --- a/src/package-managers/npm.ts +++ b/src/package-managers/npm.ts @@ -683,7 +683,8 @@ export const greatest: GetVersion = async ( export const getPeerDependencies = async (packageName: string, version: Version): Promise> => { const args = ['view', `${packageName}@${version}`, 'peerDependencies'] const result = await spawnNpm(args, {}, { rejectOnError: false }) - return result ? parseJson(result, { command: [...args, '--json'].join(' ') }) : {} + const parsed = result ? parseJson(result, { command: [...args, '--json'].join(' ') }) : {} + return Array.isArray(parsed) ? parsed.at(-1) : parsed } /** diff --git a/test/getIgnoredUpgradesDueToPeerDeps.test.ts b/test/getIgnoredUpgradesDueToPeerDeps.test.ts index 054dade4..eef1bf81 100644 --- a/test/getIgnoredUpgradesDueToPeerDeps.test.ts +++ b/test/getIgnoredUpgradesDueToPeerDeps.test.ts @@ -75,7 +75,7 @@ describe('getIgnoredUpgradesDueToPeerDeps', function () { 'eslint-plugin-unused-imports': { from: '^3', reason: { - 'eslint-plugin-unused-imports': 'eslint 9', + 'eslint-plugin-unused-imports': 'eslint ^9.0.0', }, to: '^4', }, diff --git a/test/getPeerDependenciesFromRegistry.test.ts b/test/getPeerDependenciesFromRegistry.test.ts index 639f50cc..5d713447 100644 --- a/test/getPeerDependenciesFromRegistry.test.ts +++ b/test/getPeerDependenciesFromRegistry.test.ts @@ -15,6 +15,17 @@ describe('getPeerDependenciesFromRegistry', function () { }) }) + it('single package with range', async () => { + await chalkInit() + const data = await getPeerDependenciesFromRegistry({ 'eslint-plugin-unused-imports': '^4' }, {}) + data.should.deep.equal({ + 'eslint-plugin-unused-imports': { + '@typescript-eslint/eslint-plugin': '^8.0.0-0', + eslint: '^9.0.0', + }, + }) + }) + it('single package empty', async () => { await chalkInit() const data = await getPeerDependenciesFromRegistry({ 'ncu-test-return-version': '1.0' }, {})