Skip to content

Commit a61b7f5

Browse files
committed
show reason for incompatible update
1 parent 9778689 commit a61b7f5

File tree

3 files changed

+102
-35
lines changed

3 files changed

+102
-35
lines changed

package-lock.json

Lines changed: 82 additions & 27 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
"inquirer": "7.3.3",
3737
"libnpmconfig": "1.2.1",
3838
"lodash": "4.17.21",
39-
"npm-check-updates": "11.4.0",
39+
"npm-check-updates": "11.5.3",
4040
"open": "7.4.2",
4141
"pacote": "11.2.7",
4242
"semver": "7.3.4",

src/commands/check.js

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,18 +75,25 @@ export const handler = catchAsyncError(async opts => {
7575
.filter(({name}) => opts[name])
7676
.map(({ncuValue}) => ncuValue)
7777
.join(',');
78+
7879
const currentVersions = ncu.getCurrentDependencies(packageJson, {dep: ncuDepGroups});
7980
const peerDependencies = ncu.getPeerDependencies(currentVersions, {});
80-
const compatibleVersions = await ncu.queryVersions(currentVersions, {versionTarget: 'latest', peerDependencies});
81-
const latestVersions = await ncu.queryVersions(currentVersions, {versionTarget: 'latest', loglevel: 'silent'});
82-
81+
const [upgradedCompatibleVersionsFull, compatibleVersions, upgradedPeerDependencies] =
82+
await ncu.upgradePackageDefinitions(
83+
currentVersions,
84+
{versionTarget: 'latest', peer: true, peerDependencies}
85+
);
86+
const [upgradedLatestVersionsFull, latestVersions] = await ncu.upgradePackageDefinitions(
87+
currentVersions,
88+
{versionTarget: 'latest', loglevel: 'silent'}
89+
);
8390
// Filtering modules that have to be updated
8491
const upgradedLatestVersions = _.pickBy(
85-
ncu.upgradeDependencies(currentVersions, latestVersions),
92+
upgradedLatestVersionsFull,
8693
(newVersion, moduleName) => filterModuleName(moduleName)
8794
);
8895
const upgradedCompatibleVersions = _.pickBy(
89-
ncu.upgradeDependencies(currentVersions, compatibleVersions),
96+
upgradedCompatibleVersionsFull,
9097
(newVersion, moduleName) => filterModuleName(moduleName)
9198
);
9299

@@ -135,10 +142,15 @@ export const handler = catchAsyncError(async opts => {
135142
if (!_.isEmpty(incompatibleVersions)) {
136143
const rows = _.map(Object.entries(incompatibleVersions), ([name, to]) => [
137144
strong(name),
138-
currentVersions[name], '→', colorizeDiff(currentVersions[name], to)
145+
currentVersions[name], '→', colorizeDiff(currentVersions[name], to),
146+
'cause: ' + Object.entries(upgradedPeerDependencies)
147+
.filter(([, peers]) => peers[name] !== undefined && !semver.satisfies(latestVersions[name], peers[name]))
148+
.map(([pkg, peers]) => pkg + ' requires ' + peers[name])
149+
.join(', ')
139150
]);
140151

141-
console.log(`\n${strong('Ignored incompatible updates (peer dependencies):')}\n\n${createSimpleTable(rows)}`);
152+
console.log(`\n${strong('Ignored incompatible updates (peer dependencies):')}\n`);
153+
console.log(`\n${createSimpleTable(rows, {colAligns: 'lrrrl'})}`);
142154
}
143155

144156
if (!_.isEmpty(ignoredModules)) {

0 commit comments

Comments
 (0)