Created
May 21, 2019 13:13
-
-
Save Paratron/00c4e170cd83eb15a0ad69b316041f88 to your computer and use it in GitHub Desktop.
This tiny wrapper around chalk enables easy coloring of log messages.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Chalk powered color log | |
* ======================= | |
* This module is a wrapper around the chalk package to provide | |
* simpler log message formatting. | |
* To switch a color inside your log message, simply use ´X where | |
* X is one of the color names in the chalkMap below. | |
* | |
* Example: | |
* | |
* console.log('Roses are ' + chalk.red('red') + ', violets are ' + chalk.blue('blue') + '.'); | |
* | |
* vs: | |
* | |
* log('Roses are `rred`w, violets are `bblue`w.'); | |
* | |
*/ | |
const chalk = require('chalk'); | |
const chalkMap = { | |
'r': 'red', | |
'g': 'green', | |
'y': 'yellow', | |
'b': 'blue', | |
'm': 'magenta', | |
'c': 'cyan', | |
'w': 'white', | |
'#': 'gray', | |
'.': 'black', | |
'R': 'bgRed', | |
'G': 'bgGreen', | |
'Y': 'bgYellow', | |
'B': 'bgBlue', | |
'M': 'bgMagenta', | |
'C': 'bgCyan', | |
'W': 'bgWhite' | |
}; | |
const log = (...messages) => { | |
const finalMessages = messages.map(m => { | |
if (typeof m !== 'string') { | |
return m; | |
} | |
const chunks = `${m.substr(0, 1) !== '´' ? '´w' : ''}${m}`.split('´'); | |
chunks.shift(); | |
return chunks.map(c => { | |
const colorCode = c.substr(0, 1); | |
const functionName = chalkMap[colorCode]; | |
return chalk[functionName](c.substr(1)); | |
}).join(''); | |
}); | |
console.log.apply(this, finalMessages); | |
}; | |
module.exports = log; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment