UNPKG

@notjustcoders/ioc-arise

Version:

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

122 lines 5.41 kB
"use strict"; 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