@webex/webex-core
Version:
Plugin handling for Cisco Webex
122 lines (118 loc) • 5.66 kB
JavaScript
;
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
_Object$defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/typeof"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
var _util = _interopRequireDefault(require("util"));
var _lodash = require("lodash");
var _httpCore = require("@webex/http-core");
var _common = require("@webex/common");
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /*!
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
*/
/**
* @class
*/
var ResponseLoggerInterceptor = exports.default = /*#__PURE__*/function (_Interceptor) {
(0, _inherits2.default)(ResponseLoggerInterceptor, _Interceptor);
var _super = _createSuper(ResponseLoggerInterceptor);
function ResponseLoggerInterceptor() {
(0, _classCallCheck2.default)(this, ResponseLoggerInterceptor);
return _super.apply(this, arguments);
}
(0, _createClass2.default)(ResponseLoggerInterceptor, [{
key: "onResponse",
value:
/**
* @see Interceptor#onRequest
* @param {Object} options
* @param {HttpResponse} response
* @returns {Object}
*/
function onResponse(options, response) {
var now = new Date();
this.printResponseHeader(options, response);
var logger = (0, _lodash.get)(this, 'webex.logger', console);
if (process.env.ENABLE_VERBOSE_NETWORK_LOGGING) {
logger.info('timestamp (end): ', now.getTime(), now.toISOString());
if (typeof response.body === 'string' || (0, _common.isBuffer)(response.body)) {
logger.info('Response: ', 'Not printed, it`s probably a file');
} else if ((0, _typeof2.default)(response.body) === 'object') {
try {
logger.info('Response: ', _util.default.inspect((0, _lodash.omit)(response.body, 'features'), {
depth: null
}));
} catch (err) {
logger.info('Response: ', '[Not Serializable]', err);
}
}
}
logger.info('\\**********************************************************************/');
return response;
}
/**
* @see Interceptor#onRequest
* @param {Object} options
* @param {Object} reason
* @returns {Object}
*/
}, {
key: "onResponseError",
value: function onResponseError(options, reason) {
var now = new Date();
this.printResponseHeader(options, reason);
var logger = (0, _lodash.get)(this, 'webex.logger', console);
if (process.env.ENABLE_VERBOSE_NETWORK_LOGGING) {
logger.info('timestamp (end): ', now.getTime(), now.toISOString());
try {
logger.error('Response: ', _util.default.inspect(reason.body, {
depth: null
}));
} catch (err) {
logger.error('Response: ', reason.body);
}
}
logger.info('\\**********************************************************************/');
return _promise.default.reject(reason);
}
/**
* Prints the basic header
* @param {Object} options
* @param {HttpResponse|WebexHttpError} response
* @returns {undefined}
*/
}, {
key: "printResponseHeader",
value: function printResponseHeader(options, response) {
var logger = (0, _lodash.get)(this, 'webex.logger', console);
logger.info('Status Code:', response.statusCode);
logger.info('WEBEX_TRACKINGID:', (0, _lodash.get)(options, 'headers.trackingid') || (0, _lodash.get)(response, 'headers.trackingid'));
logger.info('Network duration:', options.$timings.networkEnd - options.$timings.networkStart);
logger.info('Processing duration:', options.$timings.requestEnd - options.$timings.requestStart);
}
}], [{
key: "create",
value:
/**
* @returns {ResponseLoggerInterceptor}
*/
function create() {
return new ResponseLoggerInterceptor({
webex: this
});
}
}]);
return ResponseLoggerInterceptor;
}(_httpCore.Interceptor);
//# sourceMappingURL=response-logger.js.map