restate / v1.0.0
Referencia de la API
Todos los exports de @kkwaenggwari/restate 1.0, con sus argumentos, valores de retorno y comportamiento.
En esta página
ExportsMétodos del storeMétodos del store guardadoOpciones de persistedRestateCampos de estadorestateManager y scope.managerInterfaz del adaptador de almacenamientoExports
Todo se importa desde @kkwaenggwari/restate en la web y en React Native.
| Export | Devuelve | Úsalo para |
|---|---|---|
restate(initial, updater | options?) | Hook del store | Crear un store compartido en memoria. |
persistedRestate(initial, options) | Hook del store guardado | Crear un store que se restaura y se guarda mediante el almacenamiento. |
useRestateScope(factory?) | Resultado de la factoría o scope | Ser dueño de stores en un componente; se destruyen tras el desmontaje. |
createRestateScope() | RestateScope | Ser dueño de stores fuera de React; llama a destroy() al terminar. |
shallow(left, right) | boolean | Comparar selecciones a un nivel de profundidad. |
batch(callback) | Resultado del callback | Notificar a los suscriptores una vez tras varios cambios. |
restateManager | RestateManager | Esperar los datos de arranque y ejecutar operaciones masivas en los stores globales. |
createIndexedDBStorage(options?) | RestateStorage | Crear un adaptador de IndexedDB con un nombre de base de datos o de almacén propio. |
createMMKVStorage(options?) | RestateStorage | Crear un adaptador de MMKV con tu propia instancia o configuración. |
Métodos del store
Un store es una función que llamas como hook, con estos métodos.
| Miembro | Descripción |
|---|---|
useStore() | Devuelve el valor completo y se vuelve a renderizar en cada cambio. |
useStore(selector, isEqual?) | Devuelve la selección; se vuelve a renderizar cuando isEqual (por defecto Object.is) detecta un cambio. |
get() | Valor actual, sin suscribirse. |
set(value | updater) | Reemplaza el valor o lo calcula a partir del anterior. Se ignora tras destroy(). |
reset() | Restaura el valor inicial declarado y lo devuelve. |
subscribe(listener) | Llama a listener(value, previous, event) tras cada cambio; devuelve una función para cancelar la suscripción. |
subscribeSelector(selector, listener, isEqual?) | Llama a listener solo cuando cambia la selección. |
on(type, listener) | Escucha eventos como change, reset, save o error. |
start() / stop() / isRunning() | Controla el updater a mano. |
destroy() / isDestroyed() | Libera los listeners y el updater. Las suscripciones posteriores lanzan STORE_DESTROYED. |
getInitial() / getServerSnapshot() / getError() | Valor inicial, snapshot del servidor y último error de un listener. |
id / kind | id único; memory o persistent. |
Métodos del store guardado
persistedRestate devuelve un store con estos miembros adicionales.
| Miembro | Descripción |
|---|---|
ready | Promise que se resuelve cuando termina la carga automática, aunque haya fallado. Consulta status(). |
save() | Escribe el valor actual; se resuelve con el valor que realmente se escribió. |
restore() | Lee el valor guardado y lo pasa a memoria. |
hasSaved() | Si existe un registro guardado. |
clearStorage() | Borra el registro guardado; la memoria no cambia. |
resetAndClearStorage() | Restablece la memoria al valor inicial y borra el registro guardado. |
initialize() | Vuelve a cargar, por ejemplo después de arreglar un registro que falló. |
status() | Snapshot congelado del estado; es el mismo objeto hasta que cambia un campo. |
useStatus(selector?, isEqual?) | Hook que se vuelve a renderizar cuando cambia el estado o la parte seleccionada. |
key / storageKey / storage | Clave lógica, clave con espacio de nombres y adaptador en uso. |
Opciones de persistedRestate
key es obligatoria. Todas las demás opciones son opcionales.
| Opción | Por defecto | Significado |
|---|---|---|
key | obligatoria | Clave lógica del registro. |
namespace | "@kkwaenggwari/restate" | Prefijo de la clave guardada; una cadena vacía lo desactiva. |
storage | IndexedDB / MMKV | Adaptador que se usa en lugar del predeterminado de la plataforma. |
autoSave | false | true guarda tras cada cambio; { delayMs } espera a una pausa. |
version / migrate | 1 / ninguna | Versión del registro y cómo actualizar los registros antiguos. |
validate | ninguna | Comprueba los valores antes de guardar y después de restaurar o migrar. |
serializer | JSON | Funciones serialize y deserialize propias. |
operationTimeoutMs | 30000 | Tiempo máximo de una operación de almacenamiento. |
maxPendingOperations | 256 | Operaciones pendientes permitidas, incluida la activa. |
maxStorageCharacters | 5242880 | Tamaño máximo del valor codificado, en unidades de código UTF-16. |
updater / managed / serverSnapshot / onError | — | Igual que las opciones de restate. |
Campos de estado
status() y useStatus() devuelven estos campos.
| Campo | Significado |
|---|---|
ready | La carga automática ha terminado. |
dirty | La memoria difiere del último valor cargado, guardado o restaurado. |
operation | La operación de almacenamiento en curso, o null. |
pending | Operaciones de almacenamiento sin terminar, incluida la activa. |
blocked | Una llamada al adaptador cancelada o expirada aún no ha terminado. |
available | Si se puede usar el almacenamiento. |
error / observerError | Último error de almacenamiento; último error de un listener de estado. |
lastSavedAt / lastRestoredAt | Milisegundos epoch del último éxito, o null. |
restateManager y scope.manager
Cada manager sigue los stores persistentes registrados en él.
| Miembro | Descripción |
|---|---|
ready | Espera los stores registrados en el momento del acceso; se rechaza con BULK_OPERATION_FAILED. |
saveAll(options?) / restoreAll(options?) | Ejecuta save o restore en todos los stores; { concurrency } limita el trabajo en paralelo. |
clearStorageAll() / resetAll() / resetAllAndClearStorage() | Borra registros, restablece la memoria o ambas cosas. |
list() / get(idOrKey) / size() | Inspecciona los stores registrados. |
subscribe(listener) / status() | Observa los eventos del manager y los errores de los listeners. |
destroyAll() | Destruye todos los stores registrados. |
Interfaz del adaptador de almacenamiento
Pasa como storage un objeto con estos métodos. Cada método puede devolver un valor o una Promise.
| Método | Descripción |
|---|---|
getItem(key, context?) | Devuelve la cadena guardada o null. |
setItem(key, value, context?) | Guarda la cadena. |
removeItem(key, context?) | Borra el registro. |
isAvailable?() | Indica de forma síncrona si se puede usar el almacenamiento. |
clear?() / close?() | Vaciado y limpieza opcionales. |
coordinationKey? | Objeto compartido entre envoltorios del mismo almacenamiento subyacente. |