@asuka/di
Version:
Dependencies inject library
22 lines (21 loc) • 942 B
TypeScript
import { Provider } from './type';
import { ReflectiveProvider } from './injector-provider';
import { InjectionProvider } from './provider';
export declare class Injector {
protected readonly parent: Injector | null;
readonly provider: InjectionProvider;
protected readonly resolvedProviders: Map<ReflectiveProvider<unknown>, unknown>;
protected readonly providersCache: Map<Provider<unknown>, 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 _getInstance;
private _resolveByReflectiveProvider;
private _findExisting;
private _findDeps;
private _checkDepenciesClean;
}