@notjustcoders/ioc-arise 1.0.9 → 1.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/dist/analyser/ast-parser.d.ts +1 -0
  2. package/dist/analyser/ast-parser.d.ts.map +1 -1
  3. package/dist/analyser/ast-parser.js +53 -0
  4. package/dist/analyser/ast-parser.js.map +1 -1
  5. package/dist/analyser/class-analyzer.d.ts.map +1 -1
  6. package/dist/analyser/class-analyzer.js +23 -8
  7. package/dist/analyser/class-analyzer.js.map +1 -1
  8. package/dist/analyser/dependency-resolver.js +4 -4
  9. package/dist/analyser/dependency-resolver.js.map +1 -1
  10. package/dist/analyser/module-dependency-resolver.js +1 -1
  11. package/dist/analyser/module-dependency-resolver.js.map +1 -1
  12. package/dist/commands/analyze.js +1 -1
  13. package/dist/commands/analyze.js.map +1 -1
  14. package/dist/commands/generate.d.ts.map +1 -1
  15. package/dist/commands/generate.js +2 -2
  16. package/dist/commands/generate.js.map +1 -1
  17. package/dist/container.gen.d.ts +20 -12
  18. package/dist/container.gen.d.ts.map +1 -1
  19. package/dist/container.gen.js +114 -80
  20. package/dist/container.gen.js.map +1 -1
  21. package/dist/generator/import-generator.d.ts.map +1 -1
  22. package/dist/generator/import-generator.js +11 -5
  23. package/dist/generator/import-generator.js.map +1 -1
  24. package/dist/generator/modular/module-dependency-resolver.js +1 -1
  25. package/dist/generator/modular/module-dependency-resolver.js.map +1 -1
  26. package/dist/generator/shared/instantiation-utils.d.ts +2 -1
  27. package/dist/generator/shared/instantiation-utils.d.ts.map +1 -1
  28. package/dist/generator/shared/instantiation-utils.js +17 -5
  29. package/dist/generator/shared/instantiation-utils.js.map +1 -1
  30. package/dist/renderer/console-analysis-renderer.js +1 -1
  31. package/dist/renderer/console-analysis-renderer.js.map +1 -1
  32. package/dist/types.d.ts +5 -1
  33. package/dist/types.d.ts.map +1 -1
  34. package/package.json +1 -1
  35. package/dist/__tests__/analyser/ast-parser.test.d.ts +0 -2
  36. package/dist/__tests__/analyser/ast-parser.test.d.ts.map +0 -1
  37. package/dist/__tests__/analyser/ast-parser.test.js +0 -309
  38. package/dist/__tests__/analyser/ast-parser.test.js.map +0 -1
  39. package/dist/__tests__/analyser/class-analyzer.test.d.ts +0 -2
  40. package/dist/__tests__/analyser/class-analyzer.test.d.ts.map +0 -1
  41. package/dist/__tests__/analyser/class-analyzer.test.js +0 -323
  42. package/dist/__tests__/analyser/class-analyzer.test.js.map +0 -1
  43. package/dist/__tests__/analyser/dependency-resolver.test.d.ts +0 -2
  44. package/dist/__tests__/analyser/dependency-resolver.test.d.ts.map +0 -1
  45. package/dist/__tests__/analyser/dependency-resolver.test.js +0 -128
  46. package/dist/__tests__/analyser/dependency-resolver.test.js.map +0 -1
  47. package/dist/__tests__/analyser/fixtures/ast-parser-fixtures.d.ts +0 -28
  48. package/dist/__tests__/analyser/fixtures/ast-parser-fixtures.d.ts.map +0 -1
  49. package/dist/__tests__/analyser/fixtures/ast-parser-fixtures.js +0 -222
  50. package/dist/__tests__/analyser/fixtures/ast-parser-fixtures.js.map +0 -1
  51. package/dist/__tests__/analyser/fixtures/class-analyzer-fixtures.d.ts +0 -54
  52. package/dist/__tests__/analyser/fixtures/class-analyzer-fixtures.d.ts.map +0 -1
  53. package/dist/__tests__/analyser/fixtures/class-analyzer-fixtures.js +0 -285
  54. package/dist/__tests__/analyser/fixtures/class-analyzer-fixtures.js.map +0 -1
  55. package/dist/__tests__/analyser/fixtures/dependency-resolver-fixtures.d.ts +0 -13
  56. package/dist/__tests__/analyser/fixtures/dependency-resolver-fixtures.d.ts.map +0 -1
  57. package/dist/__tests__/analyser/fixtures/dependency-resolver-fixtures.js +0 -266
  58. package/dist/__tests__/analyser/fixtures/dependency-resolver-fixtures.js.map +0 -1
  59. package/dist/__tests__/analyser/project-analyzer.test.d.ts +0 -2
  60. package/dist/__tests__/analyser/project-analyzer.test.d.ts.map +0 -1
  61. package/dist/__tests__/analyser/project-analyzer.test.js +0 -191
  62. package/dist/__tests__/analyser/project-analyzer.test.js.map +0 -1
  63. package/dist/__tests__/generator/container-generator.test.d.ts +0 -2
  64. package/dist/__tests__/generator/container-generator.test.d.ts.map +0 -1
  65. package/dist/__tests__/generator/container-generator.test.js +0 -185
  66. package/dist/__tests__/generator/container-generator.test.js.map +0 -1
  67. package/dist/__tests__/generator/dependency-resolver.test.d.ts +0 -2
  68. package/dist/__tests__/generator/dependency-resolver.test.d.ts.map +0 -1
  69. package/dist/__tests__/generator/dependency-resolver.test.js +0 -330
  70. package/dist/__tests__/generator/dependency-resolver.test.js.map +0 -1
  71. package/dist/__tests__/generator/fixtures/dependency-resolver.fixtures.d.ts +0 -23
  72. package/dist/__tests__/generator/fixtures/dependency-resolver.fixtures.d.ts.map +0 -1
  73. package/dist/__tests__/generator/fixtures/dependency-resolver.fixtures.js +0 -254
  74. package/dist/__tests__/generator/fixtures/dependency-resolver.fixtures.js.map +0 -1
  75. package/dist/__tests__/generator/fixtures/import-generator.fixtures.d.ts +0 -10
  76. package/dist/__tests__/generator/fixtures/import-generator.fixtures.d.ts.map +0 -1
  77. package/dist/__tests__/generator/fixtures/import-generator.fixtures.js +0 -194
  78. package/dist/__tests__/generator/fixtures/import-generator.fixtures.js.map +0 -1
  79. package/dist/__tests__/generator/import-generator.test.d.ts +0 -2
  80. package/dist/__tests__/generator/import-generator.test.d.ts.map +0 -1
  81. package/dist/__tests__/generator/import-generator.test.js +0 -121
  82. package/dist/__tests__/generator/import-generator.test.js.map +0 -1
  83. package/dist/__tests__/generator/instantiation-generator.test.d.ts +0 -2
  84. package/dist/__tests__/generator/instantiation-generator.test.d.ts.map +0 -1
  85. package/dist/__tests__/generator/instantiation-generator.test.js +0 -251
  86. package/dist/__tests__/generator/instantiation-generator.test.js.map +0 -1
  87. package/dist/generator/Container-file-generator.d.ts +0 -20
  88. package/dist/generator/Container-file-generator.d.ts.map +0 -1
  89. package/dist/generator/Container-file-generator.js +0 -255
  90. package/dist/generator/Container-file-generator.js.map +0 -1
  91. package/dist/generator/base-container-code-generator.d.ts +0 -15
  92. package/dist/generator/base-container-code-generator.d.ts.map +0 -1
  93. package/dist/generator/base-container-code-generator.js +0 -23
  94. package/dist/generator/base-container-code-generator.js.map +0 -1
  95. package/dist/generator/base-dependency-resolver.d.ts +0 -26
  96. package/dist/generator/base-dependency-resolver.d.ts.map +0 -1
  97. package/dist/generator/base-dependency-resolver.js +0 -72
  98. package/dist/generator/base-dependency-resolver.js.map +0 -1
  99. package/dist/generator/base-instantiation-generator.d.ts +0 -55
  100. package/dist/generator/base-instantiation-generator.d.ts.map +0 -1
  101. package/dist/generator/base-instantiation-generator.js +0 -117
  102. package/dist/generator/base-instantiation-generator.js.map +0 -1
  103. package/dist/generator/container-generator.d.ts +0 -8
  104. package/dist/generator/container-generator.d.ts.map +0 -1
  105. package/dist/generator/container-generator.js +0 -35
  106. package/dist/generator/container-generator.js.map +0 -1
  107. package/dist/generator/dependency-resolver.d.ts +0 -11
  108. package/dist/generator/dependency-resolver.d.ts.map +0 -1
  109. package/dist/generator/dependency-resolver.js +0 -83
  110. package/dist/generator/dependency-resolver.js.map +0 -1
  111. package/dist/generator/duplicate-import-resolver.d.ts +0 -44
  112. package/dist/generator/duplicate-import-resolver.d.ts.map +0 -1
  113. package/dist/generator/duplicate-import-resolver.js +0 -162
  114. package/dist/generator/duplicate-import-resolver.js.map +0 -1
  115. package/dist/generator/flat/container-generator.d.ts +0 -8
  116. package/dist/generator/flat/container-generator.d.ts.map +0 -1
  117. package/dist/generator/flat/container-generator.js +0 -17
  118. package/dist/generator/flat/container-generator.js.map +0 -1
  119. package/dist/generator/flat/dependency-resolver.d.ts +0 -8
  120. package/dist/generator/flat/dependency-resolver.d.ts.map +0 -1
  121. package/dist/generator/flat/dependency-resolver.js +0 -43
  122. package/dist/generator/flat/dependency-resolver.js.map +0 -1
  123. package/dist/generator/flat/flat-container-generator.d.ts +0 -25
  124. package/dist/generator/flat/flat-container-generator.d.ts.map +0 -1
  125. package/dist/generator/flat/flat-container-generator.js +0 -44
  126. package/dist/generator/flat/flat-container-generator.js.map +0 -1
  127. package/dist/generator/flat/instantiation-generator.d.ts +0 -24
  128. package/dist/generator/flat/instantiation-generator.d.ts.map +0 -1
  129. package/dist/generator/flat/instantiation-generator.js +0 -125
  130. package/dist/generator/flat/instantiation-generator.js.map +0 -1
  131. package/dist/generator/flat-container-generator.d.ts +0 -25
  132. package/dist/generator/flat-container-generator.d.ts.map +0 -1
  133. package/dist/generator/flat-container-generator.js +0 -44
  134. package/dist/generator/flat-container-generator.js.map +0 -1
  135. package/dist/generator/instantiation-generator.d.ts +0 -21
  136. package/dist/generator/instantiation-generator.d.ts.map +0 -1
  137. package/dist/generator/instantiation-generator.js +0 -116
  138. package/dist/generator/instantiation-generator.js.map +0 -1
  139. package/dist/generator/modular/class-sorter.d.ts +0 -17
  140. package/dist/generator/modular/class-sorter.d.ts.map +0 -1
  141. package/dist/generator/modular/class-sorter.js +0 -40
  142. package/dist/generator/modular/class-sorter.js.map +0 -1
  143. package/dist/generator/modular/modular-container-code-generator.d.ts +0 -65
  144. package/dist/generator/modular/modular-container-code-generator.d.ts.map +0 -1
  145. package/dist/generator/modular/modular-container-code-generator.js +0 -157
  146. package/dist/generator/modular/modular-container-code-generator.js.map +0 -1
  147. package/dist/generator/modular/module-export-generator.d.ts +0 -42
  148. package/dist/generator/modular/module-export-generator.d.ts.map +0 -1
  149. package/dist/generator/modular/module-export-generator.js +0 -82
  150. package/dist/generator/modular/module-export-generator.js.map +0 -1
  151. package/dist/generator/modular/module-scope-generator.d.ts +0 -47
  152. package/dist/generator/modular/module-scope-generator.d.ts.map +0 -1
  153. package/dist/generator/modular/module-scope-generator.js +0 -111
  154. package/dist/generator/modular/module-scope-generator.js.map +0 -1
  155. package/dist/generator/modular/refactored-modular-container-generator.d.ts +0 -38
  156. package/dist/generator/modular/refactored-modular-container-generator.d.ts.map +0 -1
  157. package/dist/generator/modular/refactored-modular-container-generator.js +0 -73
  158. package/dist/generator/modular/refactored-modular-container-generator.js.map +0 -1
  159. package/dist/generator/modular-container-generator.d.ts +0 -21
  160. package/dist/generator/modular-container-generator.d.ts.map +0 -1
  161. package/dist/generator/modular-container-generator.js +0 -57
  162. package/dist/generator/modular-container-generator.js.map +0 -1
  163. package/dist/generator/module-container-function-generator.d.ts +0 -30
  164. package/dist/generator/module-container-function-generator.d.ts.map +0 -1
  165. package/dist/generator/module-container-function-generator.js +0 -199
  166. package/dist/generator/module-container-function-generator.js.map +0 -1
  167. package/dist/generator/shared/dependency-resolver-utils.d.ts +0 -28
  168. package/dist/generator/shared/dependency-resolver-utils.d.ts.map +0 -1
  169. package/dist/generator/shared/dependency-resolver-utils.js +0 -67
  170. package/dist/generator/shared/dependency-resolver-utils.js.map +0 -1
@@ -1,111 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModuleScopeGenerator = void 0;
4
- /**
5
- * Handles generation of scope-specific code (singleton and transient) for modules.
6
- * Manages the creation of singleton variables, getters, and transient factories.
7
- */
8
- class ModuleScopeGenerator {
9
- constructor(dependencyResolver, camelCase) {
10
- this.dependencyResolver = dependencyResolver;
11
- this.camelCase = camelCase;
12
- }
13
- /**
14
- * Generates singleton variable declarations for a module.
15
- *
16
- * @param singletonClasses - Singleton classes in the module
17
- * @returns Generated singleton variable code
18
- */
19
- generateSingletonVariables(singletonClasses) {
20
- if (singletonClasses.length === 0)
21
- return '';
22
- const variables = singletonClasses.map(classInfo => {
23
- const variableName = this.camelCase(classInfo.name);
24
- const interfaceName = classInfo.interfaceName || classInfo.name;
25
- return ` let ${variableName}: ${interfaceName} | null = null;`;
26
- });
27
- return variables.join('\n');
28
- }
29
- /**
30
- * Generates singleton getter functions for a module.
31
- *
32
- * @param singletonClasses - Singleton classes in the module
33
- * @param currentModuleClasses - All classes in the current module
34
- * @param allModuleClasses - All classes across all modules
35
- * @param externalDependencies - External module dependencies
36
- * @returns Generated singleton getter code
37
- */
38
- generateSingletonGetters(singletonClasses, currentModuleClasses, allModuleClasses, externalDependencies) {
39
- if (singletonClasses.length === 0)
40
- return '';
41
- const getters = singletonClasses.map(classInfo => this.createSingletonGetter(classInfo, currentModuleClasses, allModuleClasses, externalDependencies));
42
- return getters.join('\n\n');
43
- }
44
- /**
45
- * Generates transient factory functions for a module.
46
- *
47
- * @param transientClasses - Transient classes in the module
48
- * @param currentModuleClasses - All classes in the current module
49
- * @param allModuleClasses - All classes across all modules
50
- * @param externalDependencies - External module dependencies
51
- * @returns Generated transient factory code
52
- */
53
- generateTransientFactories(transientClasses, currentModuleClasses, allModuleClasses, externalDependencies) {
54
- if (transientClasses.length === 0)
55
- return '';
56
- const factories = transientClasses.map(classInfo => {
57
- const functionName = `create${classInfo.name}`;
58
- const interfaceName = classInfo.interfaceName || classInfo.name;
59
- const constructorArgs = this.buildConstructorArguments(classInfo, currentModuleClasses, allModuleClasses, externalDependencies);
60
- return ` const ${functionName} = (): ${interfaceName} => {\n` +
61
- ` return new ${classInfo.name}(${constructorArgs});\n` +
62
- ` };`;
63
- });
64
- return factories.join('\n\n');
65
- }
66
- /**
67
- * Creates a singleton getter function for a specific class.
68
- */
69
- createSingletonGetter(classInfo, currentModuleClasses, allModuleClasses, externalDependencies) {
70
- const variableName = this.camelCase(classInfo.name);
71
- const functionName = `get${classInfo.name}`;
72
- const interfaceName = classInfo.interfaceName || classInfo.name;
73
- const constructorArgs = this.buildConstructorArguments(classInfo, currentModuleClasses, allModuleClasses, externalDependencies);
74
- return ` const ${functionName} = (): ${interfaceName} => {\n` +
75
- ` if (${variableName} === null) {\n` +
76
- ` ${variableName} = new ${classInfo.name}(${constructorArgs});\n` +
77
- ` }\n` +
78
- ` return ${variableName};\n` +
79
- ` };`;
80
- }
81
- /**
82
- * Builds constructor arguments for a class instantiation.
83
- */
84
- buildConstructorArguments(classInfo, currentModuleClasses, allModuleClasses, externalDependencies) {
85
- const args = [];
86
- for (const dep of classInfo.dependencies) {
87
- // Check if it's an internal dependency
88
- const internalClass = currentModuleClasses.find(c => c.interfaceName === dep);
89
- if (internalClass) {
90
- if (internalClass.scope === 'singleton') {
91
- args.push(`get${internalClass.name}()`);
92
- }
93
- else {
94
- args.push(`create${internalClass.name}()`);
95
- }
96
- continue;
97
- }
98
- // Check if it's an external dependency
99
- const externalClass = allModuleClasses.find(c => c.interfaceName === dep);
100
- if (externalClass && externalDependencies.has(externalClass.name)) {
101
- args.push(`dependencies.${this.camelCase(externalClass.name)}`);
102
- continue;
103
- }
104
- // Fallback: create a simple instance for unmanaged dependencies
105
- args.push(`new ${dep}()`);
106
- }
107
- return args.join(', ');
108
- }
109
- }
110
- exports.ModuleScopeGenerator = ModuleScopeGenerator;
111
- //# sourceMappingURL=module-scope-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"module-scope-generator.js","sourceRoot":"","sources":["../../../src/generator/modular/module-scope-generator.ts"],"names":[],"mappings":"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"}
@@ -1,38 +0,0 @@
1
- import { BaseContainerGenerator } from '../base-container-generator';
2
- import { ClassInfo } from '../../types';
3
- import { FileWriter } from '../file-writer';
4
- import { ImportGenerator } from '../import-generator';
5
- /**
6
- * Refactored modular container generator that delegates responsibilities to specialized classes.
7
- * Maintains the same interface as the original ModularContainerGenerator but with improved architecture.
8
- */
9
- export declare class RefactoredModularContainerGenerator extends BaseContainerGenerator {
10
- private modularContainerCodeGenerator;
11
- private dependencyResolver;
12
- private moduleGroupedClasses?;
13
- constructor(fileWriter: FileWriter, importGenerator: ImportGenerator);
14
- /**
15
- * Sets the module grouped classes for generation.
16
- *
17
- * @param moduleGroupedClasses - Map of module names to their classes
18
- */
19
- setModuleGroupedClasses(moduleGroupedClasses: Map<string, ClassInfo[]>): void;
20
- /**
21
- * Generates the modular container file.
22
- */
23
- generate(): void;
24
- /**
25
- * Generates the container code using the modular container code generator.
26
- *
27
- * @returns Generated container code
28
- */
29
- protected generateContainerCode(): string;
30
- /**
31
- * Gets all classes from the module grouped classes map.
32
- *
33
- * @param moduleGroupedClasses - Map of module names to their classes
34
- * @returns Array of all classes
35
- */
36
- private getAllClasses;
37
- }
38
- //# sourceMappingURL=refactored-modular-container-generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"refactored-modular-container-generator.d.ts","sourceRoot":"","sources":["../../../src/generator/modular/refactored-modular-container-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,SAAS,EAAoB,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAItD;;;GAGG;AACH,qBAAa,mCAAoC,SAAQ,sBAAsB;IAC7E,OAAO,CAAC,6BAA6B,CAAgC;IACrE,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,oBAAoB,CAAC,CAA2B;gBAE5C,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe;IAUpE;;;;OAIG;IACH,uBAAuB,CAAC,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI;IAY7E;;OAEG;IACH,QAAQ,IAAI,IAAI;IAShB;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,IAAI,MAAM;IAkBzC;;;;;OAKG;IACH,OAAO,CAAC,aAAa;CAOtB"}
@@ -1,73 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RefactoredModularContainerGenerator = void 0;
4
- const base_container_generator_1 = require("../base-container-generator");
5
- const import_generator_1 = require("../import-generator");
6
- const dependency_resolver_1 = require("../dependency-resolver");
7
- const modular_container_code_generator_1 = require("./modular-container-code-generator");
8
- /**
9
- * Refactored modular container generator that delegates responsibilities to specialized classes.
10
- * Maintains the same interface as the original ModularContainerGenerator but with improved architecture.
11
- */
12
- class RefactoredModularContainerGenerator extends base_container_generator_1.BaseContainerGenerator {
13
- constructor(fileWriter, importGenerator) {
14
- super(fileWriter, importGenerator);
15
- // Initialize with empty array, will be set when generate is called
16
- this.dependencyResolver = new dependency_resolver_1.DependencyResolver([]);
17
- this.modularContainerCodeGenerator = new modular_container_code_generator_1.ModularContainerCodeGenerator(this.dependencyResolver, this.camelCase.bind(this));
18
- }
19
- /**
20
- * Sets the module grouped classes for generation.
21
- *
22
- * @param moduleGroupedClasses - Map of module names to their classes
23
- */
24
- setModuleGroupedClasses(moduleGroupedClasses) {
25
- this.moduleGroupedClasses = moduleGroupedClasses;
26
- // Update dependency resolver with all classes
27
- const allClasses = this.getAllClasses(moduleGroupedClasses);
28
- this.dependencyResolver = new dependency_resolver_1.DependencyResolver(allClasses);
29
- this.modularContainerCodeGenerator = new modular_container_code_generator_1.ModularContainerCodeGenerator(this.dependencyResolver, this.camelCase.bind(this));
30
- }
31
- /**
32
- * Generates the modular container file.
33
- */
34
- generate() {
35
- if (!this.moduleGroupedClasses) {
36
- throw new Error('Module grouped classes must be set before generating');
37
- }
38
- const containerCode = this.generateContainerCode();
39
- this.writeContainer(containerCode);
40
- }
41
- /**
42
- * Generates the container code using the modular container code generator.
43
- *
44
- * @returns Generated container code
45
- */
46
- generateContainerCode() {
47
- if (!this.moduleGroupedClasses) {
48
- throw new Error('Module grouped classes must be set before generating');
49
- }
50
- const allClasses = this.getAllClasses(this.moduleGroupedClasses);
51
- // Update import generator with all classes and generate imports
52
- this.importGenerator = new import_generator_1.ImportGenerator(allClasses);
53
- const imports = this.importGenerator.generateImports();
54
- // Generate container code
55
- const containerCode = this.modularContainerCodeGenerator.generateContainerCode(this.moduleGroupedClasses);
56
- return `${imports}\n\n${containerCode}`;
57
- }
58
- /**
59
- * Gets all classes from the module grouped classes map.
60
- *
61
- * @param moduleGroupedClasses - Map of module names to their classes
62
- * @returns Array of all classes
63
- */
64
- getAllClasses(moduleGroupedClasses) {
65
- const allClasses = [];
66
- for (const classes of moduleGroupedClasses.values()) {
67
- allClasses.push(...classes);
68
- }
69
- return allClasses;
70
- }
71
- }
72
- exports.RefactoredModularContainerGenerator = RefactoredModularContainerGenerator;
73
- //# sourceMappingURL=refactored-modular-container-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"refactored-modular-container-generator.js","sourceRoot":"","sources":["../../../src/generator/modular/refactored-modular-container-generator.ts"],"names":[],"mappings":";;;AAAA,0EAAqE;AAGrE,0DAAsD;AACtD,gEAA4D;AAC5D,yFAAmF;AAEnF;;;GAGG;AACH,MAAa,mCAAoC,SAAQ,iDAAsB;IAK7E,YAAY,UAAsB,EAAE,eAAgC;QAClE,KAAK,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QACnC,mEAAmE;QACnE,IAAI,CAAC,kBAAkB,GAAG,IAAI,wCAAkB,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,6BAA6B,GAAG,IAAI,gEAA6B,CACpE,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,uBAAuB,CAAC,oBAA8C;QACpE,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QAEjD,8CAA8C;QAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QAC5D,IAAI,CAAC,kBAAkB,GAAG,IAAI,wCAAkB,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,CAAC,6BAA6B,GAAG,IAAI,gEAA6B,CACpE,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACnD,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACO,qBAAqB;QAC7B,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAEjE,gEAAgE;QAChE,IAAI,CAAC,eAAe,GAAG,IAAI,kCAAe,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;QAEvD,0BAA0B;QAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,6BAA6B,CAAC,qBAAqB,CAC5E,IAAI,CAAC,oBAAoB,CAC1B,CAAC;QAEF,OAAO,GAAG,OAAO,OAAO,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED;;;;;OAKG;IACK,aAAa,CAAC,oBAA8C;QAClE,MAAM,UAAU,GAAgB,EAAE,CAAC;QACnC,KAAK,MAAM,OAAO,IAAI,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC;YACpD,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AAhFD,kFAgFC"}
@@ -1,21 +0,0 @@
1
- import { ModuleDependencyResolver } from '../analyser/module-dependency-resolver';
2
- import { ClassInfo } from '../types';
3
- import { ImportGenerator } from './import-generator';
4
- import { BaseContainerGenerator } from './base-container-generator';
5
- import { FileWriter } from './file-writer';
6
- /**
7
- * Generator for modular container structure.
8
- * Handles module-based dependency injection with inter-module dependencies.
9
- */
10
- export declare class ModularContainerGenerator extends BaseContainerGenerator {
11
- private moduleGroupedClasses;
12
- private moduleDependencyResolver;
13
- private moduleContainerFunctionGenerator;
14
- private moduleInstantiationGenerator;
15
- private containerAggregator;
16
- constructor(fileWriter: FileWriter, moduleGroupedClasses: Map<string, ClassInfo[]>, moduleDependencyResolver: ModuleDependencyResolver, importGenerator: ImportGenerator);
17
- generate(): void;
18
- protected generateContainerCode(sortedModules?: string[], moduleDependencies?: Map<string, Set<string>>): string;
19
- private generateModuleContainers;
20
- }
21
- //# sourceMappingURL=modular-container-generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modular-container-generator.d.ts","sourceRoot":"","sources":["../../src/generator/modular-container-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAM3C;;;GAGG;AACH,qBAAa,yBAA0B,SAAQ,sBAAsB;IACnE,OAAO,CAAC,oBAAoB,CAA2B;IACvD,OAAO,CAAC,wBAAwB,CAA2B;IAC3D,OAAO,CAAC,gCAAgC,CAAmC;IAC3E,OAAO,CAAC,4BAA4B,CAA+B;IACnE,OAAO,CAAC,mBAAmB,CAAsB;gBAG/C,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EAC9C,wBAAwB,EAAE,wBAAwB,EAClD,eAAe,EAAE,eAAe;IAUlC,QAAQ,IAAI,IAAI;IAqBhB,SAAS,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM;IAehH,OAAO,CAAC,wBAAwB;CAUjC"}
@@ -1,57 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModularContainerGenerator = void 0;
4
- const dependency_resolver_1 = require("../analyser/dependency-resolver");
5
- const base_container_generator_1 = require("./base-container-generator");
6
- const module_container_function_generator_1 = require("./modular/module-container-function-generator");
7
- const module_instantiation_generator_1 = require("./modular/module-instantiation-generator");
8
- const container_aggregator_1 = require("./modular/container-aggregator");
9
- /**
10
- * Generator for modular container structure.
11
- * Handles module-based dependency injection with inter-module dependencies.
12
- */
13
- class ModularContainerGenerator extends base_container_generator_1.BaseContainerGenerator {
14
- constructor(fileWriter, moduleGroupedClasses, moduleDependencyResolver, importGenerator) {
15
- super(fileWriter, importGenerator);
16
- this.moduleGroupedClasses = moduleGroupedClasses;
17
- this.moduleDependencyResolver = moduleDependencyResolver;
18
- this.moduleContainerFunctionGenerator = new module_container_function_generator_1.ModuleContainerFunctionGenerator(moduleGroupedClasses);
19
- this.moduleInstantiationGenerator = new module_instantiation_generator_1.ModuleInstantiationGenerator(moduleGroupedClasses);
20
- this.containerAggregator = new container_aggregator_1.ContainerAggregator();
21
- }
22
- generate() {
23
- // First, check for module-level cycles
24
- const moduleResult = this.moduleDependencyResolver.resolve();
25
- if (moduleResult.cycles.length > 0) {
26
- throw new Error(`Circular dependencies detected between modules: ${JSON.stringify(moduleResult.cycles)}`);
27
- }
28
- // Then resolve class-level dependencies within each module
29
- const allClasses = Array.from(this.moduleGroupedClasses.values()).flat();
30
- const dependencyResolver = new dependency_resolver_1.DependencyResolver(allClasses);
31
- const sortResult = dependencyResolver.resolve();
32
- if (sortResult.cycles.length > 0) {
33
- throw new Error(`Circular dependencies detected within classes: ${JSON.stringify(sortResult.cycles)}`);
34
- }
35
- const containerCode = this.generateContainerCode(moduleResult.sortedModules, moduleResult.moduleDependencies);
36
- this.writeContainer(containerCode);
37
- }
38
- generateContainerCode(sortedModules, moduleDependencies) {
39
- if (!sortedModules || !moduleDependencies) {
40
- const moduleResult = this.moduleDependencyResolver.resolve();
41
- sortedModules = moduleResult.sortedModules;
42
- moduleDependencies = moduleResult.moduleDependencies;
43
- }
44
- const imports = this.importGenerator.generateImports();
45
- const moduleContainers = this.generateModuleContainers(sortedModules, moduleDependencies);
46
- const aggregatedContainer = this.containerAggregator.generateAggregatedContainer(sortedModules);
47
- const typeExport = this.containerAggregator.generateModularTypeExport();
48
- return `${imports}\n\n${moduleContainers}\n\n${aggregatedContainer}\n\n${typeExport}\n`;
49
- }
50
- generateModuleContainers(sortedModules, moduleDependencies) {
51
- const moduleContainerFunctions = this.moduleContainerFunctionGenerator.generateModuleContainerFunctions(sortedModules, moduleDependencies);
52
- const moduleInstantiations = this.moduleInstantiationGenerator.generateModuleInstantiations(sortedModules, moduleDependencies);
53
- return moduleContainerFunctions.join('\n\n') + '\n\n' + moduleInstantiations.join('\n');
54
- }
55
- }
56
- exports.ModularContainerGenerator = ModularContainerGenerator;
57
- //# sourceMappingURL=modular-container-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modular-container-generator.js","sourceRoot":"","sources":["../../src/generator/modular-container-generator.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import { ClassInfo } from '../types';
2
- /**
3
- * Generator for module container functions.
4
- * Handles the creation of individual module container functions with their dependencies.
5
- */
6
- export declare class ModuleContainerFunctionGenerator {
7
- private moduleGroupedClasses;
8
- constructor(moduleGroupedClasses: Map<string, ClassInfo[]>);
9
- /**
10
- * Generates module container functions for all modules.
11
- */
12
- generateModuleContainerFunctions(sortedModules: string[], moduleDependencies: Map<string, Set<string>>): string[];
13
- private createModuleContainerFunction;
14
- private generateFunctionParameters;
15
- private createFunctionSignature;
16
- private generateModuleFunctionBody;
17
- private generateTransientFactories;
18
- private generateSingletonVariables;
19
- private generateSingletonGetters;
20
- private createSingletonGetter;
21
- private buildConstructorArguments;
22
- private resolveDependencyArgument;
23
- private findExternalModuleDependency;
24
- private findInternalModuleDependency;
25
- private generateModuleExports;
26
- private createModuleExportGetter;
27
- private sortClassesByDependencies;
28
- private camelCase;
29
- }
30
- //# sourceMappingURL=module-container-function-generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"module-container-function-generator.d.ts","sourceRoot":"","sources":["../../src/generator/module-container-function-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC;;;GAGG;AACH,qBAAa,gCAAgC;IAC3C,OAAO,CAAC,oBAAoB,CAA2B;gBAE3C,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;IAI1D;;OAEG;IACH,gCAAgC,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,EAAE;IAcjH,OAAO,CAAC,6BAA6B;IAWrC,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,0BAA0B;IAqBlC,OAAO,CAAC,0BAA0B;IAclC,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,wBAAwB;IAahC,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,yBAAyB;IAajC,OAAO,CAAC,yBAAyB;IAWjC,OAAO,CAAC,4BAA4B;IAcpC,OAAO,CAAC,4BAA4B;IAcpC,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,yBAAyB;IA6BjC,OAAO,CAAC,SAAS;CAGlB"}
@@ -1,199 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModuleContainerFunctionGenerator = void 0;
4
- /**
5
- * Generator for module container functions.
6
- * Handles the creation of individual module container functions with their dependencies.
7
- */
8
- class ModuleContainerFunctionGenerator {
9
- constructor(moduleGroupedClasses) {
10
- this.moduleGroupedClasses = moduleGroupedClasses;
11
- }
12
- /**
13
- * Generates module container functions for all modules.
14
- */
15
- generateModuleContainerFunctions(sortedModules, moduleDependencies) {
16
- const moduleContainerFunctions = [];
17
- for (const moduleName of sortedModules) {
18
- const moduleClasses = this.moduleGroupedClasses.get(moduleName);
19
- if (!moduleClasses)
20
- continue;
21
- const moduleContainerFunction = this.createModuleContainerFunction(moduleName, moduleClasses, moduleDependencies);
22
- moduleContainerFunctions.push(moduleContainerFunction);
23
- }
24
- return moduleContainerFunctions;
25
- }
26
- createModuleContainerFunction(moduleName, moduleClasses, moduleDependencies) {
27
- const moduleFunctionName = `create${moduleName}Container`;
28
- const moduleDeps = moduleDependencies.get(moduleName) || new Set();
29
- const functionParams = this.generateFunctionParameters(moduleDeps);
30
- const functionSignature = this.createFunctionSignature(moduleFunctionName, functionParams);
31
- const functionBody = this.generateModuleFunctionBody(moduleClasses, moduleDeps);
32
- return `${functionSignature} {\n${functionBody}\n}`;
33
- }
34
- generateFunctionParameters(moduleDeps) {
35
- const functionParams = [];
36
- for (const depModule of moduleDeps) {
37
- const depVarName = this.camelCase(depModule) + 'Container';
38
- functionParams.push(`${depVarName}: ReturnType<typeof create${depModule}Container>`);
39
- }
40
- return functionParams;
41
- }
42
- createFunctionSignature(functionName, params) {
43
- return params.length > 0 ?
44
- `function ${functionName}(${params.join(', ')})` :
45
- `function ${functionName}()`;
46
- }
47
- generateModuleFunctionBody(moduleClasses, moduleDeps) {
48
- const factoryFunctions = this.generateTransientFactories(moduleClasses);
49
- const lazyInitializations = this.generateSingletonVariables(moduleClasses);
50
- const lazyGetters = this.generateSingletonGetters(moduleClasses, moduleDeps);
51
- const moduleExports = this.generateModuleExports(moduleClasses);
52
- const returnObject = moduleExports.length > 0 ?
53
- ` return {\n${moduleExports.join(',\n')}\n };` :
54
- ' return {};';
55
- return [
56
- ...factoryFunctions,
57
- '',
58
- ...lazyInitializations,
59
- '',
60
- ...lazyGetters,
61
- '',
62
- returnObject
63
- ].filter(line => line !== '' || factoryFunctions.length > 0 || lazyInitializations.length > 0 || lazyGetters.length > 0).join('\n');
64
- }
65
- generateTransientFactories(moduleClasses) {
66
- const factoryFunctions = [];
67
- for (const classInfo of moduleClasses) {
68
- if (classInfo.scope === 'transient') {
69
- const instanceName = this.camelCase(classInfo.name);
70
- const factoryName = `${instanceName}Factory`;
71
- factoryFunctions.push(` const ${factoryName} = (): ${classInfo.name} => new ${classInfo.name}();`);
72
- }
73
- }
74
- return factoryFunctions;
75
- }
76
- generateSingletonVariables(moduleClasses) {
77
- const singletonClasses = moduleClasses.filter(c => c.scope !== 'transient');
78
- const sortedSingletons = this.sortClassesByDependencies(singletonClasses, moduleClasses);
79
- const lazyInitializations = [];
80
- for (const classInfo of sortedSingletons) {
81
- const instanceName = this.camelCase(classInfo.name);
82
- lazyInitializations.push(` let ${instanceName}: ${classInfo.name} | undefined;`);
83
- }
84
- return lazyInitializations;
85
- }
86
- generateSingletonGetters(moduleClasses, moduleDeps) {
87
- const singletonClasses = moduleClasses.filter(c => c.scope !== 'transient');
88
- const sortedSingletons = this.sortClassesByDependencies(singletonClasses, moduleClasses);
89
- const lazyGetters = [];
90
- for (const classInfo of sortedSingletons) {
91
- const lazyGetter = this.createSingletonGetter(classInfo, moduleClasses, moduleDeps);
92
- lazyGetters.push(lazyGetter);
93
- }
94
- return lazyGetters;
95
- }
96
- createSingletonGetter(classInfo, moduleClasses, moduleDeps) {
97
- const instanceName = this.camelCase(classInfo.name);
98
- const getterName = `get${classInfo.name}`;
99
- const constructorArgs = this.buildConstructorArguments(classInfo, moduleClasses, moduleDeps);
100
- const instantiation = constructorArgs.length > 0 ?
101
- `new ${classInfo.name}(${constructorArgs.join(', ')})` :
102
- `new ${classInfo.name}()`;
103
- return ` const ${getterName} = (): ${classInfo.name} => {\n if (!${instanceName}) {\n ${instanceName} = ${instantiation};\n }\n return ${instanceName};\n };`;
104
- }
105
- buildConstructorArguments(classInfo, moduleClasses, moduleDeps) {
106
- const constructorArgs = [];
107
- for (const dep of classInfo.dependencies) {
108
- const arg = this.resolveDependencyArgument(dep, moduleClasses, moduleDeps);
109
- if (arg) {
110
- constructorArgs.push(arg);
111
- }
112
- }
113
- return constructorArgs;
114
- }
115
- resolveDependencyArgument(dependency, moduleClasses, moduleDeps) {
116
- // Check if dependency is from another module
117
- const externalModuleArg = this.findExternalModuleDependency(dependency, moduleDeps);
118
- if (externalModuleArg) {
119
- return externalModuleArg;
120
- }
121
- // Check if dependency is from the same module
122
- return this.findInternalModuleDependency(dependency, moduleClasses);
123
- }
124
- findExternalModuleDependency(dependency, moduleDeps) {
125
- for (const depModule of moduleDeps) {
126
- const depModuleClasses = this.moduleGroupedClasses.get(depModule);
127
- if (depModuleClasses) {
128
- const depClass = depModuleClasses.find(c => c.interfaceName === dependency);
129
- if (depClass) {
130
- const depModuleVarName = this.camelCase(depModule) + 'Container';
131
- return `${depModuleVarName}.${dependency}`;
132
- }
133
- }
134
- }
135
- return null;
136
- }
137
- findInternalModuleDependency(dependency, moduleClasses) {
138
- const depClass = moduleClasses.find(c => c.interfaceName === dependency);
139
- if (depClass) {
140
- if (depClass.scope === 'transient') {
141
- const depInstanceName = this.camelCase(depClass.name);
142
- return `${depInstanceName}Factory()`;
143
- }
144
- else {
145
- const depGetterName = `get${depClass.name}`;
146
- return `${depGetterName}()`;
147
- }
148
- }
149
- return null;
150
- }
151
- generateModuleExports(moduleClasses) {
152
- const moduleExports = [];
153
- for (const classInfo of moduleClasses) {
154
- if (classInfo.interfaceName) {
155
- const exportGetter = this.createModuleExportGetter(classInfo);
156
- moduleExports.push(exportGetter);
157
- }
158
- }
159
- return moduleExports;
160
- }
161
- createModuleExportGetter(classInfo) {
162
- const instanceName = this.camelCase(classInfo.name);
163
- const isTransient = classInfo.scope === 'transient';
164
- if (isTransient) {
165
- return ` get ${classInfo.interfaceName}(): ${classInfo.name} {\n return ${instanceName}Factory();\n }`;
166
- }
167
- else {
168
- const getterName = `get${classInfo.name}`;
169
- return ` get ${classInfo.interfaceName}(): ${classInfo.name} {\n return ${getterName}();\n }`;
170
- }
171
- }
172
- sortClassesByDependencies(classes, allModuleClasses) {
173
- // Import TopologicalSorter when needed
174
- const { TopologicalSorter } = require('../utils/topological-sorter');
175
- // Build dependency graph for classes within the module
176
- const dependencyGraph = new Map();
177
- for (const classInfo of classes) {
178
- const dependencies = [];
179
- // Only include dependencies that are within the same module and are singletons
180
- for (const dep of classInfo.dependencies) {
181
- const depClass = allModuleClasses.find(c => c.interfaceName === dep && c.scope !== 'transient');
182
- if (depClass && classes.includes(depClass)) {
183
- dependencies.push(depClass.name);
184
- }
185
- }
186
- dependencyGraph.set(classInfo.name, dependencies);
187
- }
188
- // Use TopologicalSorter to sort the classes
189
- const sortResult = TopologicalSorter.sort(dependencyGraph);
190
- // Map sorted class names back to ClassInfo objects
191
- const classMap = new Map(classes.map(c => [c.name, c]));
192
- return sortResult.sorted.map(className => classMap.get(className)).filter((classInfo) => classInfo !== undefined);
193
- }
194
- camelCase(str) {
195
- return str.charAt(0).toLowerCase() + str.slice(1).replace(/[^a-zA-Z0-9]/g, '');
196
- }
197
- }
198
- exports.ModuleContainerFunctionGenerator = ModuleContainerFunctionGenerator;
199
- //# sourceMappingURL=module-container-function-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"module-container-function-generator.js","sourceRoot":"","sources":["../../src/generator/module-container-function-generator.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- import { ClassInfo, ConstructorParameter } from '../../types';
2
- /**
3
- * Shared utility class for dependency resolution functionality used by both
4
- * flat and modular container generators.
5
- */
6
- export declare class DependencyResolverUtils {
7
- /**
8
- * Creates a map of interface names to their implementing class names.
9
- */
10
- static createInterfaceToClassMap(classes: ClassInfo[]): Map<string, string>;
11
- /**
12
- * Gets default value for a type when no implementation is found.
13
- */
14
- static getDefaultValueForType(type: string, isOptional: boolean): string;
15
- /**
16
- * Generates constructor arguments for unmanaged dependencies.
17
- */
18
- static generateConstructorArgs(params: ConstructorParameter[]): string;
19
- /**
20
- * Creates an instance of an unmanaged dependency.
21
- */
22
- static createUnmanagedDependencyInstance(className: string, classInfo?: ClassInfo): string;
23
- /**
24
- * Finds a class by its interface name in a collection of classes.
25
- */
26
- static findClassByInterface(interfaceName: string, classes: ClassInfo[]): ClassInfo | undefined;
27
- }
28
- //# sourceMappingURL=dependency-resolver-utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependency-resolver-utils.d.ts","sourceRoot":"","sources":["../../../src/generator/shared/dependency-resolver-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAG9D;;;GAGG;AACH,qBAAa,uBAAuB;IAClC;;OAEG;IACH,MAAM,CAAC,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAU3E;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM;IAqBxE;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM;IAItE;;OAEG;IACH,MAAM,CAAC,iCAAiC,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM;IAS1F;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,SAAS,GAAG,SAAS;CAGhG"}