fsl-authorization
Version:
## What id FSL ID
132 lines (131 loc) • 4.52 kB
JavaScript
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;