diff --git a/lib/utils/log.js b/lib/utils/log.js index 65800872..8697ca98 100644 --- a/lib/utils/log.js +++ b/lib/utils/log.js @@ -1,9 +1,12 @@ -var colour = require('./colour'); -var bus = require('./bus'); -var required = false; -var useColours = true; +'use strict'; -var coding = { +const colour = require('./colour'); +const bus = require('./bus'); + +let required = false; +let useColours = true; + +const coding = { log: 'black', info: 'yellow', status: 'green', @@ -13,7 +16,7 @@ var coding = { }; function log(type, text) { - var msg = '[nodemon] ' + (text || ''); + let msg = `[nodemon] ${text || ''}`; if (useColours) { msg = colour(coding[type], msg); @@ -22,11 +25,10 @@ function log(type, text) { // always push the message through our bus, using nextTick // to help testing and get _out of_ promises. process.nextTick(() => { - bus.emit('log', { type: type, message: text, colour: msg }); + bus.emit('log', { type, message: text, colour: msg }); }); // but if we're running on the command line, also echo out - // question: should we actually just consume our own events? if (!required) { if (type === 'error') { console.error(msg); @@ -36,47 +38,54 @@ function log(type, text) { } } -var Logger = function (r) { - if (!(this instanceof Logger)) { - return new Logger(r); +class Logger { + constructor(r) { + this.required(r); } - this.required(r); - return this; -}; -Object.keys(coding).forEach(function (type) { - Logger.prototype[type] = log.bind(null, type); -}); + required(val) { + required = val; + } -// detail is for messages that are turned on during debug -Logger.prototype.detail = function (msg) { - if (this.debug) { - log('detail', msg); + _log(type, msg) { + if (required) { + bus.emit('log', { type, message: msg || '', colour: msg || '' }); + } else if (type === 'error') { + console.error(msg); + } else { + console.log(msg || ''); + } } -}; -Logger.prototype.required = function (val) { - required = val; -}; + // detail is for messages that are turned on during debug + detail(msg) { + if (this.debug) { + log('detail', msg); + } + } -Logger.prototype.debug = false; -Logger.prototype._log = function (type, msg) { - if (required) { - bus.emit('log', { type: type, message: msg || '', colour: msg || '' }); - } else if (type === 'error') { - console.error(msg); - } else { - console.log(msg || ''); + get useColours() { + return useColours; } -}; -Object.defineProperty(Logger.prototype, 'useColours', { - set: function (val) { + set useColours(val) { useColours = val; - }, - get: function () { - return useColours; - }, + } +} + +// Add dynamic methods for each coding type +Object.keys(coding).forEach((type) => { + Logger.prototype[type] = log.bind(null, type); }); -module.exports = Logger; +Logger.prototype.debug = false; + +module.exports = function (r) { + if (!(this instanceof Logger)) { + return new Logger(r); + } + this.required(r); + return this; +}; + +module.exports.Logger = Logger;