2016-01-22 19:16:53 -06:00
|
|
|
'use strict';
|
|
|
|
|
2016-02-13 16:02:44 -06:00
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
|
|
value: true
|
|
|
|
});
|
|
|
|
|
2016-01-22 19:16:53 -06:00
|
|
|
var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
|
|
|
|
|
|
|
|
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
|
|
|
|
|
|
|
|
var _getIterator2 = require('babel-runtime/core-js/get-iterator');
|
|
|
|
|
|
|
|
var _getIterator3 = _interopRequireDefault(_getIterator2);
|
|
|
|
|
|
|
|
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
|
|
|
|
|
|
|
|
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
|
|
|
|
|
|
|
|
var _createClass2 = require('babel-runtime/helpers/createClass');
|
|
|
|
|
|
|
|
var _createClass3 = _interopRequireDefault(_createClass2);
|
|
|
|
|
|
|
|
var _underscore = require('underscore');
|
|
|
|
|
|
|
|
var _underscore2 = _interopRequireDefault(_underscore);
|
|
|
|
|
|
|
|
var _chalk = require('chalk');
|
|
|
|
|
|
|
|
var _chalk2 = _interopRequireDefault(_chalk);
|
|
|
|
|
|
|
|
var _inspect = require('../libs/inspect');
|
|
|
|
|
|
|
|
var _inspect2 = _interopRequireDefault(_inspect);
|
|
|
|
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
|
2016-01-29 01:31:33 -06:00
|
|
|
function inspect(x, ctx) {
|
|
|
|
return typeof x === 'string' ? x : (0, _inspect2.default)(x, ctx);
|
|
|
|
}
|
|
|
|
|
2016-01-22 19:16:53 -06:00
|
|
|
var Inspector = function () {
|
|
|
|
function Inspector() {
|
2016-01-29 01:31:33 -06:00
|
|
|
var inspectOpts = arguments.length <= 0 || arguments[0] === undefined ? { colors: true, showHidden: false,
|
|
|
|
depth: 5, pre: true, args: true, metrics: true, tags: true } : arguments[0];
|
2016-01-22 19:16:53 -06:00
|
|
|
(0, _classCallCheck3.default)(this, Inspector);
|
|
|
|
|
|
|
|
this.inspectOpts = inspectOpts;
|
|
|
|
}
|
|
|
|
|
|
|
|
(0, _createClass3.default)(Inspector, [{
|
|
|
|
key: 'format',
|
|
|
|
value: function format(f) {
|
|
|
|
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
|
|
args[_key - 1] = arguments[_key];
|
|
|
|
}
|
|
|
|
|
|
|
|
var ctx = this.inspectOpts;
|
|
|
|
|
|
|
|
if (typeof f !== 'string') {
|
|
|
|
var objects = [];
|
|
|
|
var _iteratorNormalCompletion = true;
|
|
|
|
var _didIteratorError = false;
|
|
|
|
var _iteratorError = undefined;
|
|
|
|
|
|
|
|
try {
|
|
|
|
for (var _iterator = (0, _getIterator3.default)([f].concat(args)), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
|
|
var arg = _step.value;
|
|
|
|
|
2016-01-29 01:31:33 -06:00
|
|
|
objects.push(inspect(arg, ctx));
|
2016-01-22 19:16:53 -06:00
|
|
|
}
|
|
|
|
} catch (err) {
|
|
|
|
_didIteratorError = true;
|
|
|
|
_iteratorError = err;
|
|
|
|
} finally {
|
|
|
|
try {
|
|
|
|
if (!_iteratorNormalCompletion && _iterator.return) {
|
|
|
|
_iterator.return();
|
|
|
|
}
|
|
|
|
} finally {
|
|
|
|
if (_didIteratorError) {
|
|
|
|
throw _iteratorError;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return objects.join(' ');
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!args.length) {
|
|
|
|
return f;
|
|
|
|
}
|
|
|
|
|
|
|
|
var i = 0;
|
|
|
|
var len = args.length;
|
|
|
|
var str = String(f).replace(/%[sdj%]/g, function (x) {
|
|
|
|
if (x === '%%') return '%';
|
|
|
|
if (i >= len) return x;
|
|
|
|
switch (x) {
|
|
|
|
default:
|
|
|
|
case '%s':
|
|
|
|
case '%d':
|
|
|
|
case '%j':
|
2016-01-29 01:31:33 -06:00
|
|
|
return inspect(args[i++], ctx);
|
2016-01-22 19:16:53 -06:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
for (var x = args[i]; i < len; x = args[++i]) {
|
2016-01-29 01:31:33 -06:00
|
|
|
str += ' ' + inspect(x, ctx);
|
2016-01-22 19:16:53 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
return str;
|
|
|
|
}
|
|
|
|
}, {
|
|
|
|
key: 'inspectArguments',
|
|
|
|
value: function inspectArguments(data) {
|
|
|
|
return this.format.apply(this, (0, _toConsumableArray3.default)(data.args));
|
|
|
|
}
|
|
|
|
}, {
|
|
|
|
key: 'inspectTags',
|
|
|
|
value: function inspectTags(data) {
|
|
|
|
return (data.persistent['tags'] || []).map(function (tag) {
|
2016-01-24 08:00:29 -06:00
|
|
|
return _chalk2.default.cyan('' + String(tag).toUpperCase());
|
2016-01-22 19:16:53 -06:00
|
|
|
}).concat((data.transient['tags'] || []).map(function (tag) {
|
2016-01-24 08:00:29 -06:00
|
|
|
return _chalk2.default.magenta('' + String(tag).toUpperCase());
|
2016-01-22 19:16:53 -06:00
|
|
|
})).join(' ');
|
|
|
|
}
|
|
|
|
}, {
|
|
|
|
key: 'inspectPre',
|
|
|
|
value: function inspectPre(data) {
|
|
|
|
return [_chalk2.default.yellow.bgBlack(data.persistent['app'] + '-' + data.persistent['id']), _chalk2.default.black.bgYellow(' ' + data.expose.toUpperCase() + ' ')].join(' ');
|
|
|
|
}
|
|
|
|
}, {
|
|
|
|
key: 'inspectMetrics',
|
|
|
|
value: function inspectMetrics(data) {
|
|
|
|
return _underscore2.default.map(data.transient['metrics'], function (value, key) {
|
|
|
|
return _chalk2.default.cyan(key + '(' + (typeof value === 'number' ? value.toFixed(3) : value) + ')');
|
|
|
|
}).join(' ');
|
|
|
|
}
|
|
|
|
}, {
|
|
|
|
key: 'inspectCallSite',
|
|
|
|
value: function inspectCallSite(data) {
|
|
|
|
var site = data.transient['callsite'];
|
|
|
|
if (typeof site === 'string') return _chalk2.default.gray.dim(site);
|
|
|
|
|
|
|
|
var _ref = site || { file: '', line: -1 };
|
|
|
|
|
|
|
|
var file = _ref.file;
|
|
|
|
var line = _ref.line;
|
|
|
|
|
|
|
|
return _chalk2.default.gray.dim(file.replace(/^.*[\\\/]/, '') + ':' + line);
|
|
|
|
}
|
|
|
|
}, {
|
|
|
|
key: 'through',
|
|
|
|
value: function through(data, callback) {
|
|
|
|
if (data.expose === 'metric') {
|
|
|
|
data.args = '';
|
|
|
|
}
|
|
|
|
|
2016-01-29 01:31:33 -06:00
|
|
|
var pre = this.inspectOpts.pre ? this.inspectPre(data) + ' ' : '';
|
|
|
|
var tags = this.inspectOpts.tags ? this.inspectTags(data) : '';
|
|
|
|
var metrics = this.inspectOpts.metrics ? this.inspectMetrics(data) : '';
|
|
|
|
var site = this.inspectOpts.callsite ? this.inspectCallSite(data) : '';
|
|
|
|
var pretty = this.inspectOpts.args ? this.inspectArguments(data) : '';
|
2016-01-22 19:16:53 -06:00
|
|
|
var inspected = pretty.split('\n').map(function (line) {
|
|
|
|
return pre + ' ' + [tags, metrics, line, site].join(' ');
|
|
|
|
});
|
|
|
|
|
|
|
|
data.inspected = inspected;
|
|
|
|
|
|
|
|
callback(null, data);
|
|
|
|
}
|
|
|
|
}]);
|
|
|
|
return Inspector;
|
|
|
|
}();
|
|
|
|
|
|
|
|
exports.default = Inspector;
|