@kineticdata/react
Version:
A React library for the Kinetic Platform
44 lines (43 loc) • 1.73 kB
JavaScript
;
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;
}();