@miracledevs/paradigm-web-di
Version:
A minimal dependency injection library for the web
21 lines (20 loc) • 1.16 kB
TypeScript
import { ObjectType } from "./object-type";
import { DependencyLifeTime } from "./dependency-life-time";
import { DependencyDescriptor } from "./dependency-descriptor";
import { DependencyContainer } from "./dependency-container";
export declare class DependencyCollection {
private static _globalCollection;
static get globalCollection(): DependencyCollection;
private readonly _registeredTypes;
constructor();
register<T = any>(objectType: ObjectType<T>, lifeTime: DependencyLifeTime, dependencies?: ObjectType[], instance?: T): void;
registerTransient<T = any>(objectType: ObjectType<T>, dependencies?: ObjectType[]): void;
registerScoped<T = any>(objectType: ObjectType<T>, dependencies?: ObjectType[]): void;
registerSingleton<T = any>(objectType: ObjectType<T>, dependencies?: ObjectType[], instance?: T): void;
get(objectType: ObjectType): DependencyDescriptor;
contains(objectType: ObjectType): boolean;
buildContainer(validate?: boolean): DependencyContainer;
private validateDependencyRegistration;
private validateCircularDependency;
private validateScopedOnSingletons;
}