Next.js App Router
インストール:withDI を使います。
Express
Express adapter を使うと、1 request につき 1 scope を作り、request object から取得できます。Hono
Hono アダプターはエッジ向けのリクエストスコープに使います。Fastify
@wyrly/fastify は Fastify 5 向けの diPlugin を提供します(リクエストごとに 1 scope、レスポンスの
finish / close で自動 dispose)。peer: fastify ^5。fastify-plugin によりルートインスタンス全体に
hook が適用されます。
@wyrly/apollo や @wyrly/yoga と組み合わせます。
Fresh
Fresh 2.x アプリケーションでは@wyrly/fresh を使います。このパッケージは JSR で公開されています。
GraphQL
@wyrly/graphql で各 GraphQL リクエストに DI スコープを割り当てます。
GraphQL Yoga / Apollo Server
v2.2.0 で専用パッケージ予定。それまでは plugin で dispose します。Adapter はアプリの外側の層に置く
フレームワークアダプターはアプリケーションの外側の層に置いてください。ドメインオブジェクトや use case はRequest、Response、フレームワークのコンテキストオブジェクトではなく、ポートや値オブジェクトに依存すべきです。