UNPKG

@notjustcoders/ioc-arise

Version:

Arise type-safe IoC containers from your code. Zero overhead, zero coupling.

62 lines 1.58 kB
export type InjectionScope = 'singleton' | 'transient'; export interface ConstructorParameter { name: string; type: string; isOptional: boolean; accessModifier?: 'private' | 'public' | 'protected'; } export interface DependencyInfo { name: string; importPath: string; } export interface ClassInfo { name: string; filePath: string; dependencies: DependencyInfo[]; constructorParams: ConstructorParameter[]; interfaceName?: string; abstractClassName?: string; importPath: string; scope: InjectionScope; } export interface FactoryInfo { name: string; filePath: string; dependencies: DependencyInfo[]; parameters: ConstructorParameter[]; returnType?: string; importPath: string; scope: InjectionScope; token?: string; useContextObject?: boolean; contextObjectName?: string; contextObjectProperties?: { name: string; type: string; }[]; instanceFactoryFor?: string; } export interface ValueInfo { name: string; filePath: string; interfaceName?: string; importPath: string; scope: InjectionScope; token?: string; } export interface AnalyzerOptions { sourceDir: string; interfacePattern?: string; excludePatterns?: string[]; factoryPattern?: string; valuePattern?: string; } export interface GeneratorOptions { outputPath: string; classes?: ClassInfo[]; moduleGroupedClasses?: Map<string, ClassInfo[]>; } export interface DependencyGraph { [className: string]: string[]; } //# sourceMappingURL=types.d.ts.map