webpack-isomorphic-tools
Version:
Transforms CSS-alike text into a React style JSON object
139 lines (105 loc) • 3.92 kB
JavaScript
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
;