UNPKG

@kineticdata/react

Version:
44 lines (43 loc) 1.73 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createClass")); var tokenEndpointPattern = /\/app\/(loghub|system-coordinator|integrator)\/(refresh|components|api)/; var RequestInterceptor = exports["default"] = /*#__PURE__*/function () { function RequestInterceptor(store) { (0, _classCallCheck2["default"])(this, RequestInterceptor); this.store = store; this.initPromise = new Promise(function (resolve) { var unsub = store.subscribe(function () { if (store.getState().getIn(['session', 'initialized'])) { unsub(); resolve(); } }); }); this.handleFulfilled = this.handleFulfilled.bind(this); } (0, _createClass2["default"])(RequestInterceptor, [{ key: "handleFulfilled", value: function handleFulfilled(config) { var _this = this; return config.__bypassInitInterceptor ? config : this.initPromise.then(function () { var _this$store$getState$ = _this.store.getState().get('session').toObject(), loggedIn = _this$store$getState$.loggedIn, token = _this$store$getState$.token; if (!loggedIn) { config.__bypassAuthInterceptor = true; } if (token && config.url.match(tokenEndpointPattern)) { config.headers.Authorization = 'Bearer ' + token; } return config; }); } }]); return RequestInterceptor; }();