TypeScript のための次世代 Dependency Injection
コンパイラーが依存グラフを検証。高速な解決と 3 KiB 未満のランタイム。ビジネスロジックは通常の TypeScript のまま。
pnpm add @inferdi/inferdi
記録された本番ビルドの 8 ラウンドのベンチマーク中央値。アプリ全体のスループットではなく、コンテナーのオーバーヘッドを測定しています。 .
登録するたびに新しいコンテナー型が返され、キー、値、ライフタイム、非同期エッジ、スコープ要件が記録されます。
import { Container } from '@inferdi/inferdi'
class Logger {
info(message: string) {}
}
class Database {
findUser(id: string) {
return { id }
}
}
class UserRepo {
constructor(readonly logger: Logger, readonly database: Database) {}
}
const container = new Container()
.registerClass('logger', Logger, [])
.registerClass('database', Database, [])
.registerClass('users', UserRepo, ['logger', 'database'])
const users = container.get('users')
React 19型付きコンテキスト、Suspense フック、管理対象スコープ。
Fastify 5リクエストごとの型付きスコープとライフサイクルでの破棄。
Hono 4Workers、Bun、Node 向けの型付きコンテキスト変数。
Koa 3ミドルウェアのライフサイクルに沿うリクエストスコープ。
Express 5ミドルウェアとルート向けの型付きリクエストスコープ。
Elysia 1ルート型をリクエストサービスまで運びます。依存グラフを一か所にまとめると、選択した内容を確認し、変更しやすくなります。