Skip to content

Dependency Injection der nächsten Generation für TypeScript

InferDIFehler in Abhängigkeiten erkennen bevor der Code läuft

Der Compiler prüft den Graphen. Die Auflösung ist schnell, die Laufzeit bleibt unter 3 KiB. Deine Geschäftslogik bleibt gewöhnlicher TypeScript-Code.

pnpm add @inferdi/inferdi
< 3 KiBLaufzeit mit gzip
6.23 nsAuflösung aus dem Cache
0Laufzeitabhängigkeiten

Auf schnelle Auflösung ausgelegt

Eine Auflösung aus dem Cache beginnt mit einem Map.get(). Bei kalter Auflösung behält der Standardmodus die Laufzeitprüfungen bei.

Messverfahren und vollständige Ergebnisse

Mediane des aufgezeichneten Produktionsbenchmarks mit acht Runden. Gemessen wird der Containeraufwand, nicht der Durchsatz der Anwendung. .

TypeScript kennt den gesamten Graphen

Jede Registrierung liefert einen neuen Containertyp. Er hält Schlüssel, Wert, Lebensdauer, asynchrone Kanten und Scope-Anforderungen fest.

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

Framework-Adapter

Nächster Schritt

Beginne am Composition Root

Halte den Graphen an einer Stelle, an der seine Entscheidungen leicht zu lesen und zu ändern sind.