@spartacus/core
Version:
Spartacus - the core framework
41 lines • 4.32 kB
JavaScript
import { StorageSyncType } from '../config/state-config';
export function getStorage(storageType, winRef) {
let storage;
switch (storageType) {
case StorageSyncType.LOCAL_STORAGE: {
storage = winRef.localStorage;
break;
}
case StorageSyncType.SESSION_STORAGE: {
storage = winRef.sessionStorage;
break;
}
case StorageSyncType.NO_STORAGE: {
storage = undefined;
break;
}
default: {
storage = winRef.sessionStorage;
}
}
return storage;
}
export function persistToStorage(configKey, value, storage) {
if (!isSsr(storage) && value) {
storage.setItem(configKey, JSON.stringify(value));
}
}
export function readFromStorage(storage, key) {
if (isSsr(storage)) {
return;
}
const storageValue = storage.getItem(key);
if (!storageValue) {
return;
}
return JSON.parse(storageValue);
}
export function isSsr(storage) {
return !Boolean(storage);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci1zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvc3RhdGUvdXRpbHMvYnJvd3Nlci1zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV6RCxNQUFNLFVBQVUsVUFBVSxDQUN4QixXQUE0QixFQUM1QixNQUFpQjtJQUVqQixJQUFJLE9BQTRCLENBQUM7SUFFakMsUUFBUSxXQUFXLEVBQUU7UUFDbkIsS0FBSyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbEMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7WUFDOUIsTUFBTTtTQUNQO1FBQ0QsS0FBSyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDcEMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUM7WUFDaEMsTUFBTTtTQUNQO1FBQ0QsS0FBSyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDL0IsT0FBTyxHQUFHLFNBQVMsQ0FBQztZQUNwQixNQUFNO1NBQ1A7UUFFRCxPQUFPLENBQUMsQ0FBQztZQUNQLE9BQU8sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDO1NBQ2pDO0tBQ0Y7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixTQUFpQixFQUNqQixLQUFVLEVBQ1YsT0FBZ0I7SUFFaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLEVBQUU7UUFDNUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0tBQ25EO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsT0FBZ0IsRUFBRSxHQUFXO0lBQzNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ2xCLE9BQU87S0FDUjtJQUVELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUMsSUFBSSxDQUFDLFlBQVksRUFBRTtRQUNqQixPQUFPO0tBQ1I7SUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQUVELE1BQU0sVUFBVSxLQUFLLENBQUMsT0FBZ0I7SUFDcEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV2luZG93UmVmIH0gZnJvbSAnLi4vLi4vd2luZG93L3dpbmRvdy1yZWYnO1xuaW1wb3J0IHsgU3RvcmFnZVN5bmNUeXBlIH0gZnJvbSAnLi4vY29uZmlnL3N0YXRlLWNvbmZpZyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdG9yYWdlKFxuICBzdG9yYWdlVHlwZTogU3RvcmFnZVN5bmNUeXBlLFxuICB3aW5SZWY6IFdpbmRvd1JlZlxuKTogU3RvcmFnZSB8IHVuZGVmaW5lZCB7XG4gIGxldCBzdG9yYWdlOiBTdG9yYWdlIHwgdW5kZWZpbmVkO1xuXG4gIHN3aXRjaCAoc3RvcmFnZVR5cGUpIHtcbiAgICBjYXNlIFN0b3JhZ2VTeW5jVHlwZS5MT0NBTF9TVE9SQUdFOiB7XG4gICAgICBzdG9yYWdlID0gd2luUmVmLmxvY2FsU3RvcmFnZTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIFN0b3JhZ2VTeW5jVHlwZS5TRVNTSU9OX1NUT1JBR0U6IHtcbiAgICAgIHN0b3JhZ2UgPSB3aW5SZWYuc2Vzc2lvblN0b3JhZ2U7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBTdG9yYWdlU3luY1R5cGUuTk9fU1RPUkFHRToge1xuICAgICAgc3RvcmFnZSA9IHVuZGVmaW5lZDtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHN0b3JhZ2UgPSB3aW5SZWYuc2Vzc2lvblN0b3JhZ2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0b3JhZ2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwZXJzaXN0VG9TdG9yYWdlKFxuICBjb25maWdLZXk6IHN0cmluZyxcbiAgdmFsdWU6IGFueSxcbiAgc3RvcmFnZTogU3RvcmFnZVxuKTogdm9pZCB7XG4gIGlmICghaXNTc3Ioc3RvcmFnZSkgJiYgdmFsdWUpIHtcbiAgICBzdG9yYWdlLnNldEl0ZW0oY29uZmlnS2V5LCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkRnJvbVN0b3JhZ2Uoc3RvcmFnZTogU3RvcmFnZSwga2V5OiBzdHJpbmcpOiB1bmtub3duIHtcbiAgaWYgKGlzU3NyKHN0b3JhZ2UpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qgc3RvcmFnZVZhbHVlID0gc3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gIGlmICghc3RvcmFnZVZhbHVlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmV0dXJuIEpTT04ucGFyc2Uoc3RvcmFnZVZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3NyKHN0b3JhZ2U6IFN0b3JhZ2UpOiBib29sZWFuIHtcbiAgcmV0dXJuICFCb29sZWFuKHN0b3JhZ2UpO1xufVxuIl19