You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
690 B
26 lines
690 B
/** |
|
* Encodes a string in a colour: red, yellow or green |
|
* @param {String} c colour to highlight in |
|
* @param {String} str the string to encode |
|
* @return {String} coloured string for terminal printing |
|
*/ |
|
function colour(c, str) { |
|
return (colour[c] || colour.black) + str + colour.black; |
|
} |
|
|
|
function strip(str) { |
|
re.lastIndex = 0; // reset position |
|
return str.replace(re, ''); |
|
} |
|
|
|
colour.red = '\x1B[31m'; |
|
colour.yellow = '\x1B[33m'; |
|
colour.green = '\x1B[32m'; |
|
colour.black = '\x1B[39m'; |
|
|
|
var reStr = Object.keys(colour).map(key => colour[key]).join('|'); |
|
var re = new RegExp(('(' + reStr + ')').replace(/\[/g, '\\['), 'g'); |
|
|
|
colour.strip = strip; |
|
|
|
module.exports = colour;
|
|
|