@arc-publishing/sdk-identity
Version:
JS Identity SDK for working with Identity API
73 lines • 3.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.shouldStorageChange = exports.initStorage = void 0;
var tslib_1 = require("tslib");
var cookieStorage_1 = tslib_1.__importDefault(require("./cookieStorage"));
var memoryStorage_1 = tslib_1.__importDefault(require("./memoryStorage"));
var constants_1 = require("../sdk/constants");
function initStorage(baseDomain, isSession, expDate) {
if (baseDomain === void 0) { baseDomain = ''; }
var session = isSession;
if (typeof window !== 'undefined') {
var cookieStorage = new cookieStorage_1.default(undefined, undefined, expDate);
if (baseDomain) {
var cs = new cookieStorage_1.default(baseDomain, isSession, expDate);
localStorage.removeItem(constants_1.IDENTITY_STORAGE_KEY);
sessionStorage.removeItem(constants_1.IDENTITY_STORAGE_KEY);
return cs;
}
if (typeof session === 'undefined') {
if (!!sessionStorage.getItem(constants_1.IDENTITY_STORAGE_KEY) &&
sessionStorage.getItem(constants_1.IDENTITY_STORAGE_KEY) !== '{}') {
session = true;
}
else if (!!localStorage.getItem(constants_1.IDENTITY_STORAGE_KEY) &&
localStorage.getItem(constants_1.IDENTITY_STORAGE_KEY) !== '{}') {
session = false;
}
else {
var cs = new cookieStorage_1.default(baseDomain, undefined, expDate);
var data = JSON.parse(cs.getItem(constants_1.IDENTITY_STORAGE_KEY) || '{}');
if (data && Object.keys(data).length > 0) {
session = cs.isSession(constants_1.IDENTITY_STORAGE_KEY);
}
else {
session = false;
}
}
}
try {
var testKey = "ArcId.test";
if (session) {
sessionStorage.setItem(testKey, 'testValue');
sessionStorage.removeItem(testKey);
localStorage.removeItem(constants_1.IDENTITY_STORAGE_KEY);
cookieStorage.removeItem(constants_1.IDENTITY_STORAGE_KEY);
return sessionStorage;
}
localStorage.setItem(testKey, 'testValue');
localStorage.removeItem(testKey);
sessionStorage.removeItem(constants_1.IDENTITY_STORAGE_KEY);
cookieStorage.removeItem(constants_1.IDENTITY_STORAGE_KEY);
return localStorage;
}
catch (_) {
localStorage.removeItem(constants_1.IDENTITY_STORAGE_KEY);
sessionStorage.removeItem(constants_1.IDENTITY_STORAGE_KEY);
return new cookieStorage_1.default(baseDomain, session, expDate);
}
}
else {
return new memoryStorage_1.default();
}
}
exports.initStorage = initStorage;
function shouldStorageChange(selectedStorage, isSession, storageKey) {
return (!selectedStorage ||
(selectedStorage instanceof cookieStorage_1.default &&
selectedStorage.isSession(storageKey) !== isSession) ||
(selectedStorage === sessionStorage && !isSession) ||
(selectedStorage === localStorage && isSession));
}
exports.shouldStorageChange = shouldStorageChange;
//# sourceMappingURL=storage.js.map