Установка и использование
@rattus-orm/local-storage
это отдельный пакет, не включающий в себя основную библиотеку. Чтобы начать пользоваться ORM с localStorage в вашем приложении, нужно установить всё:
yarn add @rattus-orm/core @rattus-orm/local-storage
Базовый пример использования
import { createDatabase, Model } from '@rattus-orm/core'
import { UidField, StringField } from '@rattus-orm/core/field-types'
import { LocalStorageDataProvider } from '@rattus-orm/local-storage'
class User extends Model {
public static entity = 'user'
@UidField()
public id: string
@StringField()
public email: string
}
const database = createDatabase({
connection: 'entities',
dataProvider: new LocalStorageDataProvider()
}).start()
const userRepo = database.getRepository(User)
userRepo.save([{ id: '1', email: 'test@test.com' }, { id: '2', email: 'test2@test.com' }])
const found = userRepo.find('2')
Как это работает
Фактически, провайдер хранит все ваши изменения в памяти. При вызове любого сохраняющего метода данные в па мяти обновляются, затем сохраняются в localStorage.
При создании каждого модуля в каждом соединении провайдер проверяет, есть ли в localStorage сохранённые ранее данные, и если есть, загружает их в память. Такой подход позволяет оптимизировать работу с данными.
Ограничения
При работе с localStorage стоит помнить об ограничениях браузера, в частности, на максимальный размер данных, который можно хранить в localStorage.
Data Provider не производит никаких проверок. Перед использованием вам нужно
самостоятельно убедиться, что хранилище доступно и не переполнено.
При записи большого объема данных Data Provider уведомит вас, вы близки к лимиту
в 5mb.