UNPKG

@sigi/di

Version:

Dependencies injection library for sigi framework

28 lines (27 loc) 825 B
export declare class InjectionToken<T> { private readonly desc; constructor(desc: string); toString(): string; } export interface Type<T = Record<string, unknown>> extends Function { new (...args: any[]): T; } export interface ValueProvider<T> { provide: Token<T>; useValue: T; } export interface FactoryProvider<T, Deps extends Array<Token<any>> = any[]> { provide: Token<T>; useFactory: (...args: Deps) => T; deps?: Deps; } export interface ClassProvider<T> { provide: Token<T>; useClass: Type<T>; } export interface ExistingProvider<T> { provide: Token<T>; useExisting: Token<T>; } export type Token<T = unknown> = Type<T> | InjectionToken<T>; export type Provider<T = unknown> = Type<T> | ValueProvider<T> | ClassProvider<T> | ExistingProvider<T> | FactoryProvider<T>;