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.