From 2c9e06d6f4efebaadf12543825fc0526bd6f2153 Mon Sep 17 00:00:00 2001 From: Roman Dvornov Date: Sun, 12 Dec 2021 21:56:53 +0100 Subject: [PATCH] Replace `chalk` with `ansi-colors` --- CHANGELOG.md | 1 + lib/help.js | 31 +++++++++---------------------- package-lock.json | 30 +++++++++++++++++++++--------- package.json | 2 +- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4bcaeff..186a5a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## next - Allowed args after and between options +- Replaced `chalk` with `ansi-colors` ## 3.0.0-beta.1 diff --git a/lib/help.js b/lib/help.js index e45cdc2..1d9c4d7 100644 --- a/lib/help.js +++ b/lib/help.js @@ -1,21 +1,10 @@ +const colors = require('ansi-colors'); + const MAX_LINE_WIDTH = process.stdout.columns || 200; const MIN_OFFSET = 20; const reAstral = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; const ansiRegex = /\x1B\[([0-9]{1,3}(;[0-9]{1,3})*)?[m|K]/g; const byName = (a, b) => a.name > b.name || -(a.name < b.name); -let chalk; - -function initChalk() { - if (!chalk) { - const ChalkInstance = require('chalk').Instance; - - chalk = new ChalkInstance({ - level: Number(process.stdout.isTTY) - }); - } - - return chalk; -} function stringLength(str) { return str @@ -82,7 +71,7 @@ function commandsHelp(command) { const lines = command.getCommands().sort(byName).map(({ name, meta, params }) => ({ description: meta.description, - name: chalk.green(name) + args(params, chalk.gray) + name: colors.green(name) + args(params, colors.gray) })); return [ @@ -104,8 +93,8 @@ function optionsHelp(command) { const lines = options.map(({ short, long, params, description }) => ({ description, name: [ - short ? chalk.yellow(short) + ', ' : shortPlaceholder, - chalk.yellow(long), + short ? colors.yellow(short) + ', ' : shortPlaceholder, + colors.yellow(long), args(params) ].join('') })); @@ -127,8 +116,6 @@ function optionsHelp(command) { * @api private */ module.exports = function getCommandHelp(command, commandPath) { - initChalk(); - commandPath = Array.isArray(commandPath) && commandPath.length ? commandPath.concat(command.name).join(' ') : command.name; @@ -136,10 +123,10 @@ module.exports = function getCommandHelp(command, commandPath) { return [ (command.meta.description ? command.meta.description + '\n\n' : '') + 'Usage:\n\n' + - ' ' + chalk.cyan(commandPath) + - args(command.params, chalk.magenta) + - (command.options.size !== 0 ? ' [' + chalk.yellow('options') + ']' : '') + - (command.commands.size !== 0 ? ' [' + chalk.green('command') + ']' : ''), + ' ' + colors.cyan(commandPath) + + args(command.params, colors.magenta) + + (command.options.size !== 0 ? ' [' + colors.yellow('options') + ']' : '') + + (command.commands.size !== 0 ? ' [' + colors.green('command') + ']' : ''), commandsHelp(command) + optionsHelp(command) ].join('\n'); diff --git a/package-lock.json b/package-lock.json index 627db4a..bad876f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "3.0.0-beta.1", "license": "MIT", "dependencies": { - "chalk": "^4.1.2" + "ansi-colors": "^4.1.1" }, "devDependencies": { "c8": "^7.10.0", @@ -114,7 +114,8 @@ "node_modules/@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.3", @@ -169,7 +170,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, "engines": { "node": ">=6" } @@ -187,6 +187,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.0.tgz", "integrity": "sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg==", + "dev": true, "dependencies": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" @@ -199,6 +200,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -209,7 +211,8 @@ "node_modules/ansi-styles/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/anymatch": { "version": "3.1.2", @@ -533,6 +536,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1837,6 +1841,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -1848,6 +1853,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -2087,7 +2093,8 @@ "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true }, "@types/istanbul-lib-coverage": { "version": "2.0.3", @@ -2129,8 +2136,7 @@ "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" }, "ansi-regex": { "version": "5.0.1", @@ -2142,6 +2148,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.0.tgz", "integrity": "sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg==", + "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" @@ -2151,6 +2158,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -2158,7 +2166,8 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true } } }, @@ -2399,6 +2408,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3363,6 +3373,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, "requires": { "has-flag": "^4.0.0" }, @@ -3370,7 +3381,8 @@ "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true } } }, diff --git a/package.json b/package.json index 1128e7a..ab07b7b 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "node": ">=8.0.0" }, "dependencies": { - "chalk": "^4.1.2" + "ansi-colors": "^4.1.1" }, "devDependencies": { "c8": "^7.10.0",