add RGB color support
This commit is contained in:
parent
8989561232
commit
d9cd275b4e
1 changed files with 40 additions and 0 deletions
40
index.js
40
index.js
|
|
@ -6,6 +6,9 @@ var supportsColor = require('supports-color');
|
||||||
var defineProps = Object.defineProperties;
|
var defineProps = Object.defineProperties;
|
||||||
var isSimpleWindowsTerm = process.platform === 'win32' && !/^xterm/i.test(process.env.TERM);
|
var isSimpleWindowsTerm = process.platform === 'win32' && !/^xterm/i.test(process.env.TERM);
|
||||||
|
|
||||||
|
var levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m'];
|
||||||
|
var skipModels = ['gray'];
|
||||||
|
|
||||||
function Chalk(options) {
|
function Chalk(options) {
|
||||||
// detect level if not set manually
|
// detect level if not set manually
|
||||||
this.level = !options || options.level === undefined ? supportsColor.level : options.level;
|
this.level = !options || options.level === undefined ? supportsColor.level : options.level;
|
||||||
|
|
@ -29,6 +32,43 @@ Object.keys(ansiStyles).forEach(function (key) {
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
ansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), 'g');
|
||||||
|
Object.keys(ansiStyles.color.ansi).forEach(function (model) {
|
||||||
|
if (skipModels.indexOf(model) !== -1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
styles[model] = {
|
||||||
|
get: function () {
|
||||||
|
var level = this.level;
|
||||||
|
return function () {
|
||||||
|
var open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments);
|
||||||
|
var codes = {open: open, close: ansiStyles.color.close, closeRe: ansiStyles.color.closeRe};
|
||||||
|
return build.call(this, this._styles ? this._styles.concat(codes) : [codes], model);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles.bgColor.close), 'g');
|
||||||
|
Object.keys(ansiStyles.bgColor.ansi).forEach(function (model) {
|
||||||
|
if (skipModels.indexOf(model) !== -1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var bgModel = 'bg' + model.charAt(0).toUpperCase() + model.substring(1);
|
||||||
|
styles[bgModel] = {
|
||||||
|
get: function () {
|
||||||
|
var level = this.level;
|
||||||
|
return function () {
|
||||||
|
var open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments);
|
||||||
|
var codes = {open: open, close: ansiStyles.bgColor.close, closeRe: ansiStyles.bgColor.closeRe};
|
||||||
|
return build.call(this, this._styles ? this._styles.concat(codes) : [codes], model);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
// eslint-disable-next-line func-names
|
// eslint-disable-next-line func-names
|
||||||
var proto = defineProps(function chalk() {}, styles);
|
var proto = defineProps(function chalk() {}, styles);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue