ストレージユーティリティ
Named stateが保存されているか確認し、実際のストレージと保存キー情報を照会します。
hasRxState
nameとストレージオプションを指定して、該当位置に値が存在するかをbooleanで確認します。
ts
const exists = await hasRxState("count", {
storage: "sessionstorage",
});
// booleanfindRxStateStorages
nameのみを渡すと、値が確認された実際のストレージバックエンドを重複なしで配列で返します。autoで保存した値も結果では実際に選択されたバックエンドで返されます。
ts
const storages = await findRxStateStorages("count");
// RxStateResolvedStorage[]
// 예: ["indexeddb", "localstorage", "sessionstorage"]getRxStateStorageInfo
確認された保存位置を常に配列で返します。同じnameが複数のストレージや異なるname/storeName/keyPrefix設定に存在する場合、それぞれ別項目として返されます。2番目の引数にストレージオプションを渡すと、その条件で照会できます。
ts
const infos = await getRxStateStorageInfo("count");
const indexedDbInfos = await getRxStateStorageInfo("count", {
storage: "indexeddb",
});
// RxStateStorageInfo[]ts
interface RxStateStorageInfo {
key: string;
storageKey: string;
fullKey: string;
storage: RxStateResolvedStorage;
name: string;
storeName: string;
keyPrefix: string;
}storageKeyはストレージに渡されるアイテムキーで、fullKeyはlocalStorageのようにフラットキーを露出するバックエンドで確認できる全体のキーです。ストレージにはautoではなく実際のバックエンドが返されます。
実際の動作テスト
下のボタンで同じテストキーを複数のストレージに実際に保存した後、3つのAPIの返り値をすぐに確認できます。
テスト値を保存
同じnameを複数のストレージに保存した後、3つのユーティリティの実際の返り値を確認できます。
照会ストレージ
ローカルストレージ
まだ実行していません。
リデューサーストレージユーティリティ
リデューサーも同様にhasRxReducer、findRxReducerStorages、getRxReducerStorageInfoを提供します。
ts
await hasRxReducer("cart", { storage: "sessionstorage" });
await findRxReducerStorages("cart");
await getRxReducerStorageInfo("cart");
await getRxReducerStorageInfo("cart", { storage: "indexeddb" });