UNPKG

winston-console-formatter

Version:
158 lines (123 loc) 3.5 kB
'use strict'; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var utils = require('./utils'); var Message = function () { function Message() { _classCallCheck(this, Message); this._colorizer = null; this._message = 'No message'; this._timestamp = null; this._level = 'info'; this._label = null; this._from = null; } _createClass(Message, [{ key: 'setColorizer', /** * * @param {Colorizer} colorizer */ value: function setColorizer(colorizer) { this._colorizer = colorizer; return this; } }, { key: 'colorify', value: function colorify(string) { var color = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; try { var clr = color || this._colorizer.colorByLevel(this._level); return clr(string); } catch (e) { return string; } } /** * @param {string|undefined} message * @return {Message} */ }, { key: 'setMessage', value: function setMessage(message) { if (message) { this._message = message; } return this; } /** * @param {boolean|function} timestamp * @return {Message} */ }, { key: 'setTime', value: function setTime(timestamp) { if (timestamp === true) { this._timestamp = utils.getISOTime(); } else if (typeof timestamp === 'function') { this._timestamp = timestamp(); } return this; } /** * @param {string|undefined} label * @return {Message} */ }, { key: 'setLabel', value: function setLabel(label) { if (label) { this._label = label; } return this; } /** * @param {string|undefined} level * @return {Message} */ }, { key: 'setLevel', value: function setLevel(level) { if (level) { this._level = level.toLowerCase(); } return this; } /** * @param {string|undefined} from * @return {Message} */ }, { key: 'setFrom', value: function setFrom(from) { if (from) { this._from = from; } return this; } }, { key: 'toString', value: function toString() { var before = ''; var from = ''; var after = ''; if (this._timestamp) { before += `[${this._timestamp}] `; } if (this._label) { before += `${this._label} `; } before += `[${this._level.toUpperCase()}] `; before = this.colorify(before); if (this._from) { from += `${this._from} `; after += '- '; } after += `${this._message}`; after = this.colorify(after); return before + from + after; } }]); return Message; }(); module.exports = Message;