UNPKG

fsl-authorization

Version:
132 lines (131 loc) 4.52 kB
import { omitBy } from 'lodash'; var SDKStorage = /** @class */ (function () { function SDKStorage(id) { this.id = ''; this.userInfo = {}; this.loaded = false; this.id = id; var userInfo = localStorage.getItem(id); if (userInfo) { try { this.userInfo = JSON.parse(userInfo); for (var key in this.userInfo) { var keyValue = this.userInfo[key]; if (!(keyValue instanceof Object) && keyValue) { this.userInfo[key] = { value: keyValue, }; continue; } if (keyValue && keyValue.timeStamp && keyValue.date) { var time = Date.now(); if (time - keyValue.date > keyValue.timeStamp * 1000) { this.removeItem(key); } } } } catch (err) { console.error('The localStorage is occupied, please clear it first'); } } else { this.userInfo = { id: { value: +id } }; localStorage.setItem(id, JSON.stringify(this.userInfo)); } this.loaded = true; } SDKStorage.unRefValue = function (user) { var _a; var obj = {}; for (var key in user) { var value = (_a = user[key]) === null || _a === void 0 ? void 0 : _a.value; if (value) { obj[key] = value; } } return obj; }; SDKStorage.getAllUsers = function () { var length = localStorage.length; var users = []; for (var i = 0; i < length; i++) { var key = localStorage.key(i); if (/^\d{4,}$/.test(key)) { try { var user = JSON.parse(localStorage.getItem(key)); if (user && user.email && user.email.value) { users.push(SDKStorage.unRefValue(user)); } } catch (e) { continue; } } } users.sort(function (user1, user2) { var p = 0; var n = user1.email.length; while (p < n) { if (!user2.email[p] || user1.email[p] > user2.email[p]) { return 1; } if (!user1.email[p] || user1.email[p] < user2.email[p]) { return -1; } p++; } return 0; }); return users; }; SDKStorage.getUserToken = function (uid) { if (uid) { var userInfo = localStorage.getItem(uid); if (userInfo) { try { var data = JSON.parse(userInfo); var tokenValue = data['token']; return tokenValue === null || tokenValue === void 0 ? void 0 : tokenValue.value; } catch (e) { console.error('The localStorage is occupied, please clear it first'); return ''; } } } return ''; }; SDKStorage.prototype.setItem = function (key, value, opt) { if (opt === void 0) { opt = {}; } this.userInfo[key] = omitBy({ value: value, timeStamp: opt.timeStamp, date: opt.timeStamp ? Date.now() : undefined, }, function (value) { return value === null || value === undefined; }); localStorage.setItem(this.id, JSON.stringify(this.userInfo)); }; SDKStorage.prototype.getItem = function (key) { if (this.userInfo[key]) { return this.userInfo[key].value; } return undefined; }; SDKStorage.prototype.removeItem = function (key) { this.userInfo[key] = undefined; localStorage.setItem(this.id, JSON.stringify(this.userInfo)); }; SDKStorage.prototype.clear = function () { var id = this.userInfo.id; this.userInfo = { id: id, }; localStorage.setItem(this.id, JSON.stringify(this.userInfo)); }; SDKStorage.prototype.clearAll = function () { this.userInfo = {}; localStorage.removeItem(this.id); }; return SDKStorage; }()); export default SDKStorage;