Skip to content

Commit

Permalink
feat: when packages are filter due to engine not matching, we need to…
Browse files Browse the repository at this point in the history
… print it out, just like we do in peer checks #1422
  • Loading branch information
rbnayax committed Jun 8, 2024
1 parent 0ee6c96 commit 0db3169
Show file tree
Hide file tree
Showing 7 changed files with 79 additions and 9 deletions.
4 changes: 2 additions & 2 deletions src/lib/getIgnoredUpgradesDueToPeerDeps.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { satisfies } from 'semver'
import { IgnoredUpgradeDueToPeer } from '../types/IgnoredUpgradeDueToPeer'
import { IgnoredUpgradeDueToPeerDeps } from '../types/IgnoredUpgradeDueToPeerDeps'
import { Index } from '../types/IndexType'
import { Options } from '../types/Options'
import { Version } from '../types/Version'
Expand Down Expand Up @@ -41,7 +41,7 @@ export async function getIgnoredUpgradesDueToPeerDeps(
),
},
}),
{} as Index<IgnoredUpgradeDueToPeer>,
{} as Index<IgnoredUpgradeDueToPeerDeps>,
)
}

Expand Down
4 changes: 2 additions & 2 deletions src/lib/logging.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
*/
import Table from 'cli-table3'
import { IgnoredUpgradeDueToEnginesNode } from '../types/IgnoredUpgradeDueToEnginesNode'
import { IgnoredUpgradeDueToPeer } from '../types/IgnoredUpgradeDueToPeer'
import { IgnoredUpgradeDueToPeerDeps } from '../types/IgnoredUpgradeDueToPeerDeps'
import { Index } from '../types/IndexType'
import { Options } from '../types/Options'
import { VersionResult } from '../types/VersionResult'
Expand Down Expand Up @@ -369,7 +369,7 @@ export async function printUpgrades(
}

/** Print updates that were ignored due to incompatible peer dependencies. */
export function printIgnoredUpdatesDueToPeers(options: Options, ignoredUpdates: Index<IgnoredUpgradeDueToPeer>) {
export function printIgnoredUpdatesDueToPeerDeps(options: Options, ignoredUpdates: Index<IgnoredUpgradeDueToPeerDeps>) {
print(options, `\nIgnored incompatible updates (peer dependencies):\n`)
const table = renderDependencyTable(
Object.entries(ignoredUpdates).map(([pkgName, { from, to, reason }]) => {
Expand Down
6 changes: 3 additions & 3 deletions src/lib/runLocal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import keyValueBy from './keyValueBy'
import {
print,
printIgnoredUpdatesDueToEnginesNode,
printIgnoredUpdatesDueToPeers,
printIgnoredUpdatesDueToPeerDeps,
printJson,
printSorted,
printUpgrades,
Expand Down Expand Up @@ -262,10 +262,10 @@ async function runLocal(
options,
)
if (Object.keys(ignoredUpdates).length > 0) {
printIgnoredUpdatesDueToPeers(options, ignoredUpdates)
printIgnoredUpdatesDueToPeerDeps(options, ignoredUpdates)
}
}
if (options.enginesNode && options.nodeEngineVersion) {
if (options.enginesNode) {
const ignoredUpdates = await getIgnoredUpgradesDueToEnginesNode(current, upgraded, options)
if (Object.keys(ignoredUpdates).length > 0) {
printIgnoredUpdatesDueToEnginesNode(options, ignoredUpdates)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Index } from './IndexType'
import { Version } from './Version'

/** An object that represents an upgrade that was ignored due to peer dependencies, along with the reason. */
export interface IgnoredUpgradeDueToPeer {
export interface IgnoredUpgradeDueToPeerDeps {
from: Version
to: Version
reason: Index<string>
Expand Down
38 changes: 38 additions & 0 deletions test/getEnginesNodeFromRegistry.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import { chalkInit } from '../src/lib/chalk'
import getEnginesNodeFromRegistry from '../src/lib/getEnginesNodeFromRegistry'
import chaiSetup from './helpers/chaiSetup'

chaiSetup()

describe('getEnginesNodeFromRegistry', function () {
it('single package', async () => {
await chalkInit()
const data = await getEnginesNodeFromRegistry({ del: '2.0.0' }, {})
data.should.deep.equal({
del: '>=0.10.0',
})
})

it('single package empty', async () => {
await chalkInit()
const data = await getEnginesNodeFromRegistry({ 'ncu-test-return-version': '1.0' }, {})
data.should.deep.equal({ 'ncu-test-return-version': undefined })
})

it('multiple packages', async () => {
await chalkInit()
const data = await getEnginesNodeFromRegistry(
{
'ncu-test-return-version': '1.0.0',
'ncu-test-peer': '1.0.0',
del: '2.0.0',
},
{},
)
data.should.deep.equal({
'ncu-test-return-version': undefined,
'ncu-test-peer': undefined,
del: '>=0.10.0',
})
})
})
32 changes: 32 additions & 0 deletions test/getIgnoredUpgradesDueToEnginesNode.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import getIgnoredUpgradesDueToEnginesNode from '../src/lib/getIgnoredUpgradesDueToEnginesNode'
import chaiSetup from './helpers/chaiSetup'

chaiSetup()

describe('getIgnoredUpgradesDueToEnginesNode', function () {
it('ncu-test-peer-update', async () => {
const data = await getIgnoredUpgradesDueToEnginesNode(
{
'ncu-test-return-version': '1.0.0',
'ncu-test-peer': '1.0.0',
del: '2.2.2',
},
{
'ncu-test-return-version': '2.0.0',
'ncu-test-peer': '1.1.0',
del: '2.2.2',
},
{
enginesNode: true,
nodeEngineVersion: `^0.10.0`,
},
)
data.should.deep.equal({
del: {
enginesNode: '>=14.16',
from: '2.2.2',
to: '7.1.0',
},
})
})
})
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import chaiSetup from './helpers/chaiSetup'

chaiSetup()

describe('getIgnoredUpgrades', function () {
describe('getIgnoredUpgradesDueToPeerDeps', function () {
it('ncu-test-peer-update', async () => {
const data = await getIgnoredUpgradesDueToPeerDeps(
{
Expand Down

0 comments on commit 0db3169

Please sign in to comment.