UNPKG

twreporter-react

Version:

React-Redux site for The Reporter Foundation in Taiwan

111 lines (85 loc) 3.33 kB
'use strict'; var _classCallCheck = require('babel-runtime/helpers/class-call-check')['default']; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; exports.__esModule = true; var _colorsSafe = require('colors/safe'); var _colorsSafe2 = _interopRequireDefault(_colorsSafe); var Log = (function () { function Log(preamble, options) { _classCallCheck(this, Log); this.options = options; // is prepended to console output this.preamble = '[' + preamble + ']'; } // transforms arguments to text // outputs info to the log Log.prototype.info = 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 Log.prototype.debug = 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 Log.prototype.trace = 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(_colorsSafe2['default'].gray(this.preamble, '[trace]', generate_log_message(parameters))); } }; // outputs a warning to the log Log.prototype.warning = function warning() { for (var _len4 = arguments.length, parameters = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { parameters[_key4] = arguments[_key4]; } console.log(_colorsSafe2['default'].yellow(this.preamble, '[warning]', generate_log_message(parameters))); }; // outputs an error to the log Log.prototype.error = function error() { for (var _len5 = arguments.length, parameters = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { parameters[_key5] = arguments[_key5]; } console.log(_colorsSafe2['default'].red(this.preamble, '[error]', generate_log_message(parameters))); }; return Log; })(); exports['default'] = Log; function generate_log_message(parameters) { // преобразовать все аргументы функции в текстовый вид return parameters.map(function (argument) { // преобразование объектов в строку if (typeof argument === 'object') { // для ошибок - распечатывать стек вызовов if (argument instanceof Error) { return argument.stack; } // для остальных объектов вызывать JSON.stringify() return JSON.stringify(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