@unikvs/session-storage
@unikvs/session-storage の SessionStorage。sessionStorage に文字列を保存するストレージの使い方を説明します。
概要
@unikvs/session-storage ブラウザー専用 は sessionStorage に文字列を保存するストレージです。タブを開いている間だけ残したい一時的な値の保存に使います。
nameはSessionStorageです。isOpenは常にtrueです。openは利用可否を確認し、closeは何も行いません。- 論理キーには
keyPrefixを付けて保存します。
インストールは次のコマンドで行います。
npm install @unikvs/session-storagepnpm add @unikvs/session-storageyarn add @unikvs/session-storagebun add @unikvs/session-storagenub add @unikvs/session-storageaube add @unikvs/session-storage使い方
SessionStorage は IStorage を実装しています。UniKvs には persist() で渡します。
import { SessionStorage } from "@unikvs/session-storage";
コンストラクターの引数は次のとおりです。
keyPrefix?string | undefined
すべてのキーに付ける接頭辞です。
string | undefined"unikvs:"allowClearWithoutPrefix?boolean | undefined
空の接頭辞での clear を許可するかどうかです。
boolean | undefinedfalsestorage?Storage | undefined
使う Storage です。省略した場合は globalThis.sessionStorage を使います。
Storage | undefined以下は、文字列を保存して読み戻す例です。
import { SessionStorage } from "@unikvs/session-storage";
import * as unikvs from "unikvs";
const kvs = new unikvs.Builder<{
greeting: unikvs.PlainValue<string>;
}>()
.persist(new SessionStorage())
.build();
await kvs.open();
await kvs.set("greeting", "hello");
const value = await kvs.get("greeting");
console.log(value); // "hello"
await kvs.close();
データ型
| 操作 | 対応するデータ型 |
|---|---|
write・read |
文字列 |
- 文字列のみを保存します。
- オブジェクトなどを保存する場合は、文字列に変換してから渡してください。
- ストリーム(
getWritable・getReadable)には対応していません。
エラー
このパッケージが投げるエラーは次のとおりです。
KeyNotFoundError
意味
指定したキーが存在しない場合に投げます。@unikvs/core の共通エラーです。
対処方法
exists で確認してから読み出してください。
例
以下は、KeyNotFoundError を捕捉する例です。
import { KeyNotFoundError } from "@unikvs/session-storage";
try {
await kvs.get("missing-key");
} catch (ex) {
if (ex instanceof KeyNotFoundError) {
console.log("キーが見つかりません");
} else {
throw ex;
}
}
ClearWithoutPrefixNotAllowedError
意味
keyPrefix が空で allowClearWithoutPrefix が false のまま clear を呼んだ場合に投げます。この制限は sessionStorage 全体の削除を防ぎます。
対処方法
空でない keyPrefix を設定するか、allowClearWithoutPrefix: true を指定してください。
SessionStorageNotAvailableError
意味
sessionStorage が使えない環境で操作した場合に投げます。注入された storage がなく、実行環境にも sessionStorage がありません。
対処方法
options.storage に Storage を注入するか、対応するブラウザーで使ってください。