@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,162 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DuplicateImportResolver = void 0;
4
- /**
5
- * Handles resolving duplicate class names in imports and ensures consistent
6
- * alias usage throughout the generated container code.
7
- */
8
- class DuplicateImportResolver {
9
- constructor(classes) {
10
- this.classAliasMap = new Map();
11
- this.importPathMap = new Map();
12
- this.aliasToClassMap = new Map();
13
- this.classes = classes;
14
- this.generateClassAliases();
15
- }
16
- /**
17
- * Generates unique aliases for classes with the same name but different import paths
18
- */
19
- generateClassAliases() {
20
- // Group classes by name to find duplicates
21
- const classesByName = new Map();
22
- for (const classInfo of this.classes) {
23
- const existing = classesByName.get(classInfo.name) || [];
24
- existing.push(classInfo);
25
- classesByName.set(classInfo.name, existing);
26
- // Store the import path for each class
27
- this.importPathMap.set(this.getClassKey(classInfo), classInfo.importPath);
28
- }
29
- // Create aliases for classes with name collisions
30
- for (const [className, classInfos] of classesByName.entries()) {
31
- if (classInfos.length === 1 && classInfos[0]) {
32
- // No collision, use the original name
33
- const key = this.getClassKey(classInfos[0]);
34
- this.classAliasMap.set(key, className);
35
- this.aliasToClassMap.set(className, key);
36
- }
37
- else {
38
- // Handle name collision by creating unique aliases
39
- for (const classInfo of classInfos) {
40
- // Create an alias based on the module/directory name
41
- const moduleName = this.extractModuleNameFromPath(classInfo.importPath);
42
- const alias = `${moduleName}${className}`;
43
- const key = this.getClassKey(classInfo);
44
- this.classAliasMap.set(key, alias);
45
- this.aliasToClassMap.set(alias, key);
46
- }
47
- }
48
- }
49
- }
50
- /**
51
- * Creates a unique key for a class based on its name and import path
52
- */
53
- getClassKey(classInfo) {
54
- return `${classInfo.name}:${classInfo.importPath}`;
55
- }
56
- /**
57
- * Extracts a module name from an import path to use in alias creation
58
- */
59
- extractModuleNameFromPath(importPath) {
60
- // Get the directory name from the import path
61
- const normalizedPath = importPath.replace(/\.\//, '');
62
- const parts = normalizedPath.split('/');
63
- // Use the first directory as the module name
64
- if (parts.length > 0 && parts[0]) {
65
- // Capitalize the first letter of the module name
66
- const firstChar = parts[0].charAt(0);
67
- const restOfString = parts[0].slice(1);
68
- const moduleName = firstChar.toUpperCase() + restOfString;
69
- return moduleName;
70
- }
71
- return 'Module';
72
- }
73
- /**
74
- * Gets the alias for a class based on its name and import path
75
- */
76
- getClassAlias(className, importPath) {
77
- const key = `${className}:${importPath}`;
78
- return this.classAliasMap.get(key) || className;
79
- }
80
- /**
81
- * Gets the import path for a class based on its name and alias
82
- */
83
- getImportPathForClass(className, alias) {
84
- // Find the class key that maps to this alias
85
- const key = this.aliasToClassMap.get(alias);
86
- if (key) {
87
- return this.importPathMap.get(key);
88
- }
89
- return undefined;
90
- }
91
- /**
92
- * Resolves a class reference to its proper alias based on the context
93
- * @param className The name of the class to resolve
94
- * @param contextClass The class that is referencing the target class
95
- * @returns The proper alias to use for the class in this context
96
- */
97
- resolveClassReference(className, contextClass) {
98
- // Find all classes with this name
99
- const matchingClasses = this.classes.filter(c => c.name === className);
100
- if (matchingClasses.length === 1 && matchingClasses[0]) {
101
- // No collision, return the class name or its alias
102
- return this.getClassAlias(className, matchingClasses[0].importPath);
103
- }
104
- // For collisions, try to determine the correct class based on dependencies
105
- const contextDependencies = contextClass.dependencies || [];
106
- // Check if the context class has a direct dependency on one of the matching classes
107
- for (const matchingClass of matchingClasses) {
108
- if (contextDependencies.includes(matchingClass.name)) {
109
- // Found a direct dependency, use its alias
110
- return this.getClassAlias(matchingClass.name, matchingClass.importPath);
111
- }
112
- }
113
- // If no direct dependency is found, try to infer from the import path
114
- // Classes in the same module are more likely to be the intended reference
115
- const contextModule = this.extractModuleNameFromPath(contextClass.importPath).toLowerCase();
116
- for (const matchingClass of matchingClasses) {
117
- const matchingModule = this.extractModuleNameFromPath(matchingClass.importPath).toLowerCase();
118
- if (matchingModule === contextModule) {
119
- // Same module, likely the intended reference
120
- return this.getClassAlias(matchingClass.name, matchingClass.importPath);
121
- }
122
- }
123
- // If all else fails, return the first matching class's alias with a warning
124
- console.warn(`Warning: Ambiguous class reference '${className}' in ${contextClass.name}. Using first match.`);
125
- if (matchingClasses.length > 0 && matchingClasses[0]) {
126
- return this.getClassAlias(matchingClasses[0].name, matchingClasses[0].importPath);
127
- }
128
- // Fallback to the original class name if no matches found
129
- return className;
130
- }
131
- /**
132
- * Generates import statements for all classes
133
- */
134
- generateImports() {
135
- const importMap = new Map();
136
- // Add imports for all managed classes
137
- for (const classInfo of this.classes) {
138
- const alias = this.getClassAlias(classInfo.name, classInfo.importPath);
139
- const importPath = classInfo.importPath;
140
- // Group imports by path
141
- if (!importMap.has(importPath)) {
142
- importMap.set(importPath, new Set());
143
- }
144
- const importSet = importMap.get(importPath);
145
- // If the alias is different from the class name, use the 'as' syntax
146
- if (alias !== classInfo.name) {
147
- importSet.add(`${classInfo.name} as ${alias}`);
148
- }
149
- else {
150
- importSet.add(classInfo.name);
151
- }
152
- }
153
- // Generate import statements
154
- const imports = [];
155
- for (const [importPath, classNames] of importMap.entries()) {
156
- imports.push(`import { ${Array.from(classNames).join(', ')} } from '${importPath}';`);
157
- }
158
- return imports.join('\n');
159
- }
160
- }
161
- exports.DuplicateImportResolver = DuplicateImportResolver;
162
- //# sourceMappingURL=duplicate-import-resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"duplicate-import-resolver.js","sourceRoot":"","sources":["../../src/generator/duplicate-import-resolver.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { ClassInfo } from '../../types';
2
- export declare class ContainerGenerator {
3
- private classes;
4
- constructor(classes: ClassInfo[]);
5
- generateContainerObject(): string;
6
- generateTypeExport(): string;
7
- }
8
- //# sourceMappingURL=container-generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"container-generator.d.ts","sourceRoot":"","sources":["../../../src/generator/flat/container-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAc;gBAEjB,OAAO,EAAE,SAAS,EAAE;IAIhC,uBAAuB,IAAI,MAAM;IAIjC,kBAAkB,IAAI,MAAM;CAG7B"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ContainerGenerator = void 0;
4
- const instantiation_utils_1 = require("../shared/instantiation-utils");
5
- class ContainerGenerator {
6
- constructor(classes) {
7
- this.classes = classes;
8
- }
9
- generateContainerObject() {
10
- return instantiation_utils_1.InstantiationUtils.generateContainerObject(this.classes);
11
- }
12
- generateTypeExport() {
13
- return instantiation_utils_1.InstantiationUtils.generateContainerTypeExport();
14
- }
15
- }
16
- exports.ContainerGenerator = ContainerGenerator;
17
- //# sourceMappingURL=container-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"container-generator.js","sourceRoot":"","sources":["../../../src/generator/flat/container-generator.ts"],"names":[],"mappings":";;;AACA,uEAAmE;AAEnE,MAAa,kBAAkB;IAG7B,YAAY,OAAoB;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,uBAAuB;QACrB,OAAO,wCAAkB,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,kBAAkB;QAChB,OAAO,wCAAkB,CAAC,2BAA2B,EAAE,CAAC;IAC1D,CAAC;CACF;AAdD,gDAcC"}
@@ -1,8 +0,0 @@
1
- import { ClassInfo } from '../../types';
2
- export declare class DependencyResolver {
3
- private classes;
4
- constructor(classes: ClassInfo[]);
5
- resolveDependencies(classInfo: ClassInfo, interfaceToClassMap: Map<string, string>, classMap: Map<string, ClassInfo>): string;
6
- private createUnmanagedDependencyInstance;
7
- }
8
- //# sourceMappingURL=dependency-resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependency-resolver.d.ts","sourceRoot":"","sources":["../../../src/generator/flat/dependency-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAwB,MAAM,aAAa,CAAC;AAG9D,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAc;gBAEjB,OAAO,EAAE,SAAS,EAAE;IAKhC,mBAAmB,CACjB,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACxC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAC/B,MAAM;IA4BT,OAAO,CAAC,iCAAiC;CAM1C"}
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DependencyResolver = void 0;
4
- const shared_1 = require("../shared");
5
- class DependencyResolver {
6
- constructor(classes) {
7
- this.classes = classes;
8
- }
9
- resolveDependencies(classInfo, interfaceToClassMap, classMap) {
10
- return classInfo.dependencies
11
- .map(dep => {
12
- // Check if dependency is an interface name
13
- const implementingClass = interfaceToClassMap.get(dep);
14
- if (implementingClass) {
15
- const depClassInfo = classMap.get(implementingClass);
16
- if (depClassInfo && depClassInfo.scope === 'transient') {
17
- // For transient dependencies, use factory call
18
- return `${shared_1.InstantiationUtils.toCamelCase(implementingClass)}Factory()`;
19
- }
20
- return shared_1.InstantiationUtils.toCamelCase(implementingClass);
21
- }
22
- // Check if dependency is a class name
23
- if (classMap.has(dep)) {
24
- const depClassInfo = classMap.get(dep);
25
- if (depClassInfo && depClassInfo.scope === 'transient') {
26
- return `${shared_1.InstantiationUtils.toCamelCase(dep)}Factory()`;
27
- }
28
- return shared_1.InstantiationUtils.toCamelCase(dep);
29
- }
30
- // Check if dependency is a class that exists in the same file but not managed
31
- return this.createUnmanagedDependencyInstance(dep);
32
- })
33
- .filter(dep => dep !== null)
34
- .join(', ');
35
- }
36
- createUnmanagedDependencyInstance(className) {
37
- // Find the class info for this unmanaged dependency
38
- const classInfo = this.classes.find(c => c.name === className);
39
- return shared_1.InstantiationUtils.createUnmanagedDependencyInstance(className, classInfo);
40
- }
41
- }
42
- exports.DependencyResolver = DependencyResolver;
43
- //# sourceMappingURL=dependency-resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependency-resolver.js","sourceRoot":"","sources":["../../../src/generator/flat/dependency-resolver.ts"],"names":[],"mappings":";;;AACA,sCAA+C;AAE/C,MAAa,kBAAkB;IAG7B,YAAY,OAAoB;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAGD,mBAAmB,CACjB,SAAoB,EACpB,mBAAwC,EACxC,QAAgC;QAEhC,OAAO,SAAS,CAAC,YAAY;aAC1B,GAAG,CAAC,GAAG,CAAC,EAAE;YACT,2CAA2C;YAC3C,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvD,IAAI,iBAAiB,EAAE,CAAC;gBACtB,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBACrD,IAAI,YAAY,IAAI,YAAY,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;oBACvD,+CAA+C;oBAC/C,OAAO,GAAG,2BAAkB,CAAC,WAAW,CAAC,iBAAiB,CAAC,WAAW,CAAC;gBACzE,CAAC;gBACD,OAAO,2BAAkB,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;YAC3D,CAAC;YACD,sCAAsC;YACtC,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,YAAY,IAAI,YAAY,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;oBACvD,OAAO,GAAG,2BAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;gBAC3D,CAAC;gBACD,OAAO,2BAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC7C,CAAC;YACD,8EAA8E;YAC9E,OAAO,IAAI,CAAC,iCAAiC,CAAC,GAAG,CAAC,CAAC;QACrD,CAAC,CAAC;aACD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC;aAC3B,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEO,iCAAiC,CAAC,SAAiB;QACzD,oDAAoD;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAC/D,OAAO,2BAAkB,CAAC,iCAAiC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACpF,CAAC;CAEF;AA9CD,gDA8CC"}
@@ -1,25 +0,0 @@
1
- import { ClassInfo } from '../../types';
2
- import { DependencyResolver } from '../../analyser/dependency-resolver';
3
- import { ContainerGenerator as ContainerCodeGenerator } from './container-generator';
4
- import { InstantiationGenerator } from './instantiation-generator';
5
- import { BaseContainerGenerator } from '../base-container-generator';
6
- import { ImportGenerator } from '../import-generator';
7
- import { FileWriter } from '../file-writer';
8
- /**
9
- * Generator for flat (non-modular) container structure.
10
- * Handles the traditional single-container approach.
11
- */
12
- export declare class FlatContainerGenerator extends BaseContainerGenerator {
13
- private dependencyResolver;
14
- private instantiationGenerator;
15
- private containerCodeGenerator;
16
- private classes;
17
- constructor(fileWriter: FileWriter, classes: ClassInfo[], dependencyResolver: DependencyResolver, importGenerator: ImportGenerator, instantiationGenerator: InstantiationGenerator, containerCodeGenerator: ContainerCodeGenerator);
18
- generate(): void;
19
- protected generateContainerCode(sortedClasses?: string[]): string;
20
- /**
21
- * Get the classes managed by this generator.
22
- */
23
- getClasses(): ClassInfo[];
24
- }
25
- //# sourceMappingURL=flat-container-generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flat-container-generator.d.ts","sourceRoot":"","sources":["../../../src/generator/flat/flat-container-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,kBAAkB,IAAI,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,sBAAsB;IAChE,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,sBAAsB,CAAyB;IACvD,OAAO,CAAC,sBAAsB,CAAyB;IACvD,OAAO,CAAC,OAAO,CAAc;gBAG3B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,SAAS,EAAE,EACpB,kBAAkB,EAAE,kBAAkB,EACtC,eAAe,EAAE,eAAe,EAChC,sBAAsB,EAAE,sBAAsB,EAC9C,sBAAsB,EAAE,sBAAsB;IAShD,QAAQ,IAAI,IAAI;IAWhB,SAAS,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;IAcjE;;OAEG;IACH,UAAU,IAAI,SAAS,EAAE;CAG1B"}
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FlatContainerGenerator = void 0;
4
- const base_container_generator_1 = require("../base-container-generator");
5
- /**
6
- * Generator for flat (non-modular) container structure.
7
- * Handles the traditional single-container approach.
8
- */
9
- class FlatContainerGenerator extends base_container_generator_1.BaseContainerGenerator {
10
- constructor(fileWriter, classes, dependencyResolver, importGenerator, instantiationGenerator, containerCodeGenerator) {
11
- super(fileWriter, importGenerator);
12
- this.classes = classes;
13
- this.dependencyResolver = dependencyResolver;
14
- this.instantiationGenerator = instantiationGenerator;
15
- this.containerCodeGenerator = containerCodeGenerator;
16
- }
17
- generate() {
18
- const sortResult = this.dependencyResolver.resolve();
19
- if (sortResult.cycles.length > 0) {
20
- throw new Error(`Circular dependencies detected: ${JSON.stringify(sortResult.cycles)}`);
21
- }
22
- const containerCode = this.generateContainerCode(sortResult.sorted);
23
- this.writeContainer(containerCode);
24
- }
25
- generateContainerCode(sortedClasses) {
26
- if (!sortedClasses) {
27
- const sortResult = this.dependencyResolver.resolve();
28
- sortedClasses = sortResult.sorted;
29
- }
30
- const imports = this.importGenerator.generateImports();
31
- const instantiations = this.instantiationGenerator.generateInstantiations(sortedClasses);
32
- const containerObject = this.containerCodeGenerator.generateContainerObject();
33
- const typeExport = this.containerCodeGenerator.generateTypeExport();
34
- return `${imports}\n\n${instantiations}\n\n${containerObject}\n\n${typeExport}\n`;
35
- }
36
- /**
37
- * Get the classes managed by this generator.
38
- */
39
- getClasses() {
40
- return this.classes;
41
- }
42
- }
43
- exports.FlatContainerGenerator = FlatContainerGenerator;
44
- //# sourceMappingURL=flat-container-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flat-container-generator.js","sourceRoot":"","sources":["../../../src/generator/flat/flat-container-generator.ts"],"names":[],"mappings":";;;AAIA,0EAAqE;AAIrE;;;GAGG;AACH,MAAa,sBAAuB,SAAQ,iDAAsB;IAMhE,YACE,UAAsB,EACtB,OAAoB,EACpB,kBAAsC,EACtC,eAAgC,EAChC,sBAA8C,EAC9C,sBAA8C;QAE9C,KAAK,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IACvD,CAAC;IAED,QAAQ;QACN,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;QAErD,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IAES,qBAAqB,CAAC,aAAwB;QACtD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;YACrD,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC;QACpC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;QACvD,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;QACzF,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;QAC9E,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,CAAC;QAEpE,OAAO,GAAG,OAAO,OAAO,cAAc,OAAO,eAAe,OAAO,UAAU,IAAI,CAAC;IACpF,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AApDD,wDAoDC"}
@@ -1,24 +0,0 @@
1
- import { ClassInfo } from '../../types';
2
- export declare class InstantiationGenerator {
3
- private classes;
4
- private classMap;
5
- private interfaceToClassMap;
6
- constructor(classes: ClassInfo[]);
7
- /**
8
- * Generates the instantiation code for all classes.
9
- */
10
- generateInstantiationCode(classes: ClassInfo[]): string;
11
- generateInstantiations(sortedClasses: string[]): string;
12
- private separateClassesByScope;
13
- private filterSingletonClassNames;
14
- private generateTransientFactories;
15
- private createTransientFactory;
16
- private generateSingletonVariables;
17
- private generateSingletonGetters;
18
- private createSingletonGetter;
19
- private generateConstructorArguments;
20
- private resolveParameterDependency;
21
- private getDefaultValueForType;
22
- private getTargetDependency;
23
- }
24
- //# sourceMappingURL=instantiation-generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"instantiation-generator.d.ts","sourceRoot":"","sources":["../../../src/generator/flat/instantiation-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,mBAAmB,CAAsB;gBAErC,OAAO,EAAE,SAAS,EAAE;IAMhC;;OAEG;IACH,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM;IAkBvD,sBAAsB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM;IAavD,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,0BAA0B;IAelC,OAAO,CAAC,wBAAwB;IAahC,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,4BAA4B;IAUpC,OAAO,CAAC,0BAA0B;IAoBlC,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,mBAAmB;CAW5B"}
@@ -1,125 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InstantiationGenerator = void 0;
4
- const shared_1 = require("../shared");
5
- class InstantiationGenerator {
6
- constructor(classes) {
7
- this.classes = classes;
8
- this.classMap = new Map(classes.map(c => [c.name, c]));
9
- this.interfaceToClassMap = shared_1.InstantiationUtils.createInterfaceToClassMap(this.classes);
10
- }
11
- /**
12
- * Generates the instantiation code for all classes.
13
- */
14
- generateInstantiationCode(classes) {
15
- const constructorArgsResolver = (classInfo) => {
16
- return this.generateConstructorArguments(classInfo);
17
- };
18
- const factoryFunctions = shared_1.InstantiationUtils.generateTransientFactoriesSection(classes, constructorArgsResolver, '');
19
- const singletonVariables = shared_1.InstantiationUtils.generateSingletonVariablesSection(classes, '');
20
- const singletonGetters = shared_1.InstantiationUtils.generateSingletonGettersSection(classes, constructorArgsResolver, '');
21
- return [
22
- ...factoryFunctions,
23
- '',
24
- ...singletonVariables,
25
- '',
26
- ...singletonGetters
27
- ].filter(line => line !== '' || factoryFunctions.length > 0 || singletonVariables.length > 0 || singletonGetters.length > 0).join('\n');
28
- }
29
- generateInstantiations(sortedClasses) {
30
- const { singletonClasses, transientClasses } = this.separateClassesByScope();
31
- const singletonClassNames = this.filterSingletonClassNames(sortedClasses, singletonClasses);
32
- const sections = [
33
- this.generateTransientFactories(transientClasses),
34
- this.generateSingletonVariables(singletonClassNames),
35
- this.generateSingletonGetters(singletonClassNames)
36
- ].filter(section => section.length > 0);
37
- return sections.join('\n\n');
38
- }
39
- separateClassesByScope() {
40
- return shared_1.InstantiationUtils.filterClassesByScope(this.classes);
41
- }
42
- filterSingletonClassNames(sortedClasses, singletonClasses) {
43
- return sortedClasses.filter(name => singletonClasses.some(c => c.name === name));
44
- }
45
- generateTransientFactories(transientClasses) {
46
- if (transientClasses.length === 0)
47
- return '';
48
- const factories = transientClasses.map(classInfo => this.createTransientFactory(classInfo));
49
- return [
50
- '// Lazy loading setup for transient dependencies',
51
- ...factories
52
- ].join('\n');
53
- }
54
- createTransientFactory(classInfo) {
55
- const constructorArgs = this.generateConstructorArguments(classInfo);
56
- return shared_1.InstantiationUtils.generateTransientFactory(classInfo, constructorArgs);
57
- }
58
- generateSingletonVariables(singletonClassNames) {
59
- if (singletonClassNames.length === 0)
60
- return '';
61
- const variables = singletonClassNames.map(className => {
62
- const classInfo = this.classMap.get(className);
63
- if (!classInfo)
64
- return '';
65
- return shared_1.InstantiationUtils.generateSingletonVariable(classInfo);
66
- }).filter(Boolean);
67
- return [
68
- '// Lazy initialization variables for singletons',
69
- ...variables
70
- ].join('\n');
71
- }
72
- generateSingletonGetters(singletonClassNames) {
73
- if (singletonClassNames.length === 0)
74
- return '';
75
- const getters = [...singletonClassNames].reverse().map(className => this.createSingletonGetter(className)).filter(getter => getter !== null);
76
- return [
77
- '// Lazy getter functions for singletons',
78
- ...getters
79
- ].join('\n');
80
- }
81
- createSingletonGetter(className) {
82
- const classInfo = this.classMap.get(className);
83
- if (!classInfo)
84
- return null;
85
- const constructorArgs = this.generateConstructorArguments(classInfo);
86
- return shared_1.InstantiationUtils.generateSingletonGetter(classInfo, constructorArgs);
87
- }
88
- generateConstructorArguments(classInfo) {
89
- if (classInfo.constructorParams.length === 0)
90
- return '';
91
- const args = classInfo.constructorParams.map((param, paramIndex) => this.resolveParameterDependency(classInfo, param, paramIndex));
92
- return shared_1.InstantiationUtils.joinConstructorArguments(args);
93
- }
94
- resolveParameterDependency(classInfo, param, paramIndex) {
95
- const targetDependency = this.getTargetDependency(classInfo, param, paramIndex);
96
- // Try to resolve using shared utility first
97
- const basicResolution = shared_1.InstantiationUtils.resolveBasicDependency(targetDependency, this.classes, this.interfaceToClassMap);
98
- if (basicResolution) {
99
- return basicResolution;
100
- }
101
- if (classInfo.dependencies.includes(targetDependency)) {
102
- return `new ${targetDependency}()`;
103
- }
104
- return this.getDefaultValueForType(param.type, param.isOptional);
105
- }
106
- getDefaultValueForType(type, isOptional) {
107
- // For class types, try to find if it's a managed dependency
108
- const classMap = new Map(this.classes.map(c => [c.name, c]));
109
- if (classMap.has(type)) {
110
- return shared_1.InstantiationUtils.toCamelCase(type);
111
- }
112
- return shared_1.InstantiationUtils.getDefaultValueForType(type, isOptional);
113
- }
114
- getTargetDependency(classInfo, param, paramIndex) {
115
- if (paramIndex < classInfo.dependencies.length) {
116
- const resolvedDep = classInfo.dependencies[paramIndex];
117
- if (resolvedDep)
118
- return resolvedDep;
119
- }
120
- const directMatch = classInfo.dependencies.find(dep => dep === param.type);
121
- return directMatch || param.type;
122
- }
123
- }
124
- exports.InstantiationGenerator = InstantiationGenerator;
125
- //# sourceMappingURL=instantiation-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"instantiation-generator.js","sourceRoot":"","sources":["../../../src/generator/flat/instantiation-generator.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- import { ClassInfo } from '../types';
2
- import { DependencyResolver } from '../analyser/dependency-resolver';
3
- import { ContainerGenerator as ContainerCodeGenerator } from './container-generator';
4
- import { InstantiationGenerator } from './instantiation-generator';
5
- import { BaseContainerGenerator } from './base-container-generator';
6
- import { ImportGenerator } from './import-generator';
7
- import { FileWriter } from './file-writer';
8
- /**
9
- * Generator for flat (non-modular) container structure.
10
- * Handles the traditional single-container approach.
11
- */
12
- export declare class FlatContainerGenerator extends BaseContainerGenerator {
13
- private dependencyResolver;
14
- private instantiationGenerator;
15
- private containerCodeGenerator;
16
- private classes;
17
- constructor(fileWriter: FileWriter, classes: ClassInfo[], dependencyResolver: DependencyResolver, importGenerator: ImportGenerator, instantiationGenerator: InstantiationGenerator, containerCodeGenerator: ContainerCodeGenerator);
18
- generate(): void;
19
- protected generateContainerCode(sortedClasses?: string[]): string;
20
- /**
21
- * Get the classes managed by this generator.
22
- */
23
- getClasses(): ClassInfo[];
24
- }
25
- //# sourceMappingURL=flat-container-generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flat-container-generator.d.ts","sourceRoot":"","sources":["../../src/generator/flat-container-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,kBAAkB,IAAI,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,sBAAsB;IAChE,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,sBAAsB,CAAyB;IACvD,OAAO,CAAC,sBAAsB,CAAyB;IACvD,OAAO,CAAC,OAAO,CAAc;gBAG3B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,SAAS,EAAE,EACpB,kBAAkB,EAAE,kBAAkB,EACtC,eAAe,EAAE,eAAe,EAChC,sBAAsB,EAAE,sBAAsB,EAC9C,sBAAsB,EAAE,sBAAsB;IAShD,QAAQ,IAAI,IAAI;IAWhB,SAAS,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;IAcjE;;OAEG;IACH,UAAU,IAAI,SAAS,EAAE;CAG1B"}
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FlatContainerGenerator = void 0;
4
- const base_container_generator_1 = require("./base-container-generator");
5
- /**
6
- * Generator for flat (non-modular) container structure.
7
- * Handles the traditional single-container approach.
8
- */
9
- class FlatContainerGenerator extends base_container_generator_1.BaseContainerGenerator {
10
- constructor(fileWriter, classes, dependencyResolver, importGenerator, instantiationGenerator, containerCodeGenerator) {
11
- super(fileWriter, importGenerator);
12
- this.classes = classes;
13
- this.dependencyResolver = dependencyResolver;
14
- this.instantiationGenerator = instantiationGenerator;
15
- this.containerCodeGenerator = containerCodeGenerator;
16
- }
17
- generate() {
18
- const sortResult = this.dependencyResolver.resolve();
19
- if (sortResult.cycles.length > 0) {
20
- throw new Error(`Circular dependencies detected: ${JSON.stringify(sortResult.cycles)}`);
21
- }
22
- const containerCode = this.generateContainerCode(sortResult.sorted);
23
- this.writeContainer(containerCode);
24
- }
25
- generateContainerCode(sortedClasses) {
26
- if (!sortedClasses) {
27
- const sortResult = this.dependencyResolver.resolve();
28
- sortedClasses = sortResult.sorted;
29
- }
30
- const imports = this.importGenerator.generateImports();
31
- const instantiations = this.instantiationGenerator.generateInstantiations(sortedClasses);
32
- const containerObject = this.containerCodeGenerator.generateContainerObject();
33
- const typeExport = this.containerCodeGenerator.generateTypeExport();
34
- return `${imports}\n\n${instantiations}\n\n${containerObject}\n\n${typeExport}\n`;
35
- }
36
- /**
37
- * Get the classes managed by this generator.
38
- */
39
- getClasses() {
40
- return this.classes;
41
- }
42
- }
43
- exports.FlatContainerGenerator = FlatContainerGenerator;
44
- //# sourceMappingURL=flat-container-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flat-container-generator.js","sourceRoot":"","sources":["../../src/generator/flat-container-generator.ts"],"names":[],"mappings":";;;AAIA,yEAAoE;AAIpE;;;GAGG;AACH,MAAa,sBAAuB,SAAQ,iDAAsB;IAMhE,YACE,UAAsB,EACtB,OAAoB,EACpB,kBAAsC,EACtC,eAAgC,EAChC,sBAA8C,EAC9C,sBAA8C;QAE9C,KAAK,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IACvD,CAAC;IAED,QAAQ;QACN,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;QAErD,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IAES,qBAAqB,CAAC,aAAwB;QACtD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;YACrD,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC;QACpC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;QACvD,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;QACzF,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;QAC9E,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,CAAC;QAEpE,OAAO,GAAG,OAAO,OAAO,cAAc,OAAO,eAAe,OAAO,UAAU,IAAI,CAAC;IACpF,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AApDD,wDAoDC"}
@@ -1,21 +0,0 @@
1
- import { ClassInfo } from '../types';
2
- export declare class InstantiationGenerator {
3
- private classes;
4
- private dependencyResolver;
5
- private classMap;
6
- private interfaceToClassMap;
7
- constructor(classes: ClassInfo[]);
8
- generateInstantiations(sortedClasses: string[]): string;
9
- private separateClassesByScope;
10
- private filterSingletonClassNames;
11
- private generateTransientFactories;
12
- private createTransientFactory;
13
- private generateSingletonVariables;
14
- private generateSingletonGetters;
15
- private createSingletonGetter;
16
- private generateConstructorArguments;
17
- private resolveParameterDependency;
18
- private getTargetDependency;
19
- private createManagedDependencyCall;
20
- }
21
- //# sourceMappingURL=instantiation-generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"instantiation-generator.d.ts","sourceRoot":"","sources":["../../src/generator/instantiation-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAIrC,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,mBAAmB,CAAsB;gBAErC,OAAO,EAAE,SAAS,EAAE;IAOhC,sBAAsB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM;IAavD,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,0BAA0B;IAclC,OAAO,CAAC,wBAAwB;IAahC,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,4BAA4B;IAUpC,OAAO,CAAC,0BAA0B;IAgBlC,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,2BAA2B;CAMpC"}