From a087f339e308f3520a43371dac3de86d878885ca Mon Sep 17 00:00:00 2001 From: Zoltan Kochan Date: Tue, 14 Dec 2021 19:13:06 +0200 Subject: [PATCH] fix(render-peer-issues): print a new line between summaries --- .changeset/lucky-singers-fetch.md | 5 ++++ packages/render-peer-issues/src/index.ts | 12 ++++++---- .../test/__snapshots__/index.ts.snap | 9 +++++-- packages/render-peer-issues/test/index.ts | 24 ++++++++++++++++++- 4 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 .changeset/lucky-singers-fetch.md diff --git a/.changeset/lucky-singers-fetch.md b/.changeset/lucky-singers-fetch.md new file mode 100644 index 0000000000..a088f8d836 --- /dev/null +++ b/.changeset/lucky-singers-fetch.md @@ -0,0 +1,5 @@ +--- +"@pnpm/render-peer-issues": patch +--- + +A new line should be between the summary about conflicting peers and non-conflicting ones. diff --git a/packages/render-peer-issues/src/index.ts b/packages/render-peer-issues/src/index.ts index ed2e468a64..6c4be0f438 100644 --- a/packages/render-peer-issues/src/index.ts +++ b/packages/render-peer-issues/src/index.ts @@ -36,16 +36,20 @@ export default function ( .filter(([, project]) => Object.keys(project.dependencies).length > 0) .sort(([projectKey1], [projectKey2]) => projectKey1.localeCompare(projectKey2)) .map(([projectKey, project]) => { - let summary = '' + const summaries = [] const { conflicts, intersections } = peerDependencyIssuesByProjects[projectKey] if (conflicts.length) { - summary += chalk.red(`✕ Conflicting peer dependencies:\n ${cliColumns(conflicts, cliColumnsOptions)}`) + summaries.push( + chalk.red(`✕ Conflicting peer dependencies:\n ${cliColumns(conflicts, cliColumnsOptions)}`) + ) } if (Object.keys(intersections).length) { - summary += `Peer dependencies that should be installed:\n ${cliColumns(Object.entries(intersections).map(([name, version]) => formatNameAndRange(name, version)), cliColumnsOptions)}` + summaries.push( + `Peer dependencies that should be installed:\n ${cliColumns(Object.entries(intersections).map(([name, version]) => formatNameAndRange(name, version)), cliColumnsOptions)}` + ) } const title = chalk.white(projectKey) - return `${archy(toArchyData(title, project))}${summary}` + return `${archy(toArchyData(title, project))}${summaries.join('\n')}` }).join('\n\n') } diff --git a/packages/render-peer-issues/test/__snapshots__/index.ts.snap b/packages/render-peer-issues/test/__snapshots__/index.ts.snap index 543c885501..1aab3593e3 100644 --- a/packages/render-peer-issues/test/__snapshots__/index.ts.snap +++ b/packages/render-peer-issues/test/__snapshots__/index.ts.snap @@ -11,8 +11,13 @@ Peer dependencies that should be installed: aaa@^1.0.0 packages/0 -└─┬ zzz - └── ✕ missing peer ddd@^1.0.0 +├─┬ zzz +│ ├── ✕ missing peer ddd@^1.0.0 +│ └── ✕ missing peer eee@^1.0.0 +└─┬ www + └── ✕ missing peer eee@^2.0.0 +✕ Conflicting peer dependencies: + eee Peer dependencies that should be installed: ddd@^1.0.0 " `; diff --git a/packages/render-peer-issues/test/index.ts b/packages/render-peer-issues/test/index.ts index dc87147527..65e4f3a07b 100644 --- a/packages/render-peer-issues/test/index.ts +++ b/packages/render-peer-issues/test/index.ts @@ -4,7 +4,7 @@ import stripAnsi from 'strip-ansi' test('renderPeerIssues()', () => { expect(stripAnsi(renderPeerIssues({ 'packages/0': { - conflicts: [], + conflicts: ['eee'], intersections: { ddd: '^1.0.0' }, bad: {}, missing: { @@ -20,6 +20,28 @@ test('renderPeerIssues()', () => { wantedRange: '^1.0.0', }, ], + eee: [ + { + parents: [ + { + name: 'zzz', + version: '1.0.0', + }, + ], + optional: false, + wantedRange: '^1.0.0', + }, + { + parents: [ + { + name: 'www', + version: '1.0.0', + }, + ], + optional: false, + wantedRange: '^2.0.0', + }, + ], }, }, '.': {