開発ガイド
繋ぎ屋 (tsunagiya) への貢献・開発参加のためのガイドです。
開発環境セットアップ
Deno v2.xが必要です。
bash
deno --version # v2.x であることを確認セットアップ後、動作確認を行います。
bash
deno task check # 型チェック + lint + format確認コマンド一覧
| コマンド | 説明 |
|---|---|
deno task test | テスト実行 |
deno task check | 型チェック + lint + format確認 |
deno task fmt | コード自動整形 |
deno publish --dry-run | JSR 公開プレビュー |
bash
deno task test # テスト実行
deno task check # 型チェック + lint + format確認
deno task fmt # フォーマット
deno publish --dry-run # JSR公開プレビューディレクトリ構造
src/
├── mod.ts # メインエントリポイント
├── pool.ts # MockPool
├── relay.ts # MockRelay
├── websocket.ts # MockWebSocket
├── filter.ts # フィルターマッチング
├── auth.ts # NIP-42 AUTH
├── types.ts # 型定義
├── logger.ts # ログ機能
└── testing/
├── mod.ts # テスト支援エントリポイント
├── event_builder.ts
├── filter_builder.ts
├── assertions.ts
├── stream.ts
└── snapshot.ts
tests/
├── pool_test.ts
├── relay_test.ts
├── websocket_test.ts
├── filter_test.ts
├── auth_test.ts
├── integration_test.ts
└── testing/
├── event_builder_test.ts
├── filter_builder_test.ts
├── assertions_test.ts
├── stream_test.ts
└── snapshot_test.ts開発ワークフロー
コードを変更したら、以下の順序でチェックを行います。
deno task fmt— コード自動整形(必ず最初に実行)deno task test— テスト実行deno task check— 品質確認(型チェック + lint + format確認)- エラーがあれば修正し、再度
deno task fmtから実行 - 全チェックパス後に commit
コーディング規約
- ゼロ外部依存(Deno 標準ライブラリのみ)
- Node.js 互換性を維持
- TypeScript strict mode
any禁止、unknownを使う- テストで必ず
pool.uninstall()を呼ぶ(finally使用) - エラーメッセージは英語
- JSDoc コメントは日本語可、公開 API には必須
E2E テストの実行
Deno
bash
deno task test # ユニットテスト実行(examples/ を除外)
deno task test:all # 全テスト実行(ユニット + E2E)deno task test は tests/ 配下のユニットテストを実行します。 deno task test:all は examples/ 配下の E2E テストも含めた全テストを実行します。
Node.js 互換モード
globalThis.WebSocket の差し替えが前提のため、Node.js で使用する場合は WebSocket polyfill(ws パッケージ等)が必要です。