32 lines
971 B
JavaScript
32 lines
971 B
JavaScript
var colorspace = require('colorspace');
|
|
|
|
/**
|
|
* Prefix the messages with a colored namespace.
|
|
*
|
|
* @param {Array} messages The messages array that is getting written.
|
|
* @param {Object} options Options for diagnostics.
|
|
* @returns {Array} Altered messages array.
|
|
* @public
|
|
*/
|
|
module.exports = function colorNamespace(args, options) {
|
|
var namespace = options.namespace;
|
|
|
|
if (options.colors === false) {
|
|
args[0] = namespace +': '+ args[0];
|
|
return args;
|
|
}
|
|
|
|
var color = colorspace(namespace);
|
|
|
|
//
|
|
// The console API supports a special %c formatter in browsers. This is used
|
|
// to style console messages with any CSS styling, in our case we want to
|
|
// use colorize the namespace for clarity. As these are formatters, and
|
|
// we need to inject our CSS string as second messages argument so it
|
|
// gets picked up correctly.
|
|
//
|
|
args[0] = '%c'+ namespace +':%c '+ args[0];
|
|
args.splice(1, 0, 'color:'+ color, 'color:inherit');
|
|
|
|
return args;
|
|
};
|