restate / v1.0.0
Dokumentacja API
Każdy eksport @kkwaenggwari/restate 1.0, z argumentami, wartościami zwracanymi i zachowaniem.
Na tej stronie
EksportyMetody magazynuMetody zapisywanego magazynuOpcje persistedRestatePola statusurestateManager i scope.managerInterfejs adaptera pamięciEksporty
Wszystko importujesz z @kkwaenggwari/restate, w sieci i w React Native.
| Eksport | Zwraca | Do czego |
|---|---|---|
restate(initial, updater | options?) | Hook magazynu | Utworzyć wspólny magazyn w pamięci. |
persistedRestate(initial, options) | Hook zapisywanego magazynu | Utworzyć magazyn przywracany i zapisywany przez pamięć trwałą. |
useRestateScope(factory?) | Wynik fabryki lub zakres | Posiadać magazyny w komponencie; niszczone po odmontowaniu. |
createRestateScope() | RestateScope | Posiadać magazyny poza React; na końcu wywołaj destroy(). |
shallow(left, right) | boolean | Porównywać wybory na jednym poziomie głębokości. |
batch(callback) | Wynik callbacku | Powiadomić subskrybentów raz po kilku zmianach. |
restateManager | RestateManager | Czekać na dane startowe i wykonywać operacje zbiorcze na magazynach globalnych. |
createIndexedDBStorage(options?) | RestateStorage | Utworzyć adapter IndexedDB z własną nazwą bazy danych lub magazynu. |
createMMKVStorage(options?) | RestateStorage | Utworzyć adapter MMKV z własną instancją lub konfiguracją. |
Metody magazynu
Magazyn to funkcja, którą wywołujesz jak hook, z tymi metodami.
| Element | Opis |
|---|---|
useStore() | Zwraca całą wartość i renderuje się przy każdej zmianie. |
useStore(selector, isEqual?) | Zwraca wybór; renderuje się, gdy isEqual (domyślnie Object.is) zgłosi zmianę. |
get() | Bieżąca wartość, bez subskrypcji. |
set(value | updater) | Zastępuje wartość lub oblicza ją z poprzedniej. Ignorowane po destroy(). |
reset() | Przywraca zadeklarowaną wartość początkową i ją zwraca. |
subscribe(listener) | Wywołuje listener(value, previous, event) po każdej zmianie; zwraca funkcję anulującą subskrypcję. |
subscribeSelector(selector, listener, isEqual?) | Wywołuje listener tylko wtedy, gdy zmienia się wybór. |
on(type, listener) | Nasłuchuje zdarzeń takich jak change, reset, save czy error. |
start() / stop() / isRunning() | Ręczne sterowanie updaterem. |
destroy() / isDestroyed() | Zwalnia słuchaczy i updater. Późniejsze subskrypcje rzucają STORE_DESTROYED. |
getInitial() / getServerSnapshot() / getError() | Wartość początkowa, migawka serwera i ostatni błąd słuchacza. |
id / kind | Unikalny id; memory lub persistent. |
Metody zapisywanego magazynu
persistedRestate zwraca magazyn z tymi dodatkowymi elementami.
| Element | Opis |
|---|---|
ready | Promise spełniany po zakończeniu automatycznego wczytania, nawet nieudanego. Sprawdź status(). |
save() | Zapisuje bieżącą wartość; spełnia się wartością faktycznie zapisaną. |
restore() | Wczytuje zapisaną wartość do pamięci. |
hasSaved() | Czy istnieje zapisany rekord. |
clearStorage() | Usuwa zapisany rekord; pamięć się nie zmienia. |
resetAndClearStorage() | Przywraca pamięć do wartości początkowej i usuwa zapisany rekord. |
initialize() | Wczytuje ponownie, na przykład po naprawie wadliwego rekordu. |
status() | Zamrożona migawka statusu; ten sam obiekt, dopóki nie zmieni się żadne pole. |
useStatus(selector?, isEqual?) | Hook renderujący się ponownie, gdy zmienia się status lub jego wybrana część. |
key / storageKey / storage | Klucz logiczny, klucz z przestrzenią nazw i używany adapter. |
Opcje persistedRestate
key jest wymagany. Wszystkie pozostałe opcje są opcjonalne.
| Opcja | Domyślnie | Znaczenie |
|---|---|---|
key | wymagane | Klucz logiczny rekordu. |
namespace | "@kkwaenggwari/restate" | Prefiks zapisywanego klucza; pusty ciąg go wyłącza. |
storage | IndexedDB / MMKV | Adapter zamiast domyślnego dla platformy. |
autoSave | false | true zapisuje po każdej zmianie; { delayMs } czeka na przerwę. |
version / migrate | 1 / brak | Wersja rekordu i sposób aktualizacji starszych rekordów. |
validate | brak | Sprawdza wartości przed zapisem i po przywróceniu lub migracji. |
serializer | JSON | Własne funkcje serialize i deserialize. |
operationTimeoutMs | 30000 | Maksymalny czas operacji na pamięci. |
maxPendingOperations | 256 | Dopuszczalna liczba oczekujących operacji, łącznie z aktywną. |
maxStorageCharacters | 5242880 | Największa zakodowana wartość, w jednostkach kodu UTF-16. |
updater / managed / serverSnapshot / onError | — | Jak w opcjach restate. |
Pola statusu
status() i useStatus() zwracają te pola.
| Pole | Znaczenie |
|---|---|
ready | Automatyczne wczytanie się zakończyło. |
dirty | Pamięć różni się od ostatnio wczytanej, zapisanej lub przywróconej wartości. |
operation | Bieżąca operacja na pamięci lub null. |
pending | Niezakończone operacje na pamięci, łącznie z aktywną. |
blocked | Anulowane lub przeterminowane wywołanie adaptera jeszcze się nie zakończyło. |
available | Czy można używać pamięci. |
error / observerError | Ostatni błąd pamięci; ostatni błąd słuchacza statusu. |
lastSavedAt / lastRestoredAt | Milisekundy epoch ostatniego sukcesu lub null. |
restateManager i scope.manager
Każdy menedżer śledzi zapisywane magazyny zarejestrowane u siebie.
| Element | Opis |
|---|---|
ready | Czeka na magazyny zarejestrowane w chwili dostępu; odrzuca z BULK_OPERATION_FAILED. |
saveAll(options?) / restoreAll(options?) | Wykonuje save lub restore na każdym magazynie; { concurrency } ogranicza pracę równoległą. |
clearStorageAll() / resetAll() / resetAllAndClearStorage() | Czyści rekordy, resetuje pamięć lub jedno i drugie. |
list() / get(idOrKey) / size() | Przegląd zarejestrowanych magazynów. |
subscribe(listener) / status() | Obserwacja zdarzeń menedżera i błędów słuchaczy. |
destroyAll() | Niszczy każdy zarejestrowany magazyn. |
Interfejs adaptera pamięci
Przekaż jako storage obiekt z tymi metodami. Każda metoda może zwrócić wartość lub Promise.
| Metoda | Opis |
|---|---|
getItem(key, context?) | Zwraca zapisany ciąg lub null. |
setItem(key, value, context?) | Zapisuje ciąg. |
removeItem(key, context?) | Usuwa rekord. |
isAvailable?() | Synchronicznie informuje, czy można używać pamięci. |
clear?() / close?() | Opcjonalne opróżnianie i sprzątanie. |
coordinationKey? | Obiekt wspólny dla wrapperów tej samej pamięci bazowej. |