restate / v1.0.0
Référence de l’API
Chaque export de @kkwaenggwari/restate 1.0, avec ses arguments, ses valeurs de retour et son comportement.
Sur cette page
ExportsMéthodes du storeMéthodes du store enregistréOptions de persistedRestateChamps de statutrestateManager et scope.managerInterface d’un adaptateur de stockageExports
Tout s’importe depuis @kkwaenggwari/restate, sur le web comme sur React Native.
| Export | Renvoie | À utiliser pour |
|---|---|---|
restate(initial, updater | options?) | Hook de store | Créer un store partagé en mémoire. |
persistedRestate(initial, options) | Hook de store enregistré | Créer un store qui se restaure et s’enregistre via le stockage. |
useRestateScope(factory?) | Résultat de la factory ou scope | Posséder des stores dans un composant ; détruits après le démontage. |
createRestateScope() | RestateScope | Posséder des stores en dehors de React ; appelez destroy() à la fin. |
shallow(left, right) | boolean | Comparer les sélections sur un niveau. |
batch(callback) | Résultat du callback | Notifier les abonnés une seule fois après plusieurs changements. |
restateManager | RestateManager | Attendre les données de démarrage et lancer des opérations groupées sur les stores globaux. |
createIndexedDBStorage(options?) | RestateStorage | Créer un adaptateur IndexedDB avec un nom de base ou de magasin personnalisé. |
createMMKVStorage(options?) | RestateStorage | Créer un adaptateur MMKV avec votre propre instance ou configuration. |
Méthodes du store
Un store est une fonction que vous appelez comme un hook, dotée de ces méthodes.
| Membre | Description |
|---|---|
useStore() | Renvoie la valeur entière et se re-rend à chaque changement. |
useStore(selector, isEqual?) | Renvoie la sélection ; se re-rend quand isEqual (Object.is par défaut) signale un changement. |
get() | Valeur actuelle, sans abonnement. |
set(value | updater) | Remplace la valeur ou la calcule à partir de la précédente. Ignoré après destroy(). |
reset() | Restaure la valeur initiale déclarée et la renvoie. |
subscribe(listener) | Appelle listener(value, previous, event) après chaque changement ; renvoie une fonction de désabonnement. |
subscribeSelector(selector, listener, isEqual?) | N’appelle listener que lorsque la sélection change. |
on(type, listener) | Écoute des événements comme change, reset, save ou error. |
start() / stop() / isRunning() | Pilote l’updater à la main. |
destroy() / isDestroyed() | Libère les listeners et l’updater. Les abonnements suivants lèvent STORE_DESTROYED. |
getInitial() / getServerSnapshot() / getError() | Valeur initiale, snapshot serveur et dernière erreur de listener. |
id / kind | id unique ; memory ou persistent. |
Méthodes du store enregistré
persistedRestate renvoie un store doté de ces membres supplémentaires.
| Membre | Description |
|---|---|
ready | Promise résolue quand le chargement automatique se termine, même en cas d’échec. Vérifiez status(). |
save() | Écrit la valeur actuelle ; se résout avec la valeur réellement écrite. |
restore() | Lit la valeur enregistrée en mémoire. |
hasSaved() | Indique si un enregistrement sauvegardé existe. |
clearStorage() | Supprime l’enregistrement sauvegardé ; la mémoire ne change pas. |
resetAndClearStorage() | Réinitialise la mémoire à la valeur initiale et supprime l’enregistrement sauvegardé. |
initialize() | Recharge, par exemple après avoir corrigé un enregistrement en échec. |
status() | Instantané figé du statut ; le même objet tant qu’aucun champ ne change. |
useStatus(selector?, isEqual?) | Hook qui se re-rend quand le statut ou la partie sélectionnée change. |
key / storageKey / storage | Clé logique, clé avec espace de noms et adaptateur utilisé. |
Options de persistedRestate
key est obligatoire. Toutes les autres options sont facultatives.
| Option | Défaut | Signification |
|---|---|---|
key | obligatoire | Clé logique de l’enregistrement. |
namespace | "@kkwaenggwari/restate" | Préfixe de la clé stockée ; une chaîne vide le désactive. |
storage | IndexedDB / MMKV | Adaptateur à utiliser à la place de celui par défaut de la plateforme. |
autoSave | false | true enregistre après chaque changement ; { delayMs } attend une pause. |
version / migrate | 1 / aucun | Version de l’enregistrement et façon de mettre à niveau les anciens. |
validate | aucun | Vérifie les valeurs avant l’enregistrement et après la restauration ou la migration. |
serializer | JSON | Fonctions serialize et deserialize personnalisées. |
operationTimeoutMs | 30000 | Durée maximale d’une opération de stockage. |
maxPendingOperations | 256 | Opérations en attente autorisées, y compris celle en cours. |
maxStorageCharacters | 5242880 | Taille maximale de la valeur encodée, en unités de code UTF-16. |
updater / managed / serverSnapshot / onError | — | Identique aux options de restate. |
Champs de statut
status() et useStatus() renvoient ces champs.
| Champ | Signification |
|---|---|
ready | Le chargement automatique est terminé. |
dirty | La mémoire diffère de la dernière valeur chargée, enregistrée ou restaurée. |
operation | L’opération de stockage en cours, ou null. |
pending | Opérations de stockage non terminées, y compris celle en cours. |
blocked | Un appel à l’adaptateur annulé ou expiré n’est pas encore terminé. |
available | Indique si le stockage est utilisable. |
error / observerError | Dernière erreur de stockage ; dernière erreur d’un listener de statut. |
lastSavedAt / lastRestoredAt | Millisecondes epoch du dernier succès, ou null. |
restateManager et scope.manager
Chaque manager suit les stores persistants qui y sont enregistrés.
| Membre | Description |
|---|---|
ready | Attend les stores enregistrés au moment de l’accès ; rejette avec BULK_OPERATION_FAILED. |
saveAll(options?) / restoreAll(options?) | Lance save ou restore pour chaque store ; { concurrency } limite le travail en parallèle. |
clearStorageAll() / resetAll() / resetAllAndClearStorage() | Vide les enregistrements, réinitialise la mémoire, ou les deux. |
list() / get(idOrKey) / size() | Inspecte les stores enregistrés. |
subscribe(listener) / status() | Observe les événements du manager et les erreurs des listeners. |
destroyAll() | Détruit tous les stores enregistrés. |
Interface d’un adaptateur de stockage
Passez en storage un objet doté de ces méthodes. Chaque méthode peut renvoyer une valeur ou une Promise.
| Méthode | Description |
|---|---|
getItem(key, context?) | Renvoie la chaîne enregistrée ou null. |
setItem(key, value, context?) | Enregistre la chaîne. |
removeItem(key, context?) | Supprime l’enregistrement. |
isAvailable?() | Indique de façon synchrone si le stockage est utilisable. |
clear?() / close?() | Vidage et nettoyage facultatifs. |
coordinationKey? | Objet partagé entre les enveloppes d’un même stockage sous-jacent. |