@notjustcoders/ioc-arise
Version:
Arise type-safe IoC containers from your code. Zero overhead, zero coupling.
29 lines • 1.7 kB
TypeScript
import { ModuleDependencyResolver } from '../../analyser/module-dependency-resolver';
import { ClassInfo } from '../../types';
import { ImportGenerator } from '../import-generator';
import { BaseContainerGenerator } from '../base-container-generator';
import { FileWriter } from '../file-writer';
import { ModuleContainerFunctionGenerator } from './module-container-function-generator';
import { ModuleInstantiationGenerator } from './module-instantiation-generator';
import { ContainerAggregator } from './container-aggregator';
/**
* Generator for modular container structure.
* Handles module-based dependency injection with inter-module dependencies.
*/
export declare class ModularContainerGenerator extends BaseContainerGenerator {
private moduleGroupedClasses;
private moduleDependencyResolver;
private moduleContainerFunctionGenerator;
private moduleInstantiationGenerator;
private containerAggregator;
constructor(fileWriter: FileWriter, moduleGroupedClasses: Map<string, ClassInfo[]>, moduleDependencyResolver: ModuleDependencyResolver, importGenerator: ImportGenerator, moduleContainerFunctionGenerator: ModuleContainerFunctionGenerator, moduleInstantiationGenerator: ModuleInstantiationGenerator, containerAggregator: ContainerAggregator);
generate(): void;
protected generateContainerCode(sortedModules?: string[], moduleDependencies?: Map<string, Set<string>>): string;
private generateModuleContainers;
/**
* Generates split files when there are more than 3 modules.
* Each module gets its own file, plus a main aggregator file.
*/
private generateSplitFiles;
}
//# sourceMappingURL=modular-container-generator.d.ts.map