class LocalStorageManager {
/**
* Добавление данных по ключу (автоматическая конвертация объектов в JSON).
* @param key
* @param value
* @returns {boolean}
*/
add(key, value) {
try {
const data = typeof value === 'object'
? JSON.stringify(value)
: value;
localStorage.setItem(key, data);
return true;
} catch (e) {
console.error('Ошибка сохранения:', e);
return false;
}
}
/**
* Удаление данных по ключу.
* @param key
* @returns {boolean}
*/
remove(key) {
try {
localStorage.removeItem(key);
return true;
} catch (e) {
console.error('Ошибка удаления:', e);
return false;
}
}
/**
* Получение данных по ключу (автоматическое преобразование JSON в объект).
* @param key
* @returns {string|any|null}
*/
get(key) {
try {
let data = localStorage.getItem(key);
if (data === null) {
return null;
}
// Пытаемся распарсить JSON
try {
return JSON.parse(data);
} catch {
return data; // Возвращаем как строку если не JSON
}
} catch (e) {
console.error('Ошибка чтения:', e);
return null;
}
}
/**
* Печать всех ключей и значений из localStorage.
*/
print() {
console.log('Текущее содержимое localStorage:');
for (let i = 0; i < localStorage.length; i++) {
const key = localStorage.key(i);
const value = this.get(key);
console.log(`► ${key}:`, value);
}
}
test() {
console.log('LocalStorageManager is OK!');
}
}