@gurezo/web-serial-rxjs の利用方法を説明する手書き Markdown Guide です。公開 API の型・引数・戻り値の網羅的な仕様は 英語 TypeDoc API Reference を参照してください。
canonical なドキュメント構成は ARCHITECTURE.ja.md を参照してください。
SerialSession の公開面、state$ / errors$ の位置付け、最小サンプルdisconnect$ / dispose$ のタイミングと subscription 解除(Angular / React / Vue / Svelte / Vanilla TS)lines$ / receive$ で応答待ち、コマンドの直列化SerialError、型の補足、差し替え可能な SerialSession 契約、対応範囲(テキスト / バイナリ / 文字コード)(TypeDoc の代替ではありません)receiveBytes$ の go / no-go(未実装)SerialSession、Vitest 例、DI 注入(npm 非同梱)既存コードから移行する場合:
receiveReplay$、isBrowserSupported()、オプション整理)state$ discriminated union、SerialSessionStatus、context.cause| ドキュメント | 用途 |
|---|---|
| 概要 | 公開面の早見表、機能概要、最小サンプル |
| クイックスタート | インストールから切断までの基本フロー |
| Framework 別 session ライフサイクル | framework 別の disconnect$ / dispose$ タイミングと subscription 解除 |
| ブラウザサポートと公式サポート方針 | API 実装状況と公式サポート / 未検証の区別 |
| バージョンサポートとリリース方針 | SemVer、非推奨、サポート範囲(LTS なし) |
| Bundler / framework 互換性の検証方針 | CI と Examples の区別、ESM / RxJS / 型(全 bundler matrix なし) |
| Bundle size と tree-shaking | library-only サイズのスナップショットと再現可能な測定 |
| Verified environment 掲載基準 | 実機結果掲載時の最低検証項目(デバイスカタログなし) |
| receive$ / lines$ / terminalText$ の選び方 | 3 系統の受信ストリームの判断ガイド |
| 通信パターン別 Recipes | パターン → Guide / Recipe 索引(デバイス互換の保証ではない) |
| 高度な使用方法 | 応用パターンと RxJS レシピ |
| Request / Response | コマンド送信後の応答待ち(コア request$ なし) |
| タイムアウト・キャンセル・再試行 | タイムアウト、破棄時キャンセル、回数制限付き再試行(コア自動再試行なし) |
| API の概念と設計メモ | オプション・エラーコード・型の表形式補足、差し替え可能な SerialSession 契約、対応範囲 |
| バイナリ受信 API — 設計判断 | 設計検討: receiveBytes$ は当面追加しない。go / no-go 条件 |
| 実機なしテスト | 制御可能な Fake SerialSession、Vitest / Angular / React 例(npm 非同梱) |
| トラブルシューティング | よくある問題の確認手順、Recovery Matrix、報告時の情報 |
| v3 → v4 マイグレーション | Phase 1+2 公開 API 整理の統合ガイド |
| v2 → v3 マイグレーション | v3 canonical API への移行手順 |
| v1 → v2 マイグレーション | v1 廃止 API の置き換え |
| Phase 5(アーカイブ) | 旧 v1 ドキュメントの参照用 |
state$ — 接続ライフサイクルの canonical source。state.status と SerialSessionStatus で分岐し、connected 時は state.portInfo を利用するerrors$ — fatal / non-fatal エラーの canonical event channel。SerialError.is(SerialErrorCode.*) で分岐するdispose$() — セッション破棄の唯一の API(購読により実行)isWebSerialSupported() — トップレベルの同期 feature detection(セッションメソッドではない。サポート保証ではない)— ブラウザサポート を参照destroy$、isConnected$、portInfo$、getPortInfo()、getCurrentPort()、receiveReplay$、isBrowserSupported())は v4 への移行 を参照