mcpField
E
elysiajs

elysiajs

github.com/elysiajs開発6814.2k 回インストール1 週間前に更新
リポジトリ

elysiajs について

Elysia v2プロジェクト向けの開発スキルで、バージョンに応じたAPIの使い方、型、検証、テストを案内します。既存のプロジェクト規約に沿い、作業内容に合った資料を参照できるよう支援します。

主な機能

  1. 01バージョンとプロジェクト規約の確認
  2. 02Elysiaのルーティングとライフサイクル規則
  3. 03スキーマと型推論の活用
  4. 04プラグインと型付き依存関係の構成
  5. 05ルートのテストと型チェック

活用シーン

  1. 01Elysia v2のルート実装・変更
  2. 02検証やエラー処理の挙動調査
  3. 03ルートのテストと推論型の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/elysiajs/skills --skill elysiajs

インストール後、Claude Code で/elysiajsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

metadata.json
references/
ai-sdk.md
api.md
better-auth.md
cheat-sheet.md
composition.md
cookie.md
deploy.md
drizzle.md
eden.md
errors.md
lifecycle.md
migration.md
observability.md
openapi.md
plugins.md
prisma.md
project-structure.md
react-email.md
runtimes.md
testing.md
validation.md
versions.md
websocket.md

詳細

Elysia v2

まずはこちら

  1. package.json、ロックファイル、ランタイム、アプリの構成を確認します。ユーザーから移行の依頼がない限り、既存のバージョンと規約を維持します。
  2. このスキルの対象は 2.0.0-rc.0 以降です。v1 の場合は、アップグレードの許可としてではなく、違いを把握するために 移行ガイド を使用します。別のベータ版と内容が異なる場合は、インストール済みの型を確認してください。
  3. タスクに必要なリファレンスのみを読みます。バージョン には、ソースのリビジョン、パッケージのベースライン、検証の制限が記載されています。
  4. 型を確認し、拒否される場合の経路も含めて、対象のルートを実際に動かします。テスト を参照してください。

重要なルール

  • オプションはハンドラーより前に指定します。 .get(path, options, handler)、.get(path, handler)、.get(path, staticValue) は有効です。
  • 返された型を維持します。 呼び出しをチェーンするか、結果を新しい変数にバインドします。let app = new Elysia() に再代入しても、推論される型は拡張されません。
  • フックはルートより前に登録します。 親のフックを .use(child) より前に登録すると、子のルートにも適用されます。onRequest はルーティング前に実行されるため、登録順の例外です。ライフサイクル を参照してください。
  • 型付きの依存関係を宣言します。 個別に定義された各インスタンスで、プロバイダーを .use() する必要があります。親からランタイムを継承しても、子に静的な型は付与されません。コンポジション を参照してください。
  • 共有プラグインには名前を付けます。 name と seed によってフックの重複登録を防ぎます。プラグインファクトリーは、呼び出すたびに実行されます。
  • 想定される失敗は返します。 status() と problem() は通常のレスポンスを送信します。Error を返すとエラーフックに渡され、そのルートの戻り値の型に含まれます。スローされたエラーは、その推論された型には含まれません。本番環境でも、明示したエラーの詳細が公開される場合があります。エラー を参照してください。
  • スキーマから型を推論します。 UnwrapSchema または UnwrapModels を使用します。TypeBox 1.x にはスキーマの .static がありません。ハンドラーはインラインに保ち、サービスにはプレーンな値を渡します。
  • コンテキストのライフタイムを選びます。 decorate と state は共有されます。derive は検証後、beforeHandle キュー内でリクエストごとに実行されます。
  • ガードのスキーマはデフォルトで上書きされます。 ルートは対応する継承済みスキーマを置き換えます。両方を適用するには、ガードで schema: 'merge' を使用します。
  • オプション機能は登録します。 ファイルの MIME 検証には検出器が必要です。WebSocket には elysia/websocket が必要です。Node には @elysia/node と Node 22.18 以降が必要です。
  • 最新の機能、例、リファレンスについては、必ず実際のドキュメントを確認してください。 このスキルはドキュメントのガイドであり、代わりになるものではありません。

Elysia 1 の場合:https://elysiajs.com/llms.txt
Elysia 2 の場合:https://next.elysiajs.com/llms.txt

最小限のアプリとテスト

プロジェクトで使用しているテストランナーを使います。この Bun の例ではポートを開きません。

// src/app.ts
import { Elysia, t } from 'elysia'

export const app = new Elysia()
	.get('/users/:id', {
		params: t.Object({ id: t.Number() })
	}, ({ params }) => ({ id: params.id }))

export type App = typeof app
// test/app.test.ts
import { expect, test } from 'bun:test'
import { app } from '../src/app'

test('coerces the id and rejects nonnumeric input', async () => {
	const response = await app.handle('/users/42')
	expect(response.status).toBe(200)
	expect(await response.json()).toEqual({ id: 42 })
	expect((await app.handle('/users/nope')).status).toBe(422)
})

bun test とプロジェクトの型チェックを実行します。新規プロジェクトの場合は、ランタイムのセットアップ を参照してください。.listen() はプロセスのエントリーポイントに置きます。プロジェクト構成 を参照してください。

リファレンスを選ぶ

タスク読むもの
バージョン、ピア依存関係、ソースとドキュメントの違いバージョン
設定、ルーティング、コンテキスト、ファイル、ストリームコア API
フック、パース、派生コンテキスト、破棄ライフサイクル
プラグイン、フックのスコープ、ガード、マクロコンポジション
スキーマ、型変換、アップロード、推論される型バリデーション
想定されるエラー、例外マッピング、本番環境でのレスポンスエラー
フォルダー、サービス、モデル、依存性注入プロジェクト構成
Cookie の値、バリデーション、署名Cookie
WebSocket ルートWebSocket
ルートのテスト、型チェック、遅延プラグインテスト
型付きクライアント呼び出しEden
OpenAPI スキーマとドキュメントOpenAPI
Bun、Node、Deno、Workers、フロントエンドフレームワークとの統合ランタイム
バンドル、AOT、バイナリ、Docker、デプロイデプロイ
トレース、スパン、リクエストの所要時間オブザーバビリティ
CORS、JWT、静的ファイル、cron、HTML、GraphQL公式プラグイン
データベースと外部ライブラリDrizzle、Prisma、Better Auth、AI SDK、React Email
v1 の構文と移行移行
パターンから例を探すパターン索引

新規プロジェクトのデフォルト設定

Bun と t スキーマをデフォルトとして使用します。小規模なアプリは 1 つのファイルにまとめ、必要に応じて機能ごとに分割します。型付きクライアントには Eden を、API ドキュメントには OpenAPI を追加します。

コメント