Skip to content

L’injection de dépendances nouvelle génération pour TypeScript

InferDIDétecte les erreurs d’assemblage avant l’exécution

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
< 3 KiBruntime avec gzip
6.23 nsrésolution en cache
0dépendances à l’exécution

Conçu pour résoudre rapidement

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 complets

Médianes du benchmark de production enregistré sur huit tours. Il mesure le coût du conteneur, pas le débit de l’application. .

TypeScript voit tout le graphe ​

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.

ts
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')
const users: UserRepo

Adaptateurs de frameworks ​

Étape suivante

Pars du point de composition

Garde le graphe au même endroit pour rendre ses choix faciles à comprendre et à modifier.