restate / v1.0.0
Referência da API
Todos os exports de @kkwaenggwari/restate 1.0, com argumentos, valores de retorno e comportamento.
Nesta página
ExportsMétodos do storeMétodos do store salvoOpções de persistedRestateCampos de statusrestateManager e scope.managerInterface de adaptador de armazenamentoExports
Tudo é importado de @kkwaenggwari/restate na web e no React Native.
| Export | Retorna | Use para |
|---|---|---|
restate(initial, updater | options?) | Hook do store | Criar um store compartilhado em memória. |
persistedRestate(initial, options) | Hook do store salvo | Criar um store que restaura e salva pelo armazenamento. |
useRestateScope(factory?) | Resultado da factory ou scope | Ser dono de stores em um componente; destruídos depois da desmontagem. |
createRestateScope() | RestateScope | Ser dono de stores fora do React; chame destroy() ao terminar. |
shallow(left, right) | boolean | Comparar seleções em um nível. |
batch(callback) | Resultado do callback | Notificar os assinantes uma vez depois de várias mudanças. |
restateManager | RestateManager | Esperar os dados de inicialização e executar operações em lote nos stores globais. |
createIndexedDBStorage(options?) | RestateStorage | Criar um adaptador de IndexedDB com nome de banco ou de store próprio. |
createMMKVStorage(options?) | RestateStorage | Criar um adaptador de MMKV com sua própria instância ou configuração. |
Métodos do store
Um store é uma função que você chama como hook, com estes métodos.
| Membro | Descrição |
|---|---|
useStore() | Retorna o valor inteiro e renderiza de novo a cada mudança. |
useStore(selector, isEqual?) | Retorna a seleção; renderiza de novo quando isEqual (por padrão Object.is) indica mudança. |
get() | Valor atual, sem assinar. |
set(value | updater) | Substitui o valor ou o calcula a partir do anterior. Ignorado depois de destroy(). |
reset() | Restaura o valor inicial declarado e o retorna. |
subscribe(listener) | Chama listener(value, previous, event) depois de cada mudança; retorna uma função para cancelar a assinatura. |
subscribeSelector(selector, listener, isEqual?) | Chama listener só quando a seleção muda. |
on(type, listener) | Escuta eventos como change, reset, save ou error. |
start() / stop() / isRunning() | Controla o updater manualmente. |
destroy() / isDestroyed() | Libera os listeners e o updater. Assinaturas posteriores lançam STORE_DESTROYED. |
getInitial() / getServerSnapshot() / getError() | Valor inicial, snapshot do servidor e o último erro de listener. |
id / kind | id único; memory ou persistent. |
Métodos do store salvo
persistedRestate retorna um store com estes membros adicionais.
| Membro | Descrição |
|---|---|
ready | Promise que se resolve quando o carregamento automático termina, mesmo que tenha falhado. Verifique status(). |
save() | Grava o valor atual; resolve com o valor efetivamente gravado. |
restore() | Lê o valor salvo para a memória. |
hasSaved() | Se existe um registro salvo. |
clearStorage() | Apaga o registro salvo; a memória não muda. |
resetAndClearStorage() | Redefine a memória para o valor inicial e apaga o registro salvo. |
initialize() | Carrega de novo, por exemplo depois de corrigir um registro com falha. |
status() | Snapshot congelado do status; o mesmo objeto até algum campo mudar. |
useStatus(selector?, isEqual?) | Hook que renderiza de novo quando o status ou a parte selecionada muda. |
key / storageKey / storage | Chave lógica, chave com namespace e o adaptador em uso. |
Opções de persistedRestate
key é obrigatória. Todas as outras opções são opcionais.
| Opção | Padrão | Significado |
|---|---|---|
key | obrigatória | Chave lógica do registro. |
namespace | "@kkwaenggwari/restate" | Prefixo da chave armazenada; uma string vazia o desativa. |
storage | IndexedDB / MMKV | Adaptador usado no lugar do padrão da plataforma. |
autoSave | false | true salva depois de cada mudança; { delayMs } espera uma pausa. |
version / migrate | 1 / nenhuma | Versão do registro e como atualizar registros antigos. |
validate | nenhuma | Verifica os valores antes de salvar e depois de restaurar ou migrar. |
serializer | JSON | Funções serialize e deserialize próprias. |
operationTimeoutMs | 30000 | Tempo máximo de uma operação de armazenamento. |
maxPendingOperations | 256 | Operações pendentes permitidas, incluindo a ativa. |
maxStorageCharacters | 5242880 | Maior valor codificado, em unidades de código UTF-16. |
updater / managed / serverSnapshot / onError | — | Igual às opções de restate. |
Campos de status
status() e useStatus() retornam estes campos.
| Campo | Significado |
|---|---|
ready | O carregamento automático terminou. |
dirty | A memória difere do último valor carregado, salvo ou restaurado. |
operation | A operação de armazenamento em andamento, ou null. |
pending | Operações de armazenamento ainda não concluídas, incluindo a ativa. |
blocked | Uma chamada ao adaptador cancelada ou expirada ainda não terminou. |
available | Se o armazenamento pode ser usado. |
error / observerError | Último erro de armazenamento; último erro de listener de status. |
lastSavedAt / lastRestoredAt | Milissegundos epoch do último sucesso, ou null. |
restateManager e scope.manager
Cada manager acompanha os stores persistentes registrados nele.
| Membro | Descrição |
|---|---|
ready | Espera os stores registrados no momento do acesso; rejeita com BULK_OPERATION_FAILED. |
saveAll(options?) / restoreAll(options?) | Executa save ou restore em cada store; { concurrency } limita o trabalho em paralelo. |
clearStorageAll() / resetAll() / resetAllAndClearStorage() | Limpar registros, redefinir a memória ou as duas coisas. |
list() / get(idOrKey) / size() | Inspecionar os stores registrados. |
subscribe(listener) / status() | Observar eventos do manager e erros de listeners. |
destroyAll() | Destruir todos os stores registrados. |
Interface de adaptador de armazenamento
Passe como storage um objeto com estes métodos. Todo método pode retornar um valor ou uma Promise.
| Método | Descrição |
|---|---|
getItem(key, context?) | Retorna a string salva ou null. |
setItem(key, value, context?) | Guarda a string. |
removeItem(key, context?) | Apaga o registro. |
isAvailable?() | Informa de forma síncrona se o armazenamento pode ser usado. |
clear?() / close?() | Limpeza e encerramento opcionais. |
coordinationKey? | Objeto compartilhado entre wrappers do mesmo armazenamento subjacente. |