@notjustcoders/ioc-arise 1.0.5 → 1.0.8

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 (141) hide show
  1. package/dist/__tests__/generator/container-generator.test.js +1 -1
  2. package/dist/__tests__/generator/container-generator.test.js.map +1 -1
  3. package/dist/__tests__/generator/dependency-resolver.test.js +1 -1
  4. package/dist/__tests__/generator/dependency-resolver.test.js.map +1 -1
  5. package/dist/__tests__/generator/instantiation-generator.test.js +1 -1
  6. package/dist/__tests__/generator/instantiation-generator.test.js.map +1 -1
  7. package/dist/commands/generate.d.ts.map +1 -1
  8. package/dist/commands/generate.js +2 -8
  9. package/dist/commands/generate.js.map +1 -1
  10. package/dist/container.gen.d.ts +18 -0
  11. package/dist/container.gen.d.ts.map +1 -0
  12. package/dist/container.gen.js +88 -0
  13. package/dist/container.gen.js.map +1 -0
  14. package/dist/generator/base-container-code-generator.d.ts +15 -0
  15. package/dist/generator/base-container-code-generator.d.ts.map +1 -0
  16. package/dist/generator/base-container-code-generator.js +23 -0
  17. package/dist/generator/base-container-code-generator.js.map +1 -0
  18. package/dist/generator/base-container-generator.d.ts +1 -1
  19. package/dist/generator/base-container-generator.d.ts.map +1 -1
  20. package/dist/generator/base-container-generator.js +2 -3
  21. package/dist/generator/base-container-generator.js.map +1 -1
  22. package/dist/generator/base-dependency-resolver.d.ts +26 -0
  23. package/dist/generator/base-dependency-resolver.d.ts.map +1 -0
  24. package/dist/generator/base-dependency-resolver.js +72 -0
  25. package/dist/generator/base-dependency-resolver.js.map +1 -0
  26. package/dist/generator/base-instantiation-generator.d.ts +55 -0
  27. package/dist/generator/base-instantiation-generator.d.ts.map +1 -0
  28. package/dist/generator/base-instantiation-generator.js +117 -0
  29. package/dist/generator/base-instantiation-generator.js.map +1 -0
  30. package/dist/generator/container-generator-factory.d.ts +2 -2
  31. package/dist/generator/container-generator-factory.d.ts.map +1 -1
  32. package/dist/generator/container-generator-factory.js +22 -26
  33. package/dist/generator/container-generator-factory.js.map +1 -1
  34. package/dist/generator/duplicate-import-resolver.d.ts +44 -0
  35. package/dist/generator/duplicate-import-resolver.d.ts.map +1 -0
  36. package/dist/generator/duplicate-import-resolver.js +162 -0
  37. package/dist/generator/duplicate-import-resolver.js.map +1 -0
  38. package/dist/generator/flat/container-generator.d.ts +8 -0
  39. package/dist/generator/flat/container-generator.d.ts.map +1 -0
  40. package/dist/generator/flat/container-generator.js +17 -0
  41. package/dist/generator/flat/container-generator.js.map +1 -0
  42. package/dist/generator/flat/dependency-resolver.d.ts +8 -0
  43. package/dist/generator/flat/dependency-resolver.d.ts.map +1 -0
  44. package/dist/generator/flat/dependency-resolver.js +43 -0
  45. package/dist/generator/flat/dependency-resolver.js.map +1 -0
  46. package/dist/generator/flat/flat-container-generator.d.ts +25 -0
  47. package/dist/generator/flat/flat-container-generator.d.ts.map +1 -0
  48. package/dist/generator/flat/flat-container-generator.js +44 -0
  49. package/dist/generator/flat/flat-container-generator.js.map +1 -0
  50. package/dist/generator/flat/instantiation-generator.d.ts +24 -0
  51. package/dist/generator/flat/instantiation-generator.d.ts.map +1 -0
  52. package/dist/generator/flat/instantiation-generator.js +125 -0
  53. package/dist/generator/flat/instantiation-generator.js.map +1 -0
  54. package/dist/generator/flat-container-generator.d.ts +2 -1
  55. package/dist/generator/flat-container-generator.d.ts.map +1 -1
  56. package/dist/generator/flat-container-generator.js +2 -2
  57. package/dist/generator/flat-container-generator.js.map +1 -1
  58. package/dist/generator/import-generator.d.ts.map +1 -1
  59. package/dist/generator/import-generator.js +2 -4
  60. package/dist/generator/import-generator.js.map +1 -1
  61. package/dist/generator/index.d.ts +2 -3
  62. package/dist/generator/index.d.ts.map +1 -1
  63. package/dist/generator/index.js +2 -4
  64. package/dist/generator/index.js.map +1 -1
  65. package/dist/generator/instantiation-generator.d.ts +13 -0
  66. package/dist/generator/instantiation-generator.d.ts.map +1 -1
  67. package/dist/generator/instantiation-generator.js +96 -133
  68. package/dist/generator/instantiation-generator.js.map +1 -1
  69. package/dist/generator/modular/class-sorter.d.ts +17 -0
  70. package/dist/generator/modular/class-sorter.d.ts.map +1 -0
  71. package/dist/generator/modular/class-sorter.js +40 -0
  72. package/dist/generator/modular/class-sorter.js.map +1 -0
  73. package/dist/generator/modular/container-aggregator.d.ts +11 -0
  74. package/dist/generator/modular/container-aggregator.d.ts.map +1 -0
  75. package/dist/generator/modular/container-aggregator.js +23 -0
  76. package/dist/generator/modular/container-aggregator.js.map +1 -0
  77. package/dist/generator/modular/index.d.ts +5 -0
  78. package/dist/generator/modular/index.d.ts.map +1 -0
  79. package/dist/generator/modular/index.js +21 -0
  80. package/dist/generator/modular/index.js.map +1 -0
  81. package/dist/generator/modular/modular-container-code-generator.d.ts +65 -0
  82. package/dist/generator/modular/modular-container-code-generator.d.ts.map +1 -0
  83. package/dist/generator/modular/modular-container-code-generator.js +157 -0
  84. package/dist/generator/modular/modular-container-code-generator.js.map +1 -0
  85. package/dist/generator/modular/modular-container-generator.d.ts +24 -0
  86. package/dist/generator/modular/modular-container-generator.d.ts.map +1 -0
  87. package/dist/generator/modular/modular-container-generator.js +54 -0
  88. package/dist/generator/modular/modular-container-generator.js.map +1 -0
  89. package/dist/generator/modular/module-container-function-generator.d.ts +24 -0
  90. package/dist/generator/modular/module-container-function-generator.d.ts.map +1 -0
  91. package/dist/generator/modular/module-container-function-generator.js +42 -0
  92. package/dist/generator/modular/module-container-function-generator.js.map +1 -0
  93. package/dist/generator/modular/module-dependency-resolver.d.ts +22 -0
  94. package/dist/generator/modular/module-dependency-resolver.d.ts.map +1 -0
  95. package/dist/generator/modular/module-dependency-resolver.js +56 -0
  96. package/dist/generator/modular/module-dependency-resolver.js.map +1 -0
  97. package/dist/generator/modular/module-export-generator.d.ts +42 -0
  98. package/dist/generator/modular/module-export-generator.d.ts.map +1 -0
  99. package/dist/generator/modular/module-export-generator.js +82 -0
  100. package/dist/generator/modular/module-export-generator.js.map +1 -0
  101. package/dist/generator/modular/module-function-body-generator.d.ts +15 -0
  102. package/dist/generator/modular/module-function-body-generator.d.ts.map +1 -0
  103. package/dist/generator/modular/module-function-body-generator.js +25 -0
  104. package/dist/generator/modular/module-function-body-generator.js.map +1 -0
  105. package/dist/generator/modular/module-function-signature-generator.d.ts +15 -0
  106. package/dist/generator/modular/module-function-signature-generator.d.ts.map +1 -0
  107. package/dist/generator/modular/module-function-signature-generator.js +24 -0
  108. package/dist/generator/modular/module-function-signature-generator.js.map +1 -0
  109. package/dist/generator/modular/module-instantiation-generator.d.ts +12 -0
  110. package/dist/generator/modular/module-instantiation-generator.d.ts.map +1 -0
  111. package/dist/generator/modular/module-instantiation-generator.js +26 -0
  112. package/dist/generator/modular/module-instantiation-generator.js.map +1 -0
  113. package/dist/generator/modular/module-scope-generator.d.ts +47 -0
  114. package/dist/generator/modular/module-scope-generator.d.ts.map +1 -0
  115. package/dist/generator/modular/module-scope-generator.js +111 -0
  116. package/dist/generator/modular/module-scope-generator.js.map +1 -0
  117. package/dist/generator/modular/refactored-modular-container-generator.d.ts +38 -0
  118. package/dist/generator/modular/refactored-modular-container-generator.d.ts.map +1 -0
  119. package/dist/generator/modular/refactored-modular-container-generator.js +73 -0
  120. package/dist/generator/modular/refactored-modular-container-generator.js.map +1 -0
  121. package/dist/generator/modular-container-generator.d.ts +5 -4
  122. package/dist/generator/modular-container-generator.d.ts.map +1 -1
  123. package/dist/generator/modular-container-generator.js +13 -171
  124. package/dist/generator/modular-container-generator.js.map +1 -1
  125. package/dist/generator/module-container-function-generator.d.ts +30 -0
  126. package/dist/generator/module-container-function-generator.d.ts.map +1 -0
  127. package/dist/generator/module-container-function-generator.js +199 -0
  128. package/dist/generator/module-container-function-generator.js.map +1 -0
  129. package/dist/generator/shared/dependency-resolver-utils.d.ts +28 -0
  130. package/dist/generator/shared/dependency-resolver-utils.d.ts.map +1 -0
  131. package/dist/generator/shared/dependency-resolver-utils.js +67 -0
  132. package/dist/generator/shared/dependency-resolver-utils.js.map +1 -0
  133. package/dist/generator/shared/index.d.ts +2 -0
  134. package/dist/generator/shared/index.d.ts.map +1 -0
  135. package/dist/generator/shared/index.js +18 -0
  136. package/dist/generator/shared/index.js.map +1 -0
  137. package/dist/generator/shared/instantiation-utils.d.ts +236 -0
  138. package/dist/generator/shared/instantiation-utils.d.ts.map +1 -0
  139. package/dist/generator/shared/instantiation-utils.js +499 -0
  140. package/dist/generator/shared/instantiation-utils.js.map +1 -0
  141. package/package.json +1 -1
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,24 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,125 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instantiation-generator.js","sourceRoot":"","sources":["../../../src/generator/flat/instantiation-generator.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { ContainerGenerator as ContainerCodeGenerator } from './container-genera
4
4
  import { InstantiationGenerator } from './instantiation-generator';
5
5
  import { BaseContainerGenerator } from './base-container-generator';
6
6
  import { ImportGenerator } from './import-generator';
7
+ import { FileWriter } from './file-writer';
7
8
  /**
8
9
  * Generator for flat (non-modular) container structure.
9
10
  * Handles the traditional single-container approach.
@@ -13,7 +14,7 @@ export declare class FlatContainerGenerator extends BaseContainerGenerator {
13
14
  private instantiationGenerator;
14
15
  private containerCodeGenerator;
15
16
  private classes;
16
- constructor(outputPath: string, classes: ClassInfo[], dependencyResolver: DependencyResolver, importGenerator: ImportGenerator, instantiationGenerator: InstantiationGenerator, containerCodeGenerator: ContainerCodeGenerator);
17
+ constructor(fileWriter: FileWriter, classes: ClassInfo[], dependencyResolver: DependencyResolver, importGenerator: ImportGenerator, instantiationGenerator: InstantiationGenerator, containerCodeGenerator: ContainerCodeGenerator);
17
18
  generate(): void;
18
19
  protected generateContainerCode(sortedClasses?: string[]): string;
19
20
  /**
@@ -1 +1 @@
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;AAErD;;;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,MAAM,EAClB,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
+ {"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"}
@@ -7,8 +7,8 @@ const base_container_generator_1 = require("./base-container-generator");
7
7
  * Handles the traditional single-container approach.
8
8
  */
9
9
  class FlatContainerGenerator extends base_container_generator_1.BaseContainerGenerator {
10
- constructor(outputPath, classes, dependencyResolver, importGenerator, instantiationGenerator, containerCodeGenerator) {
11
- super(outputPath, importGenerator);
10
+ constructor(fileWriter, classes, dependencyResolver, importGenerator, instantiationGenerator, containerCodeGenerator) {
11
+ super(fileWriter, importGenerator);
12
12
  this.classes = classes;
13
13
  this.dependencyResolver = dependencyResolver;
14
14
  this.instantiationGenerator = instantiationGenerator;
@@ -1 +1 @@
1
- {"version":3,"file":"flat-container-generator.js","sourceRoot":"","sources":["../../src/generator/flat-container-generator.ts"],"names":[],"mappings":";;;AAIA,yEAAoE;AAGpE;;;GAGG;AACH,MAAa,sBAAuB,SAAQ,iDAAsB;IAMhE,YACE,UAAkB,EAClB,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
+ {"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 +1 @@
1
- {"version":3,"file":"import-generator.d.ts","sourceRoot":"","sources":["../../src/generator/import-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAc;gBAEjB,OAAO,EAAE,SAAS,EAAE;IAIhC,eAAe,IAAI,MAAM;CAwB1B"}
1
+ {"version":3,"file":"import-generator.d.ts","sourceRoot":"","sources":["../../src/generator/import-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAc;gBAEjB,OAAO,EAAE,SAAS,EAAE;IAIhC,eAAe,IAAI,MAAM;CAsB1B"}
@@ -17,10 +17,8 @@ class ImportGenerator {
17
17
  for (const dep of classInfo.dependencies) {
18
18
  // If dependency is not a managed class, we need to import it
19
19
  if (!classMap.has(dep)) {
20
- // Check if it's an interface (starts with 'I' by convention)
21
- if (!dep.startsWith('I')) {
22
- importSet.add(`import { ${dep} } from '${classInfo.importPath}';`);
23
- }
20
+ //TODO: Think about this
21
+ // importSet.add(`import { ${dep} } from '${classInfo.importPath}';`);
24
22
  }
25
23
  }
26
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"import-generator.js","sourceRoot":"","sources":["../../src/generator/import-generator.ts"],"names":[],"mappings":";;;AAEA,MAAa,eAAe;IAG1B,YAAY,OAAoB;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,eAAe;QACb,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7D,sCAAsC;QACtC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACrC,SAAS,CAAC,GAAG,CAAC,YAAY,SAAS,CAAC,IAAI,YAAY,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC;QAChF,CAAC;QAED,yCAAyC;QACzC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACrC,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;gBACzC,6DAA6D;gBAC7D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvB,6DAA6D;oBAC7D,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBACzB,SAAS,CAAC,GAAG,CAAC,YAAY,GAAG,YAAY,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC;oBACrE,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF;AA/BD,0CA+BC"}
1
+ {"version":3,"file":"import-generator.js","sourceRoot":"","sources":["../../src/generator/import-generator.ts"],"names":[],"mappings":";;;AAEA,MAAa,eAAe;IAG1B,YAAY,OAAoB;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,eAAe;QACb,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7D,sCAAsC;QACtC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACrC,SAAS,CAAC,GAAG,CAAC,YAAY,SAAS,CAAC,IAAI,YAAY,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC;QAChF,CAAC;QAED,yCAAyC;QACzC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACrC,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;gBACzC,6DAA6D;gBAC7D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrB,wBAAwB;oBACxB,sEAAsE;gBAC1E,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF;AA7BD,0CA6BC"}
@@ -5,7 +5,7 @@ import { ClassInfo } from '../types';
5
5
  * @param classesOrModules - Either a flat array of classes or a Map of module-grouped classes
6
6
  * @param outputPath - The output path for the generated container file
7
7
  */
8
- export declare function generateContainerFile(classesOrModules: ClassInfo[] | Map<string, ClassInfo[]>, outputPath: string): void;
8
+ export declare function generateContainerFile(classesOrModules: Map<string, ClassInfo[]>, outputPath: string): void;
9
9
  /**
10
10
  * Detects circular dependencies in a flat array of classes.
11
11
  *
@@ -15,6 +15,5 @@ export declare function generateContainerFile(classesOrModules: ClassInfo[] | Ma
15
15
  export declare function detectCircularDependencies(classes: ClassInfo[]): string[][];
16
16
  export { ContainerGeneratorFactory } from './container-generator-factory';
17
17
  export { BaseContainerGenerator } from './base-container-generator';
18
- export { FlatContainerGenerator } from './flat-container-generator';
19
- export { ModularContainerGenerator } from './modular-container-generator';
18
+ export { ModularContainerGenerator } from './modular/modular-container-generator';
20
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAIrC;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,gBAAgB,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAGxH;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,EAAE,CAG3E;AAGD,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAIrC;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAG1G;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,EAAE,CAG3E;AAGD,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModularContainerGenerator = exports.FlatContainerGenerator = exports.BaseContainerGenerator = exports.ContainerGeneratorFactory = void 0;
3
+ exports.ModularContainerGenerator = exports.BaseContainerGenerator = exports.ContainerGeneratorFactory = void 0;
4
4
  exports.generateContainerFile = generateContainerFile;
5
5
  exports.detectCircularDependencies = detectCircularDependencies;
6
6
  const dependency_resolver_1 = require("../analyser/dependency-resolver");
@@ -30,8 +30,6 @@ var container_generator_factory_2 = require("./container-generator-factory");
30
30
  Object.defineProperty(exports, "ContainerGeneratorFactory", { enumerable: true, get: function () { return container_generator_factory_2.ContainerGeneratorFactory; } });
31
31
  var base_container_generator_1 = require("./base-container-generator");
32
32
  Object.defineProperty(exports, "BaseContainerGenerator", { enumerable: true, get: function () { return base_container_generator_1.BaseContainerGenerator; } });
33
- var flat_container_generator_1 = require("./flat-container-generator");
34
- Object.defineProperty(exports, "FlatContainerGenerator", { enumerable: true, get: function () { return flat_container_generator_1.FlatContainerGenerator; } });
35
- var modular_container_generator_1 = require("./modular-container-generator");
33
+ var modular_container_generator_1 = require("./modular/modular-container-generator");
36
34
  Object.defineProperty(exports, "ModularContainerGenerator", { enumerable: true, get: function () { return modular_container_generator_1.ModularContainerGenerator; } });
37
35
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":";;;AAUA,sDAGC;AAQD,gEAGC;AAvBD,yEAAqE;AACrE,+EAA0E;AAE1E;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,gBAAwD,EAAE,UAAkB;IAChH,MAAM,SAAS,GAAG,uDAAyB,CAAC,MAAM,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IACjF,SAAS,CAAC,QAAQ,EAAE,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,0BAA0B,CAAC,OAAoB;IAC7D,MAAM,QAAQ,GAAG,IAAI,wCAAkB,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO,QAAQ,CAAC,0BAA0B,EAAE,CAAC;AAC/C,CAAC;AAED,2CAA2C;AAC3C,6EAA0E;AAAjE,wIAAA,yBAAyB,OAAA;AAClC,uEAAoE;AAA3D,kIAAA,sBAAsB,OAAA;AAC/B,uEAAoE;AAA3D,kIAAA,sBAAsB,OAAA;AAC/B,6EAA0E;AAAjE,wIAAA,yBAAyB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":";;;AAUA,sDAGC;AAQD,gEAGC;AAvBD,yEAAqE;AACrE,+EAA0E;AAE1E;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,gBAA0C,EAAE,UAAkB;IAClG,MAAM,SAAS,GAAG,uDAAyB,CAAC,MAAM,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IACjF,SAAS,CAAC,QAAQ,EAAE,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,0BAA0B,CAAC,OAAoB;IAC7D,MAAM,QAAQ,GAAG,IAAI,wCAAkB,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO,QAAQ,CAAC,0BAA0B,EAAE,CAAC;AAC/C,CAAC;AAED,2CAA2C;AAC3C,6EAA0E;AAAjE,wIAAA,yBAAyB,OAAA;AAClC,uEAAoE;AAA3D,kIAAA,sBAAsB,OAAA;AAC/B,qFAAkF;AAAzE,wIAAA,yBAAyB,OAAA"}
@@ -2,7 +2,20 @@ import { ClassInfo } from '../types';
2
2
  export declare class InstantiationGenerator {
3
3
  private classes;
4
4
  private dependencyResolver;
5
+ private classMap;
6
+ private interfaceToClassMap;
5
7
  constructor(classes: ClassInfo[]);
6
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;
7
20
  }
8
21
  //# sourceMappingURL=instantiation-generator.d.ts.map
@@ -1 +1 @@
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;gBAEnC,OAAO,EAAE,SAAS,EAAE;IAKhC,sBAAsB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM;CAgKxD"}
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"}
@@ -7,146 +7,109 @@ class InstantiationGenerator {
7
7
  constructor(classes) {
8
8
  this.classes = classes;
9
9
  this.dependencyResolver = new dependency_resolver_1.DependencyResolver(classes);
10
+ this.classMap = new Map(classes.map(c => [c.name, c]));
11
+ this.interfaceToClassMap = this.dependencyResolver.createInterfaceToClassMap();
10
12
  }
11
13
  generateInstantiations(sortedClasses) {
12
- const classMap = new Map(this.classes.map(c => [c.name, c]));
13
- const lazyInitializations = [];
14
- const lazyGetters = [];
15
- const transientFactories = [];
16
- // Create interface to class mapping for dependency resolution
17
- const interfaceToClassMap = this.dependencyResolver.createInterfaceToClassMap();
18
- // Separate singletons and transients
19
- const singletonClasses = this.classes.filter(c => c.scope === 'singleton');
20
- const transientClasses = this.classes.filter(c => c.scope === 'transient');
21
- // Generate lazy initialization variables for singletons
22
- const singletonClassNames = sortedClasses.filter(name => {
23
- return singletonClasses.some(c => c.name === name);
24
- });
25
- for (const className of singletonClassNames) {
26
- const variableName = (0, naming_1.toVariableName)(className);
27
- lazyInitializations.push(`let ${variableName}: ${className} | undefined;`);
28
- }
29
- // Generate lazy getter functions for singletons
30
- for (const className of singletonClassNames.reverse()) {
31
- const classInfo = classMap.get(className);
32
- if (!classInfo)
33
- continue;
34
- const variableName = (0, naming_1.toVariableName)(className);
35
- const getterName = `get${className}`;
36
- // Generate constructor arguments for all parameters
37
- let constructorArgs = '';
38
- if (classInfo.constructorParams.length > 0) {
39
- const args = classInfo.constructorParams.map((param, paramIndex) => {
40
- // The dependencies array contains resolved interface names (after alias resolution)
41
- // We need to map constructor parameters to dependencies by position
42
- let targetDependency = param.type;
43
- // If we have a dependency at this parameter index, use it (it's already resolved)
44
- if (paramIndex < classInfo.dependencies.length) {
45
- const resolvedDep = classInfo.dependencies[paramIndex];
46
- if (resolvedDep) {
47
- targetDependency = resolvedDep;
48
- }
49
- }
50
- else {
51
- // Fallback: check if parameter type directly matches any dependency
52
- const directMatch = classInfo.dependencies.find(dep => dep === param.type);
53
- if (directMatch) {
54
- targetDependency = directMatch;
55
- }
56
- }
57
- // Check if this is a managed dependency
58
- const implementingClass = interfaceToClassMap.get(targetDependency) || targetDependency;
59
- const depClassInfo = classMap.get(implementingClass);
60
- if (depClassInfo) {
61
- // This is a managed dependency, resolve it
62
- if (depClassInfo.scope === 'transient') {
63
- return `${(0, naming_1.toVariableName)(implementingClass)}Factory()`;
64
- }
65
- return `get${implementingClass}()`;
66
- }
67
- else {
68
- // Check if it's in our dependencies list (unmanaged but expected)
69
- if (classInfo.dependencies.includes(targetDependency)) {
70
- return `new ${targetDependency}()`;
71
- }
72
- // This is an unmanaged parameter, generate default value
73
- return this.dependencyResolver.getDefaultValueForType(param.type, param.isOptional);
74
- }
75
- });
76
- constructorArgs = args.join(', ');
77
- }
78
- const instantiation = constructorArgs
79
- ? `new ${className}(${constructorArgs})`
80
- : `new ${className}()`;
81
- const lazyGetter = `const ${getterName} = (): ${className} => {\n if (!${variableName}) {\n ${variableName} = ${instantiation};\n }\n return ${variableName};\n};`;
82
- lazyGetters.push(lazyGetter);
83
- }
84
- // Generate transient factory functions (lazy loading)
85
- for (const classInfo of transientClasses) {
86
- const className = classInfo.name;
14
+ const { singletonClasses, transientClasses } = this.separateClassesByScope();
15
+ const singletonClassNames = this.filterSingletonClassNames(sortedClasses, singletonClasses);
16
+ const sections = [
17
+ this.generateTransientFactories(transientClasses),
18
+ this.generateSingletonVariables(singletonClassNames),
19
+ this.generateSingletonGetters(singletonClassNames)
20
+ ].filter(section => section.length > 0);
21
+ return sections.join('\n\n');
22
+ }
23
+ separateClassesByScope() {
24
+ return {
25
+ singletonClasses: this.classes.filter(c => c.scope === 'singleton'),
26
+ transientClasses: this.classes.filter(c => c.scope === 'transient')
27
+ };
28
+ }
29
+ filterSingletonClassNames(sortedClasses, singletonClasses) {
30
+ return sortedClasses.filter(name => singletonClasses.some(c => c.name === name));
31
+ }
32
+ generateTransientFactories(transientClasses) {
33
+ if (transientClasses.length === 0)
34
+ return '';
35
+ const factories = transientClasses.map(classInfo => this.createTransientFactory(classInfo));
36
+ return [
37
+ '// Lazy loading setup for transient dependencies',
38
+ ...factories
39
+ ].join('\n');
40
+ }
41
+ createTransientFactory(classInfo) {
42
+ const variableName = (0, naming_1.toVariableName)(classInfo.name);
43
+ const constructorArgs = this.generateConstructorArguments(classInfo);
44
+ return constructorArgs
45
+ ? `const ${variableName}Factory = (): ${classInfo.name} => new ${classInfo.name}(${constructorArgs});`
46
+ : `const ${variableName}Factory = (): ${classInfo.name} => new ${classInfo.name}();`;
47
+ }
48
+ generateSingletonVariables(singletonClassNames) {
49
+ if (singletonClassNames.length === 0)
50
+ return '';
51
+ const variables = singletonClassNames.map(className => {
87
52
  const variableName = (0, naming_1.toVariableName)(className);
88
- const dependencies = this.dependencyResolver.resolveDependencies(classInfo, interfaceToClassMap, classMap);
89
- const factory = dependencies
90
- ? `const ${variableName}Factory = (): ${className} => new ${className}(${dependencies});`
91
- : `const ${variableName}Factory = (): ${className} => new ${className}();`;
92
- transientFactories.push(factory);
53
+ return `let ${variableName}: ${className} | undefined;`;
54
+ });
55
+ return [
56
+ '// Lazy initialization variables for singletons',
57
+ ...variables
58
+ ].join('\n');
59
+ }
60
+ generateSingletonGetters(singletonClassNames) {
61
+ if (singletonClassNames.length === 0)
62
+ return '';
63
+ const getters = [...singletonClassNames].reverse().map(className => this.createSingletonGetter(className)).filter(getter => getter !== null);
64
+ return [
65
+ '// Lazy getter functions for singletons',
66
+ ...getters
67
+ ].join('\n');
68
+ }
69
+ createSingletonGetter(className) {
70
+ const classInfo = this.classMap.get(className);
71
+ if (!classInfo)
72
+ return null;
73
+ const variableName = (0, naming_1.toVariableName)(className);
74
+ const getterName = `get${className}`;
75
+ const constructorArgs = this.generateConstructorArguments(classInfo);
76
+ const instantiation = constructorArgs
77
+ ? `new ${className}(${constructorArgs})`
78
+ : `new ${className}()`;
79
+ return `const ${getterName} = (): ${className} => {\n if (!${variableName}) {\n ${variableName} = ${instantiation};\n }\n return ${variableName};\n};`;
80
+ }
81
+ generateConstructorArguments(classInfo) {
82
+ if (classInfo.constructorParams.length === 0)
83
+ return '';
84
+ const args = classInfo.constructorParams.map((param, paramIndex) => this.resolveParameterDependency(classInfo, param, paramIndex));
85
+ return args.join(', ');
86
+ }
87
+ resolveParameterDependency(classInfo, param, paramIndex) {
88
+ const targetDependency = this.getTargetDependency(classInfo, param, paramIndex);
89
+ const implementingClass = this.interfaceToClassMap.get(targetDependency) || targetDependency;
90
+ const depClassInfo = this.classMap.get(implementingClass);
91
+ if (depClassInfo) {
92
+ return this.createManagedDependencyCall(depClassInfo, implementingClass);
93
93
  }
94
- const result = [];
95
- // First declare transient factories if needed
96
- if (transientFactories.length > 0) {
97
- result.push('// Lazy loading setup for transient dependencies');
98
- // Create individual typed factory functions
99
- for (const classInfo of transientClasses) {
100
- const variableName = (0, naming_1.toVariableName)(classInfo.name);
101
- const className = classInfo.name;
102
- // Generate constructor arguments for all parameters
103
- let constructorArgs = '';
104
- if (classInfo.constructorParams.length > 0) {
105
- const args = classInfo.constructorParams.map(param => {
106
- // Check if this parameter is a dependency
107
- const depIndex = classInfo.dependencies.indexOf(param.type);
108
- if (depIndex !== -1) {
109
- // Check if it's a managed dependency (exists in our class map)
110
- const implementingClass = interfaceToClassMap.get(param.type) || param.type;
111
- const depClassInfo = classMap.get(implementingClass);
112
- if (depClassInfo) {
113
- // This is a managed dependency, resolve it
114
- if (depClassInfo.scope === 'transient') {
115
- return `${(0, naming_1.toVariableName)(implementingClass)}Factory()`;
116
- }
117
- return `get${implementingClass}()`;
118
- }
119
- else {
120
- // This is an unmanaged dependency, create new instance
121
- return `new ${param.type}()`;
122
- }
123
- }
124
- else {
125
- // This is an unmanaged parameter, generate default value
126
- return this.dependencyResolver.getDefaultValueForType(param.type, param.isOptional);
127
- }
128
- });
129
- constructorArgs = args.join(', ');
130
- }
131
- const factoryFunction = constructorArgs
132
- ? `const ${variableName}Factory = (): ${className} => new ${className}(${constructorArgs});`
133
- : `const ${variableName}Factory = (): ${className} => new ${className}();`;
134
- result.push(factoryFunction);
135
- }
136
- result.push('');
94
+ if (classInfo.dependencies.includes(targetDependency)) {
95
+ return `new ${targetDependency}()`;
137
96
  }
138
- // Then add lazy initialization variables for singletons
139
- if (lazyInitializations.length > 0) {
140
- result.push('// Lazy initialization variables for singletons');
141
- result.push(...lazyInitializations);
142
- result.push('');
97
+ return this.dependencyResolver.getDefaultValueForType(param.type, param.isOptional);
98
+ }
99
+ getTargetDependency(classInfo, param, paramIndex) {
100
+ if (paramIndex < classInfo.dependencies.length) {
101
+ const resolvedDep = classInfo.dependencies[paramIndex];
102
+ if (resolvedDep)
103
+ return resolvedDep;
143
104
  }
144
- // Then add lazy getter functions for singletons
145
- if (lazyGetters.length > 0) {
146
- result.push('// Lazy getter functions for singletons');
147
- result.push(...lazyGetters);
105
+ const directMatch = classInfo.dependencies.find(dep => dep === param.type);
106
+ return directMatch || param.type;
107
+ }
108
+ createManagedDependencyCall(depClassInfo, implementingClass) {
109
+ if (depClassInfo.scope === 'transient') {
110
+ return `${(0, naming_1.toVariableName)(implementingClass)}Factory()`;
148
111
  }
149
- return result.join('\n');
112
+ return `get${implementingClass}()`;
150
113
  }
151
114
  }
152
115
  exports.InstantiationGenerator = InstantiationGenerator;
@@ -1 +1 @@
1
- {"version":3,"file":"instantiation-generator.js","sourceRoot":"","sources":["../../src/generator/instantiation-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instantiation-generator.js","sourceRoot":"","sources":["../../src/generator/instantiation-generator.ts"],"names":[],"mappings":"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"}