UNPKG

@webex/webex-core

Version:

Plugin handling for Cisco Webex

122 lines (118 loc) • 5.66 kB
"use strict"; 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