UNPKG

webpack-isomorphic-tools

Version:
139 lines (105 loc) 3.92 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _stringify = require('babel-runtime/core-js/json/stringify'); var _stringify2 = _interopRequireDefault(_stringify); var _typeof2 = require('babel-runtime/helpers/typeof'); var _typeof3 = _interopRequireDefault(_typeof2); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _safe = require('colors/safe'); var _safe2 = _interopRequireDefault(_safe); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Log = function () { function Log(preamble, options) { (0, _classCallCheck3.default)(this, Log); this.options = options; // is prepended to console output this.preamble = '[' + preamble + ']'; } // outputs info to the log (0, _createClass3.default)(Log, [{ key: 'info', value: function info() { for (var _len = arguments.length, parameters = Array(_len), _key = 0; _key < _len; _key++) { parameters[_key] = arguments[_key]; } console.log(this.preamble, generate_log_message(parameters)); } // outputs debugging info to the log }, { key: 'debug', value: function debug() { if (this.options.debug) { for (var _len2 = arguments.length, parameters = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { parameters[_key2] = arguments[_key2]; } console.log(this.preamble, '[debug]', generate_log_message(parameters)); } } // outputs minor debugging info to the log }, { key: 'trace', value: function trace() { if (this.options.debug) { for (var _len3 = arguments.length, parameters = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { parameters[_key3] = arguments[_key3]; } console.log(_safe2.default.gray(this.preamble, '[trace]', generate_log_message(parameters))); } } // outputs a warning to the log }, { key: 'warning', value: function warning() { for (var _len4 = arguments.length, parameters = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { parameters[_key4] = arguments[_key4]; } console.log(_safe2.default.yellow(this.preamble, '[warning]', generate_log_message(parameters))); } // outputs an error to the log }, { key: 'error', value: function error() { for (var _len5 = arguments.length, parameters = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { parameters[_key5] = arguments[_key5]; } console.log(_safe2.default.red(this.preamble, '[error]', generate_log_message(parameters))); } }]); return Log; }(); // transforms arguments to text exports.default = Log; function generate_log_message(parameters) { // преобразовать все аргументы функции в текстовый вид return parameters.map(function (argument) { // преобразование объектов в строку if ((typeof argument === 'undefined' ? 'undefined' : (0, _typeof3.default)(argument)) === 'object') { // для ошибок - распечатывать стек вызовов if (argument instanceof Error) { return argument.stack; } // для остальных объектов вызывать JSON.stringify() return (0, _stringify2.default)(argument, null, 2); } // если undefined if (typeof argument === 'undefined') { return '[undefined]'; } // прочие переменные - просто .toString() return argument.toString(); }) // собрать всё это в одну строку через пробел .reduce(function (message, argument) { if (message.length > 0) { message += ' '; } return message + argument; }, ''); } module.exports = exports['default']; //# sourceMappingURL=log.js.map