@@ -75,18 +75,25 @@ export const handler = catchAsyncError(async opts => {
75
75
. filter ( ( { name} ) => opts [ name ] )
76
76
. map ( ( { ncuValue} ) => ncuValue )
77
77
. join ( ',' ) ;
78
+
78
79
const currentVersions = ncu . getCurrentDependencies ( packageJson , { dep : ncuDepGroups } ) ;
79
80
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
+ ) ;
83
90
// Filtering modules that have to be updated
84
91
const upgradedLatestVersions = _ . pickBy (
85
- ncu . upgradeDependencies ( currentVersions , latestVersions ) ,
92
+ upgradedLatestVersionsFull ,
86
93
( newVersion , moduleName ) => filterModuleName ( moduleName )
87
94
) ;
88
95
const upgradedCompatibleVersions = _ . pickBy (
89
- ncu . upgradeDependencies ( currentVersions , compatibleVersions ) ,
96
+ upgradedCompatibleVersionsFull ,
90
97
( newVersion , moduleName ) => filterModuleName ( moduleName )
91
98
) ;
92
99
@@ -135,10 +142,15 @@ export const handler = catchAsyncError(async opts => {
135
142
if ( ! _ . isEmpty ( incompatibleVersions ) ) {
136
143
const rows = _ . map ( Object . entries ( incompatibleVersions ) , ( [ name , to ] ) => [
137
144
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 ( ', ' )
139
150
] ) ;
140
151
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' } ) } ` ) ;
142
154
}
143
155
144
156
if ( ! _ . isEmpty ( ignoredModules ) ) {
0 commit comments