@@ -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