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? | Об’єкт, спільний для обгорток того самого базового сховища. |