localForage.config(options) представляет собой
глобальный механизм настройки экземпляра хранилища, который определяет
поведение всей библиотеки до начала операций чтения и записи.
Конфигурация применяется на уровне модуля и влияет на выбор драйвера,
имя базы данных, структуру хранилища и технические параметры
окружения.
localForage.config(options)
или в более формализованном виде:
config(options: LocalForageOptions): void;
Метод не возвращает значение и используется исключительно для задания
параметров перед работой с API setItem,
getItem, removeItem и другими.
LocalForageOptionsКонфигурационный объект определяет базовые параметры хранилища и его поведение в разных браузерных реализациях.
interface LocalForageOptions {
driver?: string | string[];
name?: string;
storeName?: string;
version?: number;
size?: number;
description?: string;
}
Каждое поле влияет на отдельный слой абстракции хранения данных.
name — имя базы данныхlocalForage.config({
name: 'appDatabase'
});
name задаёт имя контейнера хранилища.
name приводит к полной изоляции данныхstoreName —
имя хранилища (object store)localForage.config({
storeName: 'usersStore'
});
storeName определяет внутреннюю структуру хранения.
_driver — выбор
механизма храненияlocalForage.config({
driver: [
localForage.INDEXEDDB,
localForage.WEBSQL,
localForage.LOCALSTORAGE
]
});
localForage.INDEXEDDBlocalForage.WEBSQLlocalForage.LOCALSTORAGEПозволяет строить деградируемые стратегии хранения:
version — версия
схемы храненияlocalForage.config({
version: 1.0
});
Используется преимущественно для IndexedDB.
size — лимит размера
(WebSQL)localForage.config({
size: 50 * 1024 * 1024
});
description —
описание базы данныхlocalForage.config({
description: 'Storage for cached API responses'
});
localForage.config({
name: 'MyApplication',
storeName: 'cache_store',
driver: [
localForage.INDEXEDDB,
localForage.WEBSQL,
localForage.LOCALSTORAGE
],
version: 1.2,
size: 10 * 1024 * 1024,
description: 'Client-side cache layer'
});
Конфигурация должна быть установлена до любых операций с данными.
Поведение библиотеки при нарушении порядка:
Каждый параметр config интерпретируется по-разному в
зависимости от backend:
| Параметр | IndexedDB | WebSQL | localStorage |
|---|---|---|---|
| name | база | база | префикс |
| storeName | object store | таблица | ключевой namespace |
| version | schema version | игнор/частично | игнор |
| size | игнор | лимит | игнор |
| description | игнор | metadata | игнор |
После выполнения:
localForage.config({...})
происходит:
Конфигурация не открывает хранилище сразу, а лишь подготавливает параметры.
После первого успешного доступа драйвер фиксируется.
Разные конфигурации требуют разных экземпляров
localForage:
const userStore = localForage.createInstance({
name: 'app',
storeName: 'users'
});
await localForage.setItem('key', 'value');
localForage.config({ name: 'newDB' }); // приводит к разрыву логики хранения
storeName: '123store' // может вызвать ошибку в IndexedDB
Приоритет важен: первым должен идти наиболее современный драйвер.
Хотя config задаёт глобальные параметры, альтернативный
подход:
localForage.createInstance(options)
создаёт изолированный экземпляр, где конфигурация не влияет на глобальное состояние.
config — глобальная настройка
createInstance — локальная настройка