Class: DIContainer

Defined in: src/DI/di-container.ts:10

Singleton global dependency injection container

Uses topological sort (Kahn’s algorithm) to bootstrap services in correct dependency order. All services are eagerly initialized during bootstrap.

Constructors

Constructor

new DIContainer(): DIContainer;

Returns

DIContainer

Accessors

isReady

Get Signature

get isReady(): boolean;

Defined in: src/DI/di-container.ts:178

Check if bootstrap has been called

Returns

boolean

Methods

bootstrap()

bootstrap(): Promise<void>;

Defined in: src/DI/di-container.ts:118

Bootstrap all services in dependency order All services are eagerly initialized during bootstrap Each instance is associated with this container for property injection

Returns

Promise<void>


dispose()

dispose(): void;

Defined in: src/DI/di-container.ts:185

Dispose all services and reset container

Returns

void


get()

get<T>(ctor: Constructor<T>): T;

Defined in: src/DI/di-container.ts:152

Get a service instance All services must be bootstrapped before calling get()

Type Parameters

Type Parameter
T

Parameters

Parameter Type
ctor Constructor<T>

Returns

T


getAllInstances()

getAllInstances(): any[];

Defined in: src/DI/di-container.ts:171

Get all service instances Useful for collecting metadata from all services after bootstrap

Returns

any[]


register()

register(token: Constructor): void;

Defined in: src/DI/di-container.ts:23

Register a service constructor

Parameters

Parameter Type
token Constructor

Returns

void


registerDependency()

registerDependency(parent: Constructor, dependency: Constructor): void;

Defined in: src/DI/di-container.ts:40

Register a dependency relationship between services

Parameters

Parameter Type Description
parent Constructor The service that depends on another
dependency Constructor The service that parent depends on

Returns

void


getContainerForInstance()

static getContainerForInstance(instance: any): DIContainer | undefined;

Defined in: src/DI/di-container.ts:144

Get the container associated with an instance Useful for property injection (fallback for @Inject)

Parameters

Parameter Type
instance any

Returns

DIContainer | undefined