@sh1n4ps/plasma-client
@sh1n4ps/plasma-client はブラウザ側のランタイムです。ストレージレイヤーとして
IndexedDB を利用し、クエリには @sh1n4ps/plasma-core と同じ DSL を使い、
独自の outbox + sync loop を保持します。
- Client factory —
createPlasmaClient(options),PlasmaClient<S, M>,PlasmaClientOptions - エンジン —
createIdbEngine,IdbEngine,IdbEngineOptions - IVM —
classifyIvm,IvmKind,IvmLiveQueryLike,RowChange,RowDelta,isIvmEligible - ファイルアップロード —
FileInput,ClientArg,PlasmaFileReadResult - WebSocket transport —
createWebSocketSubscription,WebSocketSubscriptionOptions - Error hook —
SyncClientError(options.onErrorに渡される union 型)
plasma アプリで最も重要な呼び出しはここにあります:
createPlasmaClient({ schema, mutators, endpoint, ... })— client を構築し、IDB ハンドルを開き、sync loop を準備します。.start()を呼ぶまでポーリングは開始しません。client.start()/client.stop()— ポーリングタイマー、 WebSocket 購読、blob アップロード worker を制御します。client.mutate(name, args)— ローカルエンジンに対して optimistic に mutator を実行し、outbox エントリをキューに積んで返します。client.db.select().from(...).live().subscribe(cb)— リアクティブな読み取りパスです。client.readFile(ref)—FileRefをバイト列に解決します (ローカルキャッシュまたは/sync/blob/*から)。
全 symbol インデックス
Section titled “全 symbol インデックス”reference/generated/plasma-client/src 配下にあります。
次に読むページ
Section titled “次に読むページ”- Quick Start — 最初の client
- メンタルモデル — client が 3 層構造のどこに位置づくか
- Live query (Guide) — subscribe / subscribeDelta / whenReady の詳細
- ファイルと blob (Guide) — アップロード / 読み取り / リトライのフロー