restate / v1.0.0
Riferimento API
Ogni export di @kkwaenggwari/restate 1.0, con argomenti, valori restituiti e comportamento.
In questa pagina
ExportMetodi dello storeMetodi dello store salvatoOpzioni di persistedRestateCampi di statorestateManager e scope.managerInterfaccia dell’adattatore di archiviazioneExport
Tutto si importa da @kkwaenggwari/restate, sul web e su React Native.
| Export | Restituisce | Serve per |
|---|---|---|
restate(initial, updater | options?) | Hook dello store | Creare uno store condiviso in memoria. |
persistedRestate(initial, options) | Hook dello store salvato | Creare uno store che si ripristina e si salva tramite l’archivio. |
useRestateScope(factory?) | Risultato della factory o scope | Possedere store in un componente; distrutti dopo lo smontaggio. |
createRestateScope() | RestateScope | Possedere store fuori da React; chiama destroy() alla fine. |
shallow(left, right) | boolean | Confrontare le selezioni a un livello di profondità. |
batch(callback) | Risultato del callback | Notificare gli iscritti una volta dopo più modifiche. |
restateManager | RestateManager | Attendere i dati dell’avvio ed eseguire operazioni in blocco sugli store globali. |
createIndexedDBStorage(options?) | RestateStorage | Creare un adattatore IndexedDB con un nome di database o di store personalizzato. |
createMMKVStorage(options?) | RestateStorage | Creare un adattatore MMKV con la tua istanza o configurazione. |
Metodi dello store
Uno store è una funzione che chiami come hook, con questi metodi.
| Membro | Descrizione |
|---|---|
useStore() | Restituisce l’intero valore e si ri-renderizza a ogni modifica. |
useStore(selector, isEqual?) | Restituisce la selezione; si ri-renderizza quando isEqual (predefinito Object.is) segnala un cambiamento. |
get() | Valore attuale, senza iscriversi. |
set(value | updater) | Sostituisce il valore o lo calcola dal precedente. Ignorato dopo destroy(). |
reset() | Ripristina il valore iniziale dichiarato e lo restituisce. |
subscribe(listener) | Chiama listener(value, previous, event) dopo ogni modifica; restituisce una funzione per annullare l’iscrizione. |
subscribeSelector(selector, listener, isEqual?) | Chiama listener solo quando cambia la selezione. |
on(type, listener) | Ascolta eventi come change, reset, save o error. |
start() / stop() / isRunning() | Controlla l’updater a mano. |
destroy() / isDestroyed() | Rilascia i listener e l’updater. Le iscrizioni successive lanciano STORE_DESTROYED. |
getInitial() / getServerSnapshot() / getError() | Valore iniziale, snapshot del server e ultimo errore di un listener. |
id / kind | id univoco; memory o persistent. |
Metodi dello store salvato
persistedRestate restituisce uno store con questi membri aggiuntivi.
| Membro | Descrizione |
|---|---|
ready | Promise che si risolve quando finisce il caricamento automatico, anche se è fallito. Controlla status(). |
save() | Scrive il valore attuale; si risolve con il valore effettivamente scritto. |
restore() | Legge il valore salvato in memoria. |
hasSaved() | Se esiste un record salvato. |
clearStorage() | Elimina il record salvato; la memoria non cambia. |
resetAndClearStorage() | Riporta la memoria al valore iniziale ed elimina il record salvato. |
initialize() | Carica di nuovo, per esempio dopo aver corretto un record fallito. |
status() | Snapshot congelato dello stato; lo stesso oggetto finché non cambia un campo. |
useStatus(selector?, isEqual?) | Hook che si ri-renderizza quando cambia lo stato o la parte selezionata. |
key / storageKey / storage | Chiave logica, chiave con namespace e adattatore in uso. |
Opzioni di persistedRestate
key è obbligatoria. Tutte le altre opzioni sono facoltative.
| Opzione | Predefinito | Significato |
|---|---|---|
key | obbligatoria | Chiave logica del record. |
namespace | "@kkwaenggwari/restate" | Prefisso della chiave salvata; una stringa vuota lo disattiva. |
storage | IndexedDB / MMKV | Adattatore da usare al posto di quello predefinito della piattaforma. |
autoSave | false | true salva dopo ogni modifica; { delayMs } aspetta una pausa. |
version / migrate | 1 / nessuna | Versione del record e come aggiornare i record più vecchi. |
validate | nessuna | Controlla i valori prima del salvataggio e dopo il ripristino o la migrazione. |
serializer | JSON | Funzioni serialize e deserialize personalizzate. |
operationTimeoutMs | 30000 | Tempo massimo di un’operazione di archiviazione. |
maxPendingOperations | 256 | Operazioni in sospeso consentite, compresa quella attiva. |
maxStorageCharacters | 5242880 | Valore codificato più grande, in unità di codice UTF-16. |
updater / managed / serverSnapshot / onError | — | Come le opzioni di restate. |
Campi di stato
status() e useStatus() restituiscono questi campi.
| Campo | Significato |
|---|---|
ready | Il caricamento automatico è terminato. |
dirty | La memoria differisce dall’ultimo valore caricato, salvato o ripristinato. |
operation | L’operazione di archiviazione in corso, oppure null. |
pending | Operazioni di archiviazione non concluse, compresa quella attiva. |
blocked | Una chiamata all’adattatore annullata o scaduta non si è ancora conclusa. |
available | Se l’archivio può essere usato. |
error / observerError | Ultimo errore di archiviazione; ultimo errore di un listener dello stato. |
lastSavedAt / lastRestoredAt | Millisecondi epoch dell’ultimo successo, oppure null. |
restateManager e scope.manager
Ogni manager tiene traccia degli store persistenti registrati presso di sé.
| Membro | Descrizione |
|---|---|
ready | Attende gli store registrati al momento dell’accesso; rifiuta con BULK_OPERATION_FAILED. |
saveAll(options?) / restoreAll(options?) | Esegue save o restore su ogni store; { concurrency } limita il lavoro in parallelo. |
clearStorageAll() / resetAll() / resetAllAndClearStorage() | Svuota i record, reimposta la memoria o entrambe le cose. |
list() / get(idOrKey) / size() | Ispeziona gli store registrati. |
subscribe(listener) / status() | Osserva gli eventi del manager e gli errori dei listener. |
destroyAll() | Distrugge ogni store registrato. |
Interfaccia dell’adattatore di archiviazione
Passa come storage un oggetto con questi metodi. Ogni metodo può restituire un valore o una Promise.
| Metodo | Descrizione |
|---|---|
getItem(key, context?) | Restituisce la stringa salvata oppure null. |
setItem(key, value, context?) | Salva la stringa. |
removeItem(key, context?) | Elimina il record. |
isAvailable?() | Indica in modo sincrono se l’archivio può essere usato. |
clear?() / close?() | Svuotamento e pulizia facoltativi. |
coordinationKey? | Oggetto condiviso tra i wrapper dello stesso archivio sottostante. |