import {LOCAL_STORAGE_TYPE} from './consts'; /** * Класс работы с Local Storage браузера * @class LocalStorageAPI * @param {string} key - уникальный ключ для local или session storage * @param {'LOCAL' | 'SESSION'} type - тип storage */ class LocalStorageAPI { constructor (key, type = LOCAL_STORAGE_TYPE.LOCAL) { this.key = key; this.api = type === LOCAL_STORAGE_TYPE.LOCAL ? localStorage : sessionStorage; } /** * Возвращает распарсенный объект из Local Storage по ключу из конструктора */ request () { const value = this.api.getItem(this.key) || 'null'; return JSON.parse(value); } /** * Записывает данные в Local Storage по ключу из конструктора * @param {Object} value - значение в Local Storage */ createOrUpdate (value) { this.api.setItem(this.key, JSON.stringify(value)); } /** * Очищает значение Local Storage по ключу из конструктора */ remove () { this.api.removeItem(this.key); } } export default LocalStorageAPI;