L’injection de dépendances nouvelle génération pour TypeScript
Des graphes vérifiés par le compilateur. Une résolution rapide. Un runtime de moins de 3 KiB. Ta logique métier reste du TypeScript ordinaire.
pnpm add @inferdi/inferdi
Une résolution en cache commence par un seul Map.get(). Le mode par défaut conserve les vérifications à l’exécution lors d’une résolution à froid.
Méthode et résultats completsMédianes du benchmark de production enregistré sur huit tours. Il mesure le coût du conteneur, pas le débit de l’application. .
Chaque enregistrement renvoie un nouveau type de conteneur qui conserve sa clé, sa valeur, sa durée de vie, ses relations asynchrones et ses exigences de scope.
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 19Contexte typé, hooks Suspense et scopes gérés.
Fastify 5Un scope typé par requête, libéré selon son cycle de vie.
Hono 4Variables de contexte typées pour Workers, Bun et Node.
Koa 3Scopes de requête liés au cycle de vie du middleware.
Express 5Scopes de requête typés pour les middlewares et les routes.
Elysia 1Types propres aux routes transmis aux services de requête.Garde le graphe au même endroit pour rendre ses choix faciles à comprendre et à modifier.