@notjustcoders/ioc-arise
Version:
Arise type-safe IoC containers from your code. Zero overhead, zero coupling.
25 lines • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ModuleFunctionBodyGenerator = void 0;
const shared_1 = require("../shared");
/**
* Responsible for generating the body content of module container functions.
* Handles factories, singletons, getters, and exports generation.
*/
class ModuleFunctionBodyGenerator {
constructor(dependencyResolver) {
this.dependencyResolver = dependencyResolver;
}
/**
* Generates the function body for a module container.
*/
generateModuleFunctionBody(moduleClasses, moduleDeps, importGenerator) {
const constructorArgsResolver = (classInfo) => {
const constructorArgs = this.dependencyResolver.buildConstructorArguments(classInfo, moduleClasses, moduleDeps, importGenerator);
return constructorArgs.length > 0 ? constructorArgs.join(', ') : '';
};
return shared_1.InstantiationUtils.generateModuleFunctionBody(moduleClasses, constructorArgsResolver, importGenerator);
}
}
exports.ModuleFunctionBodyGenerator = ModuleFunctionBodyGenerator;
//# sourceMappingURL=module-function-body-generator.js.map