@sigi/di
Version:
Dependencies injection library for sigi framework
22 lines (21 loc) • 939 B
TypeScript
import { ReflectiveProvider } from './injector-provider';
import { InjectionProvider } from './provider';
import { Provider } from './type';
export declare class Injector {
protected readonly parent: Injector | null;
readonly provider: InjectionProvider;
protected readonly resolvedProviders: Map<ReflectiveProvider<unknown>, unknown>;
protected readonly providersCache: Map<Provider, ReflectiveProvider<unknown>>;
constructor(parent?: Injector | null);
addProvider<T extends Provider<any>>(provider: T): T;
addProviders(providers: Provider[]): this;
getInstance<T>(provider: Provider<T>): T;
resolveAndInstantiate<T>(provider: Provider<T>): T;
createChild(providers: Provider<unknown>[]): Injector;
private resolveReflectiveProvider;
private getInstanceInternal;
private resolveByReflectiveProvider;
private findExisting;
private findDeps;
private checkDependenciesClean;
}