UNPKG

@dataswift/hat-js

Version:

HAT JavaScript SDK for web and Node.js

66 lines (65 loc) 2.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.State = void 0; var HatTokenValidation_1 = require("./utils/HatTokenValidation"); var Utils_1 = require("./utils/Utils"); var HatCustomError_1 = require("./utils/HatCustomError"); var State = /** @class */ (function () { function State(state) { this.apiVersion = ''; this.hatDomain = ''; this.token = ''; this.secure = true; this.authenticated = false; this.observers = []; this.validateConfig(state); } State.prototype.setToken = function (token) { this.token = token; this.notifyObservers(); }; State.prototype.signOut = function () { this.apiVersion = ''; this.hatDomain = ''; this.token = ''; this.secure = true; this.authenticated = false; this.notifyObservers(); }; State.prototype.addObserver = function (o) { this.observers.push(o); }; State.prototype.notifyObservers = function () { for (var _i = 0, _a = this.observers; _i < _a.length; _i++) { var obs = _a[_i]; obs.update(this); } }; State.prototype.validateConfig = function (config) { var apiVersion = config.apiVersion, token = config.token, secure = config.secure; if (!token) { return; } if (config.onTokenChange) { this.onTokenChange = config.onTokenChange; } if (apiVersion) { this.apiVersion = apiVersion; } if (secure === false) { this.secure = secure; } var decodedToken = HatTokenValidation_1.HatTokenValidation.decodeToken(token); if (HatTokenValidation_1.HatTokenValidation.isExpired(decodedToken) || !decodedToken.iss) { console.error(new HatCustomError_1.HatCustomError(HatCustomError_1.HatCustomErrorCauses.tokenValidation, HatCustomError_1.HatCustomErrorMessages.tokenIsNotValidOrExpired)); return; } var httpProtocol = Utils_1.Utils.getProtocol(secure); this.authenticated = true; this.hatDomain = "" + (httpProtocol + decodedToken.iss); this.token = token; this.notifyObservers(); }; return State; }()); exports.State = State;