UNPKG

@webex/http-core

Version:

Core HTTP library for the Cisco Webex

123 lines (115 loc) 3.76 kB
"use strict"; 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 _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys")); var _defineProperty = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/define-property")); var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify")); var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass")); var _lodash = require("lodash"); /*! * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file. */ /** * @class */ var Interceptor = exports.default = /*#__PURE__*/function () { /** * @constructor * @param {Object} attrs * @returns {UrlInterceptor} */ function Interceptor(attrs) { var _this = this; (0, _classCallCheck2.default)(this, Interceptor); if (attrs) { (0, _keys.default)(attrs).forEach(function (key) { var value = attrs[key]; (0, _defineProperty.default)(_this, key, { enumerable: true, value: value }); }); } } /** * Logs the options of a request. This should be utilized * during the intercepting process, but can be used at any * time otherwise. * @param {object} options * @returns {void} */ (0, _createClass2.default)(Interceptor, [{ key: "logOptions", value: function logOptions() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var logger = (0, _lodash.get)(this, 'webex.logger', console); if (!process.env.ENABLE_VERBOSE_NETWORK_LOGGING || !logger) { return; } // prepend a header for the interceptor logger.info('/***** Interceptor ****************************************************\\'); logger.info("".concat(this.constructor.name, " - ").concat((0, _stringify.default)(options, null, 2))); } /** * @abstract * @returns {Interceptor} */ }, { key: "onRequest", value: /** * Transform request options before sending them * @param {Object} options * @returns {Promise<Object>} */ function onRequest(options) { return _promise.default.resolve(options); } /** * Handle request failures * @param {Object} options * @param {Error} reason * @returns {RejectedPromise<Error>} */ }, { key: "onRequestError", value: function onRequestError(options, reason) { return _promise.default.reject(reason); } /** * Transform response before returning it * @param {Object} options * @param {HttpResponse} response * @returns {Promise<HttpResponse>} */ }, { key: "onResponse", value: function onResponse(options, response) { return _promise.default.resolve(response); } /** * Handle response errors * @param {Object} options * @param {WebexHttpError} reason * @returns {Promise<WebexHttpError>} */ }, { key: "onResponseError", value: function onResponseError(options, reason) { return _promise.default.reject(reason); } }], [{ key: "create", value: function create() { throw new Error('`Interceptor.create()` must be defined'); } }]); return Interceptor; }(); //# sourceMappingURL=interceptor.js.map