UNPKG

@webex/webex-core

Version:

Plugin handling for Cisco Webex

103 lines (99 loc) 4.55 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 _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized")); 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 _weakMap = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/weak-map")); var _common = require("@webex/common"); var _httpCore = require("@webex/http-core"); var _lodash = require("lodash"); 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. */ var strings = new _weakMap.default(); /** * Sets a 'user-agent' header on all requests if one is not present. * Defaults to '@webex/http-core' though a custom user-agent can be set * using the appName and appVersion configuration. e.g. * * webex = WebexSdk.init({ * credentials: { * supertoken: superToken * }, * config: { * credentials: { * client_id, * client_secret * }, * appName: 'custom-user-agent', * appVersion: '1.0', * } * }); */ var UserAgentInterceptor = exports.default = /*#__PURE__*/function (_Interceptor) { (0, _inherits2.default)(UserAgentInterceptor, _Interceptor); var _super = _createSuper(UserAgentInterceptor); /** * @param {Object} [options={}] * @param {WebexCore} [options.webex] * @private * @returns {UserAgentInterceptor} */ function UserAgentInterceptor() { var _this; var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; (0, _classCallCheck2.default)(this, UserAgentInterceptor); var appName = (0, _lodash.get)(options, 'webex.config.appName'); var appVersion = (0, _lodash.get)(options, 'webex.config.appVersion') || '0.0'; _this = _super.call(this, options); if (appName) { strings.set((0, _assertThisInitialized2.default)(_this), "".concat(appName, "/").concat(appVersion)); } else { strings.set((0, _assertThisInitialized2.default)(_this), '@webex/http-core'); // Using the traditional default from http-core } return _this; } /** * @returns {UserAgentInterceptor} */ (0, _createClass2.default)(UserAgentInterceptor, [{ key: "onRequest", value: /** * @see Interceptor#onRequest * @param {Object} options * @returns {Object} */ function onRequest(options) { // Do not set a custom user-agent for browsers if (_common.inBrowser) { return options; } options.headers = options.headers || {}; if ('user-agent' in options.headers && options.headers['spark-user-agent']) { return options; } options.headers['user-agent'] = strings.get(this); return options; } }], [{ key: "create", value: function create() { return new UserAgentInterceptor({ webex: this }); } }]); return UserAgentInterceptor; }(_httpCore.Interceptor); //# sourceMappingURL=user-agent.js.map