UNPKG

@arc-publishing/sdk-identity

Version:
73 lines 3.33 kB
"use strict"; 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