@notjustcoders/ioc-arise
Version:
Arise type-safe IoC containers from your code. Zero overhead, zero coupling.
122 lines • 5.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.container = void 0;
const import_generator_1 = require("./generator/import-generator");
const file_writer_1 = require("./generator/file-writer");
const module_dependency_resolver_1 = require("./analyser/module-dependency-resolver");
const module_instantiation_generator_1 = require("./generator/modular/module-instantiation-generator");
const module_function_signature_generator_1 = require("./generator/modular/module-function-signature-generator");
const module_function_body_generator_1 = require("./generator/modular/module-function-body-generator");
const module_dependency_resolver_2 = require("./generator/modular/module-dependency-resolver");
const module_container_function_generator_1 = require("./generator/modular/module-container-function-generator");
const modular_container_generator_1 = require("./generator/modular/modular-container-generator");
const container_aggregator_1 = require("./generator/modular/container-aggregator");
function createCoreModuleContainer() {
let containerAggregator;
let modularContainerGenerator;
let moduleContainerFunctionGenerator;
let modularModuleDependencyResolver;
let moduleFunctionBodyGenerator;
let moduleFunctionSignatureGenerator;
let moduleInstantiationGenerator;
let moduleDependencyResolver;
let fileWriter;
let importGenerator;
const getContainerAggregator = () => {
if (!containerAggregator) {
containerAggregator = new container_aggregator_1.ContainerAggregator();
}
return containerAggregator;
};
const getModularContainerGenerator = () => {
if (!modularContainerGenerator) {
modularContainerGenerator = new modular_container_generator_1.ModularContainerGenerator(getFileWriter(), getModularModuleDependencyResolver(), getImportGenerator(), getModuleContainerFunctionGenerator(), getModuleInstantiationGenerator(), getContainerAggregator());
}
return modularContainerGenerator;
};
const getModuleContainerFunctionGenerator = () => {
if (!moduleContainerFunctionGenerator) {
moduleContainerFunctionGenerator = new module_container_function_generator_1.ModuleContainerFunctionGenerator(getModuleFunctionSignatureGenerator(), getModularModuleDependencyResolver(), getModuleFunctionBodyGenerator());
}
return moduleContainerFunctionGenerator;
};
const getModularModuleDependencyResolver = () => {
if (!modularModuleDependencyResolver) {
modularModuleDependencyResolver = new module_dependency_resolver_2.ModuleDependencyResolver();
}
return modularModuleDependencyResolver;
};
const getModuleFunctionBodyGenerator = () => {
if (!moduleFunctionBodyGenerator) {
moduleFunctionBodyGenerator = new module_function_body_generator_1.ModuleFunctionBodyGenerator(getModularModuleDependencyResolver());
}
return moduleFunctionBodyGenerator;
};
const getModuleFunctionSignatureGenerator = () => {
if (!moduleFunctionSignatureGenerator) {
moduleFunctionSignatureGenerator = new module_function_signature_generator_1.ModuleFunctionSignatureGenerator();
}
return moduleFunctionSignatureGenerator;
};
const getModuleInstantiationGenerator = () => {
if (!moduleInstantiationGenerator) {
moduleInstantiationGenerator = new module_instantiation_generator_1.ModuleInstantiationGenerator();
}
return moduleInstantiationGenerator;
};
const getModuleDependencyResolver = () => {
if (!moduleDependencyResolver) {
moduleDependencyResolver = new module_dependency_resolver_1.ModuleDependencyResolver();
}
return moduleDependencyResolver;
};
const getFileWriter = () => {
if (!fileWriter) {
fileWriter = new file_writer_1.FileWriter();
}
return fileWriter;
};
const getImportGenerator = () => {
if (!importGenerator) {
importGenerator = new import_generator_1.ImportGenerator();
}
return importGenerator;
};
return {
get ImportGenerator() {
return getImportGenerator();
},
get FileWriter() {
return getFileWriter();
},
get ModuleDependencyResolver() {
return getModuleDependencyResolver();
},
get ModuleInstantiationGenerator() {
return getModuleInstantiationGenerator();
},
get ModuleFunctionSignatureGenerator() {
return getModuleFunctionSignatureGenerator();
},
get ModuleFunctionBodyGenerator() {
return getModuleFunctionBodyGenerator();
},
get ModularModuleDependencyResolver() {
return getModularModuleDependencyResolver();
},
get ModuleContainerFunctionGenerator() {
return getModuleContainerFunctionGenerator();
},
get ModularContainerGenerator() {
return getModularContainerGenerator();
},
get ContainerAggregator() {
return getContainerAggregator();
}
};
}
const coreModuleContainer = createCoreModuleContainer();
exports.container = {
coreModule: coreModuleContainer
};
//# sourceMappingURL=container.gen.js.map