diff --git a/index.d.ts b/index.d.ts index 9ccc725..455ba9a 100644 --- a/index.d.ts +++ b/index.d.ts @@ -261,8 +261,17 @@ declare namespace chalk { readonly magenta: Chalk; readonly cyan: Chalk; readonly white: Chalk; + + /* + Alias for `blackBright`. + */ readonly gray: Chalk; + + /* + Alias for `blackBright`. + */ readonly grey: Chalk; + readonly blackBright: Chalk; readonly redBright: Chalk; readonly greenBright: Chalk; @@ -280,6 +289,17 @@ declare namespace chalk { readonly bgMagenta: Chalk; readonly bgCyan: Chalk; readonly bgWhite: Chalk; + + /* + Alias for `bgBlackBright`. + */ + readonly bgGray: Chalk; + + /* + Alias for `bgBlackBright`. + */ + readonly bgGrey: Chalk; + readonly bgBlackBright: Chalk; readonly bgRedBright: Chalk; readonly bgGreenBright: Chalk; diff --git a/package.json b/package.json index 764bcbf..b6cbdd4 100644 --- a/package.json +++ b/package.json @@ -40,18 +40,18 @@ "text" ], "dependencies": { - "ansi-styles": "^3.2.1", - "supports-color": "^6.1.0" + "ansi-styles": "^4.0.0", + "supports-color": "^7.0.0" }, "devDependencies": { - "ava": "^1.4.1", - "coveralls": "^3.0.3", - "execa": "^1.0.0", - "import-fresh": "^3.0.0", + "ava": "^2.2.0", + "coveralls": "^3.0.5", + "execa": "^2.0.3", + "import-fresh": "^3.1.0", "matcha": "^0.7.0", - "nyc": "^14.0.0", + "nyc": "^14.1.1", "resolve-from": "^5.0.0", - "tsd": "^0.7.2", + "tsd": "^0.7.4", "xo": "^0.24.0" } } diff --git a/readme.md b/readme.md index d99b712..ede4ee1 100644 --- a/readme.md +++ b/readme.md @@ -13,6 +13,8 @@ +**This readme reflects the next major version that is currently in development. You probably want [the v2 readme](https://www.npmjs.com/package/chalk).** + ## Highlights @@ -180,7 +182,7 @@ Explicit 256/Truecolor mode can be enabled using the `--color=256` and `--color= - `magenta` - `cyan` - `white` -- `gray` ("bright black") +- `blackBright` (alias: `gray`, `grey`) - `redBright` - `greenBright` - `yellowBright` @@ -199,7 +201,7 @@ Explicit 256/Truecolor mode can be enabled using the `--color=256` and `--color= - `bgMagenta` - `bgCyan` - `bgWhite` -- `bgBlackBright` +- `bgBlackBright` (alias: `bgGray`, `bgGrey`) - `bgRedBright` - `bgGreenBright` - `bgYellowBright` diff --git a/source/index.js b/source/index.js index 0519720..e8d47c2 100644 --- a/source/index.js +++ b/source/index.js @@ -193,10 +193,9 @@ const applyStyle = (self, string) => { } } - // We can move both next actions out of loop, because remaining actions in loop won't have any/visible effect on parts we add here - // Close the styling before a linebreak and reopen - // after next line to fix a bleed issue on macOS - // https://github.com/chalk/chalk/pull/92 + // We can move both next actions out of loop, because remaining actions in loop won't have + // any/visible effect on parts we add here. Close the styling before a linebreak and reopen + // after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92 const lfIndex = string.indexOf('\n'); if (lfIndex !== -1) { string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex); diff --git a/source/util.js b/source/util.js index aaf3d79..d617156 100644 --- a/source/util.js +++ b/source/util.js @@ -6,31 +6,31 @@ const stringReplaceAll = (string, substring, replacer) => { return string; } - const subLen = substring.length; - let end = 0; - let res = ''; + const substringLength = substring.length; + let endIndex = 0; + let returnValue = ''; do { - res += string.substr(end, index - end) + replacer; - end = index + subLen; - index = string.indexOf(substring, end); + returnValue += string.substr(endIndex, index - endIndex) + replacer; + endIndex = index + substringLength; + index = string.indexOf(substring, endIndex); } while (index !== -1); - res += string.substr(end); - return res; + returnValue += string.substr(endIndex); + return returnValue; }; const stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => { - let end = 0; - let res = ''; + let endIndex = 0; + let returnValue = ''; do { const gotCR = string[index - 1] === '\r'; - res += string.substr(end, (gotCR ? index - 1 : index) - end) + prefix + (gotCR ? '\r\n' : '\n') + postfix; - end = index + 1; - index = string.indexOf('\n', end); + returnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? '\r\n' : '\n') + postfix; + endIndex = index + 1; + index = string.indexOf('\n', endIndex); } while (index !== -1); - res += string.substr(end); - return res; + returnValue += string.substr(endIndex); + return returnValue; }; module.exports = { diff --git a/test/chalk.js b/test/chalk.js index 92091cb..008a128 100644 --- a/test/chalk.js +++ b/test/chalk.js @@ -101,3 +101,7 @@ test('don\'t emit RGB codes if level is 0', t => { t.is(new chalk.Instance({level: 0}).hex('#FF0000')('hello'), 'hello'); t.is(new chalk.Instance({level: 0}).bgHex('#FF0000')('hello'), 'hello'); }); + +test('supports blackBright color', t => { + t.is(chalk.blackBright('foo'), '\u001B[90mfoo\u001B[39m'); +}); diff --git a/test/level.js b/test/level.js index 36df016..bb6df47 100644 --- a/test/level.js +++ b/test/level.js @@ -40,5 +40,6 @@ test('propagate enable/disable changes from child colors', t => { }); test('disable colors if they are not supported', async t => { - t.is(await execa.stdout('node', [path.join(__dirname, '_fixture')]), 'test'); + const {stdout} = await execa.node(path.join(__dirname, '_fixture')); + t.is(stdout, 'test'); });