'use strict' /** * @author Arsen Mirzaev Tatyano-Muradovich */ class settings { /** * Хранилище */ static storage = browser.storage; /** * Префикс в журнале */ static prefix = 'настройки'; /** * Записать * * @param {string} name * @param {*} value * * @return {bool} Статус записи в базу данных */ static async write(name, value = null) { if (typeof name === 'string') { // Переданы строки // Инициализация буфера для записи в хранилище let buffer = {}; // Запись в буфер buffer[name] = value; // Запись в базу данных await this.storage.sync.set(buffer); // Запись в журнал settings.log('Записана настройка: ' + name + ` (${value})`); return true; } // Запись в журнал settings.log('Не удалось записать настройку: ' + name + ` (${value})`); return false; } /** * Прочитать * * @param {string} name * * @return {Promise|null} Значение, если найдено */ static async read(name) { if (typeof name === 'string') { // Передана строка // Чтение из базы данных let value = await this.storage.sync.get(name); return value[name]; } return null; } /** * Удалить * * @param {string} name * * @return {bool} Статус удаления из базы данных */ static async delete(name) { if (typeof name === 'string') { // Передана строка // Удаление из базы данных await this.storage.sync.remove(name); // Запись в журнал settings.log('Удалена настройка: ' + name); return true; } // Запись в журнал settings.log('Не удалось удалить настройку: ' + name); return false; } /** * Запись в журнал * * @param {string} text * * @return {bool} Статус записи в журнал */ static log(text) { if (typeof text === 'string') { // Передана строка // Запись в журнал return log.write(settings.prefix, text); } return false; } }