Merge branch 'master' into named-exports

This commit is contained in:
Sindre Sorhus 2017-10-24 10:04:39 +07:00 committed by GitHub
commit 56f1e267d8
5 changed files with 41 additions and 2 deletions

View file

@ -63,6 +63,13 @@ for (const key of Object.keys(ansiStyles)) {
};
}
styles.visible = {
get() {
this._emptyIfNotVisible = true;
return build.call(this, this._styles ? this._styles : [], 'visible');
}
};
ansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), 'g');
for (const model of Object.keys(ansiStyles.color.ansi)) {
if (skipModels.has(model)) {
@ -116,6 +123,7 @@ function build(_styles, key) {
};
builder._styles = _styles;
builder._emptyIfNotVisible = this._emptyIfNotVisible;
const self = this;
@ -167,7 +175,7 @@ function applyStyle() {
}
if (!this.enabled || this.level <= 0 || !str) {
return str;
return this._emptyIfNotVisible ? '' : str;
}
// Turns out that on Windows dimmed gray text becomes invisible in cmd.exe,

View file

@ -9,7 +9,7 @@
> Terminal string styling done right
[![Build Status](https://travis-ci.org/chalk/chalk.svg?branch=master)](https://travis-ci.org/chalk/chalk) [![Coverage Status](https://coveralls.io/repos/github/chalk/chalk/badge.svg?branch=master)](https://coveralls.io/github/chalk/chalk?branch=master) [![](https://img.shields.io/badge/unicorn-approved-ff69b4.svg)](https://www.youtube.com/watch?v=9auOCbH5Ns4) [![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/sindresorhus/xo)
[![Build Status](https://travis-ci.org/chalk/chalk.svg?branch=master)](https://travis-ci.org/chalk/chalk) [![Coverage Status](https://coveralls.io/repos/github/chalk/chalk/badge.svg?branch=master)](https://coveralls.io/github/chalk/chalk?branch=master) [![](https://img.shields.io/badge/unicorn-approved-ff69b4.svg)](https://www.youtube.com/watch?v=9auOCbH5Ns4) [![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/sindresorhus/xo) [![Mentioned in Awesome Node.js](https://awesome.re/mentioned-badge.svg)](https://github.com/sindresorhus/awesome-nodejs)
### [See what's new in Chalk 2](https://github.com/chalk/chalk/releases/tag/v2.0.0)
@ -170,6 +170,7 @@ Explicit 256/Truecolor mode can be enabled using the `--color=256` and `--color=
- `inverse`
- `hidden`
- `strikethrough` *(Not widely supported)*
- `visible` (Text is emitted only if enabled)
### Colors

24
test/visible.js Normal file
View file

@ -0,0 +1,24 @@
import test from 'ava';
// Spoof supports-color
require('./_supports-color')(__dirname);
const m = require('..');
test('visible: normal output when enabled', t => {
const ctx = new m.constructor({level: 3, enabled: true});
t.is(ctx.visible.red('foo'), '\u001B[31mfoo\u001B[39m');
t.is(ctx.red.visible('foo'), '\u001B[31mfoo\u001B[39m');
});
test('visible: no output when disabled', t => {
const ctx = new m.constructor({level: 3, enabled: false});
t.is(ctx.red.visible('foo'), '');
t.is(ctx.visible.red('foo'), '');
});
test('visible: no output when level is too low', t => {
const ctx = new m.constructor({level: 0, enabled: true});
t.is(ctx.visible.red('foo'), '');
t.is(ctx.red.visible('foo'), '');
});

2
types/index.d.ts vendored
View file

@ -53,6 +53,8 @@ export interface Chalk {
readonly hidden: this;
readonly strikethrough: this;
readonly visible: this;
readonly black: this;
readonly red: this;
readonly green: this;

View file

@ -50,3 +50,7 @@ chalk.rgb(1, 14, 9).bgBlue('foo');
chalk.hsl(1, 14, 9).bgBlue('foo');
chalk.hsv(1, 14, 9).bgBlue('foo');
chalk.hwb(1, 14, 9).bgBlue('foo');
chalk.visible('foo');
chalk.red.visible('foo');
chalk.visible.red('foo');