@sigi/di
Version:
Dependencies injection library for sigi framework
30 lines (29 loc) • 1.13 kB
TypeScript
import { Injector } from './injector';
import { Type, InjectionToken, Provider, Token } from './type';
export declare class Test<M extends AbstractTestModule> {
private readonly TestModule;
static createTestingModule<M extends AbstractTestModule>(overrideConfig?: {
TestModule?: Type<M>;
providers?: Provider[];
}): Test<M>;
readonly providersMap: Map<Token<unknown>, Provider>;
private constructor();
overrideProvider<T>(token: Token<T>): MockProvider<T, M>;
compile(): M;
}
export declare class MockProvider<T, M extends AbstractTestModule> {
private readonly test;
private readonly token;
constructor(test: Test<M>, token: Type<T> | InjectionToken<T>);
useClass(value: Type<T>): Test<M>;
useValue(value: T): Test<M>;
useFactory(value: (...args: any[]) => any): Test<M>;
}
export declare abstract class AbstractTestModule {
abstract getInstance<T>(provider: Provider<T>): T;
}
export declare class TestModule implements AbstractTestModule {
private readonly injector;
constructor(injector: Injector);
getInstance<T>(token: Provider<T>): T;
}