restate / v1.0.0
Справочник API
Все экспорты @kkwaenggwari/restate 1.0 — с аргументами, возвращаемыми значениями и поведением.
На этой странице
ЭкспортыМетоды хранилищаМетоды сохраняемого хранилищаОпции persistedRestateПоля статусаrestateManager и scope.managerИнтерфейс адаптера хранилищаЭкспорты
Всё импортируется из @kkwaenggwari/restate — и в вебе, и в React Native.
| Экспорт | Возвращает | Для чего |
|---|---|---|
restate(initial, updater | options?) | Хук хранилища | Создать общее хранилище в памяти. |
persistedRestate(initial, options) | Хук сохраняемого хранилища | Создать хранилище, которое восстанавливается и сохраняется через хранилище данных. |
useRestateScope(factory?) | Результат фабрики или область | Владеть хранилищами в компоненте; уничтожаются после размонтирования. |
createRestateScope() | RestateScope | Владеть хранилищами вне React; в конце вызовите destroy(). |
shallow(left, right) | boolean | Сравнивать выборки на один уровень вглубь. |
batch(callback) | Результат колбэка | Уведомить подписчиков один раз после нескольких изменений. |
restateManager | RestateManager | Дождаться данных при запуске и выполнять массовые операции над глобальными хранилищами. |
createIndexedDBStorage(options?) | RestateStorage | Создать адаптер IndexedDB со своим именем базы данных или хранилища. |
createMMKVStorage(options?) | RestateStorage | Создать адаптер MMKV со своим экземпляром или конфигурацией. |
Методы хранилища
Хранилище — это функция, которую вы вызываете как хук, с этими методами.
| Член | Описание |
|---|---|
useStore() | Возвращает всё значение и перерисовывается при каждом изменении. |
useStore(selector, isEqual?) | Возвращает выборку; перерисовывается, когда isEqual (по умолчанию Object.is) сообщает об изменении. |
get() | Текущее значение без подписки. |
set(value | updater) | Заменяет значение или вычисляет его из предыдущего. Игнорируется после destroy(). |
reset() | Восстанавливает объявленное начальное значение и возвращает его. |
subscribe(listener) | Вызывает listener(value, previous, event) после каждого изменения; возвращает функцию отписки. |
subscribeSelector(selector, listener, isEqual?) | Вызывает listener, только когда меняется выборка. |
on(type, listener) | Слушает события вроде change, reset, save или error. |
start() / stop() / isRunning() | Ручное управление updater. |
destroy() / isDestroyed() | Освобождает слушателей и updater. Последующие подписки выбрасывают STORE_DESTROYED. |
getInitial() / getServerSnapshot() / getError() | Начальное значение, серверный снимок и последняя ошибка слушателя. |
id / kind | Уникальный id; memory или persistent. |
Методы сохраняемого хранилища
persistedRestate возвращает хранилище с этими дополнительными членами.
| Член | Описание |
|---|---|
ready | Promise, который выполняется, когда автоматическая загрузка завершилась, даже неудачно. Проверяйте status(). |
save() | Записывает текущее значение; выполняется с фактически записанным значением. |
restore() | Читает сохранённое значение в память. |
hasSaved() | Есть ли сохранённая запись. |
clearStorage() | Удаляет сохранённую запись; память не меняется. |
resetAndClearStorage() | Возвращает память к начальному значению и удаляет сохранённую запись. |
initialize() | Загружает заново — например, после исправления сбойной записи. |
status() | Замороженный снимок статуса; тот же объект, пока не изменится какое-либо поле. |
useStatus(selector?, isEqual?) | Хук, который перерисовывается, когда меняется статус или выбранная его часть. |
key / storageKey / storage | Логический ключ, ключ с пространством имён и используемый адаптер. |
Опции persistedRestate
key обязателен. Все остальные опции необязательны.
| Опция | По умолчанию | Значение |
|---|---|---|
key | обязательно | Логический ключ записи. |
namespace | "@kkwaenggwari/restate" | Префикс сохраняемого ключа; пустая строка его отключает. |
storage | IndexedDB / MMKV | Адаптер вместо адаптера платформы по умолчанию. |
autoSave | false | true сохраняет после каждого изменения; { delayMs } ждёт паузы. |
version / migrate | 1 / нет | Версия записи и способ обновления старых записей. |
validate | нет | Проверяет значения перед сохранением и после восстановления или миграции. |
serializer | JSON | Свои функции serialize и deserialize. |
operationTimeoutMs | 30000 | Максимальное время операции с хранилищем. |
maxPendingOperations | 256 | Допустимое число ожидающих операций, включая активную. |
maxStorageCharacters | 5242880 | Максимальный размер закодированного значения в кодовых единицах UTF-16. |
updater / managed / serverSnapshot / onError | — | Как в опциях restate. |
Поля статуса
status() и useStatus() возвращают эти поля.
| Поле | Значение |
|---|---|
ready | Автоматическая загрузка завершилась. |
dirty | Память отличается от последнего загруженного, сохранённого или восстановленного значения. |
operation | Текущая операция с хранилищем или null. |
pending | Незавершённые операции с хранилищем, включая активную. |
blocked | Отменённый или просроченный вызов адаптера ещё не завершился. |
available | Можно ли использовать хранилище. |
error / observerError | Последняя ошибка хранилища; последняя ошибка слушателя статуса. |
lastSavedAt / lastRestoredAt | Время последнего успеха в миллисекундах epoch или null. |
restateManager и scope.manager
Каждый менеджер отслеживает зарегистрированные в нём сохраняемые хранилища.
| Член | Описание |
|---|---|
ready | Ждёт хранилища, зарегистрированные на момент обращения; отклоняется с BULK_OPERATION_FAILED. |
saveAll(options?) / restoreAll(options?) | Выполняет save или restore для каждого хранилища; { concurrency } ограничивает параллельную работу. |
clearStorageAll() / resetAll() / resetAllAndClearStorage() | Очищает записи, сбрасывает память или и то и другое. |
list() / get(idOrKey) / size() | Просмотр зарегистрированных хранилищ. |
subscribe(listener) / status() | Наблюдение за событиями менеджера и ошибками слушателей. |
destroyAll() | Уничтожает все зарегистрированные хранилища. |
Интерфейс адаптера хранилища
Передайте в storage объект с этими методами. Каждый метод может вернуть значение или Promise.
| Метод | Описание |
|---|---|
getItem(key, context?) | Возвращает сохранённую строку или null. |
setItem(key, value, context?) | Сохраняет строку. |
removeItem(key, context?) | Удаляет запись. |
isAvailable?() | Синхронно сообщает, можно ли использовать хранилище. |
clear?() / close?() | Необязательные сброс буфера и очистка. |
coordinationKey? | Объект, общий для обёрток одного и того же нижележащего хранилища. |