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)Результат колбекаСповістити підписників один раз після кількох змін.
restateManagerRestateManagerДочекатися даних під час запуску й виконувати масові операції над глобальними сховищами.
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 повертає сховище з цими додатковими членами.

ЧленОпис
readyPromise, що виконується, коли автоматичне завантаження завершилося, навіть невдало. Перевіряйте status().
save()Записує поточне значення; виконується з фактично записаним значенням.
restore()Читає збережене значення в пам’ять.
hasSaved()Чи існує збережений запис.
clearStorage()Видаляє збережений запис; пам’ять не змінюється.
resetAndClearStorage()Повертає пам’ять до початкового значення й видаляє збережений запис.
initialize()Завантажує знову — наприклад, після виправлення збійного запису.
status()Заморожений знімок статусу; той самий об’єкт, доки не зміниться якесь поле.
useStatus(selector?, isEqual?)Хук, що перемальовується, коли змінюється статус або вибрана його частина.
key / storageKey / storageЛогічний ключ, ключ із простором імен і використовуваний адаптер.

Опції persistedRestate

key обов’язковий. Усі інші опції необов’язкові.

ОпціяТиповоЗначення
keyобов’язковоЛогічний ключ запису.
namespace"@kkwaenggwari/restate"Префікс збереженого ключа; порожній рядок його вимикає.
storageIndexedDB / MMKVАдаптер замість типового для платформи.
autoSavefalsetrue зберігає після кожної зміни; { delayMs } чекає паузи.
version / migrate1 / немаєВерсія запису й спосіб оновлення старих записів.
validateнемаєПеревіряє значення перед збереженням і після відновлення чи міграції.
serializerJSONВласні функції serialize і deserialize.
operationTimeoutMs30000Максимальний час операції зі сховищем.
maxPendingOperations256Дозволена кількість операцій в очікуванні, включно з активною.
maxStorageCharacters5242880Найбільше закодоване значення в кодових одиницях 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?Об’єкт, спільний для обгорток того самого базового сховища.

Пошук у документації

Пошук у заголовках, описах і тексті всіх посібників.