Skip to content

Commit ed13d30

Browse files
committed
Color selections depending on semver diff
1 parent a5a3269 commit ed13d30

File tree

3 files changed

+63
-8
lines changed

3 files changed

+63
-8
lines changed

index.js

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
#! /usr/bin/env node
2-
var colors = require('colors');
2+
const colors = require('colors');
3+
const semver = require('semver')
34

4-
var argv = require('yargs')
5+
const argv = require('yargs')
56
.option('resolution', {
67
alias: 'r',
78
describe: 'Controls the dependency resolution strategy.\nSupported options:\n* release: selects the latest release\n* milestone: select the latest version being either a milestone or a release (default)\n* integration: selects the latest revision of the dependency module (such as SNAPSHOT)',
@@ -126,10 +127,28 @@ function debugLog (message) {
126127
debugLog(`Outdated dependencies parsed\n${JSON.stringify(outdatedDependencies)}\n\n`)
127128

128129
let choices = outdatedDependencies.map(it => {
130+
const oldVersion = it.version
129131
const newVersion = it.available.release || it.available.milestone || it.available.integration
132+
133+
let title = `${it.name} - ${it.version} => ${newVersion}`
134+
try {
135+
136+
const semverDiff = semver.diff(oldVersion, newVersion)
137+
if (semverDiff === 'patch') {
138+
title = title.green
139+
} else if (semverDiff === 'minor') {
140+
title = title.yellow
141+
} else if (semverDiff === 'major') {
142+
title = title.red
143+
}
144+
} catch (err) {
145+
debugLog(`Semver for ${title} cannot be diffed.`)
146+
debugLog(err)
147+
}
148+
130149
return {
131150
description: it.projectUrl,
132-
title: `${it.name} - ${it.version} => ${newVersion}`,
151+
title: title,
133152
value: {
134153
group: it.group,
135154
name: it.name,
@@ -164,7 +183,7 @@ function debugLog (message) {
164183
{
165184
type: 'multiselect',
166185
name: 'upgrades',
167-
message: 'Pick upgrades',
186+
message: 'Pick upgrades\nColor explanation:\n' + 'Major-Version'.red + '\t' + 'Minor-Version'.yellow + '\t' + 'Patch-Version'.green,
168187
choices: choices
169188
});
170189

package-lock.json

Lines changed: 39 additions & 4 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 & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
"dependencies": {
1919
"colors": "^1.3.3",
2020
"prompts": "^2.2.1",
21+
"semver": "^6.3.0",
2122
"yargs": "^14.0.0"
2223
},
2324
"devDependencies": {

0 commit comments

Comments
 (0)