restate / v1.0.0

API リファレンス

@kkwaenggwari/restate 1.0 のすべてのエクスポートと、その引数、戻り値、動作。

このページの内容エクスポートストアのメソッド保存ストアのメソッドpersistedRestate のオプションステータスのフィールドrestateManager と scope.managerストレージアダプターのインターフェース

エクスポート

Web でも React Native でも、すべて @kkwaenggwari/restate から import します。

エクスポート戻り値用途
restate(initial, updater | options?)ストアのフック共有のメモリストアを作る。
persistedRestate(initial, options)保存ストアのフックストレージを通じて復元・保存するストアを作る。
useRestateScope(factory?)ファクトリーの結果、またはスコープコンポーネントでストアを所有する。アンマウント後に破棄。
createRestateScope()RestateScopeReact の外でストアを所有する。終わったら destroy() を呼ぶ。
shallow(left, right)boolean選択結果を 1 階層だけ比較する。
batch(callback)コールバックの戻り値複数の変更の後に、購読者へ一度だけ通知する。
restateManagerRestateManager起動時のデータを待ち、グローバルなストアに一括操作を行う。
createIndexedDBStorage(options?)RestateStorage独自のデータベース名やストア名で IndexedDB アダプターを作る。
createMMKVStorage(options?)RestateStorage自分のインスタンスや設定で MMKV アダプターを作る。

ストアのメソッド

ストアはフックとして呼び出す関数で、次のメソッドを持ちます。

メンバー説明
useStore()値全体を返し、変更のたびに再レンダリングします。
useStore(selector, isEqual?)選択結果を返し、isEqual(デフォルトは Object.is)が変更ありと判断したときに再レンダリングします。
get()購読せずに現在の値を返します。
set(value | updater)値を置き換えるか、前の値から計算します。destroy() の後は無視されます。
reset()宣言した初期値に戻し、その値を返します。
subscribe(listener)変更のたびに listener(value, previous, event) を呼びます。購読解除の関数を返します。
subscribeSelector(selector, listener, isEqual?)選択結果が変わったときだけ listener を呼びます。
on(type, listener)change、reset、save、error などのイベントを監視します。
start() / stop() / isRunning()updater を手動で制御します。
destroy() / isDestroyed()リスナーと updater を解放します。その後の購読は STORE_DESTROYED を投げます。
getInitial() / getServerSnapshot() / getError()初期値、サーバースナップショット、最後のリスナーエラー。
id / kind一意の id。memory または persistent。

保存ストアのメソッド

persistedRestate は、次のメンバーが追加されたストアを返します。

メンバー説明
ready自動の読み込みが終わると、失敗した場合でも完了する Promise。status() を確認してください。
save()現在の値を書き込みます。実際に書き込んだ値で resolve されます。
restore()保存済みの値をメモリに読み込みます。
hasSaved()保存済みのレコードがあるかどうか。
clearStorage()保存済みのレコードを削除します。メモリは変わりません。
resetAndClearStorage()メモリを初期値に戻し、保存済みのレコードを削除します。
initialize()もう一度読み込みます。たとえば失敗したレコードを修正した後に使います。
status()凍結されたステータスのスナップショット。フィールドが変わるまで同じオブジェクトです。
useStatus(selector?, isEqual?)ステータス、または選択した部分が変わると再レンダリングするフック。
key / storageKey / storage論理キー、名前空間付きのキー、使用中のアダプター。

persistedRestate のオプション

key は必須です。ほかのオプションはすべて省略できます。

オプションデフォルト意味
key必須レコードの論理キー。
namespace"@kkwaenggwari/restate"保存するキーの接頭辞。空文字列にすると無効になります。
storageIndexedDB / MMKVプラットフォームのデフォルトの代わりに使うアダプター。
autoSavefalsetrue は変更のたびに保存し、{ delayMs } は入力の区切りを待ちます。
version / migrate1 / なしレコードのバージョンと、古いレコードを更新する方法。
validateなし保存の前と、復元またはマイグレーションの後に値をチェックします。
serializerJSON独自の serialize 関数と deserialize 関数。
operationTimeoutMs300001 つのストレージ操作の制限時間。
maxPendingOperations256許可される保留中の操作の数(実行中のものを含む)。
maxStorageCharacters5242880UTF-16 コード単位で数えた、エンコード後の値の最大サイズ。
updater / managed / serverSnapshot / onError—restate のオプションと同じです。

ステータスのフィールド

status() と useStatus() は次のフィールドを返します。

フィールド意味
ready自動の読み込みが終わった。
dirtyメモリが、最後に読み込み・保存・復元した値と異なる。
operation実行中のストレージ操作、または null。
pending完了していないストレージ操作の数(実行中のものを含む)。
blocked中断またはタイムアウトしたアダプター呼び出しが、まだ完了していない。
availableストレージを使えるかどうか。
error / observerError最後のストレージエラー / 最後のステータスリスナーのエラー。
lastSavedAt / lastRestoredAt最後に成功したときのエポックミリ秒、または null。

restateManager と scope.manager

各マネージャーは、自分に登録された永続ストアを管理します。

メンバー説明
readyアクセスした時点で登録されているストアを待ちます。BULK_OPERATION_FAILED で reject されます。
saveAll(options?) / restoreAll(options?)すべてのストアに save または restore を実行します。{ concurrency } で並列数を制限できます。
clearStorageAll() / resetAll() / resetAllAndClearStorage()レコードのクリア、メモリのリセット、またはその両方。
list() / get(idOrKey) / size()登録されたストアを調べます。
subscribe(listener) / status()マネージャーのイベントとリスナーのエラーを監視します。
destroyAll()登録されたすべてのストアを破棄します。

ストレージアダプターのインターフェース

次のメソッドを持つオブジェクトを storage に渡します。どのメソッドも値か Promise を返せます。

メソッド説明
getItem(key, context?)保存された文字列、または null を返します。
setItem(key, value, context?)文字列を保存します。
removeItem(key, context?)レコードを削除します。
isAvailable?()ストレージを使えるかどうかを同期的に返します。
clear?() / close?()省略可能なクリアと後片付け。
coordinationKey?同じ保存先をラップする複数のアダプター間で共有するオブジェクト。

ドキュメントを検索

すべてのガイドのタイトル、説明、本文から検索します。