@notjustcoders/ioc-arise 1.0.6 → 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 (79) hide show
  1. package/dist/commands/generate.d.ts.map +1 -1
  2. package/dist/commands/generate.js +2 -8
  3. package/dist/commands/generate.js.map +1 -1
  4. package/dist/generator/base-container-code-generator.d.ts +15 -0
  5. package/dist/generator/base-container-code-generator.d.ts.map +1 -0
  6. package/dist/generator/base-container-code-generator.js +23 -0
  7. package/dist/generator/base-container-code-generator.js.map +1 -0
  8. package/dist/generator/base-dependency-resolver.d.ts +26 -0
  9. package/dist/generator/base-dependency-resolver.d.ts.map +1 -0
  10. package/dist/generator/base-dependency-resolver.js +72 -0
  11. package/dist/generator/base-dependency-resolver.js.map +1 -0
  12. package/dist/generator/base-instantiation-generator.d.ts +55 -0
  13. package/dist/generator/base-instantiation-generator.d.ts.map +1 -0
  14. package/dist/generator/base-instantiation-generator.js +117 -0
  15. package/dist/generator/base-instantiation-generator.js.map +1 -0
  16. package/dist/generator/container-generator-factory.d.ts +2 -2
  17. package/dist/generator/container-generator-factory.d.ts.map +1 -1
  18. package/dist/generator/container-generator-factory.js +18 -25
  19. package/dist/generator/container-generator-factory.js.map +1 -1
  20. package/dist/generator/duplicate-import-resolver.d.ts +44 -0
  21. package/dist/generator/duplicate-import-resolver.d.ts.map +1 -0
  22. package/dist/generator/duplicate-import-resolver.js +162 -0
  23. package/dist/generator/duplicate-import-resolver.js.map +1 -0
  24. package/dist/generator/flat/container-generator.d.ts.map +1 -1
  25. package/dist/generator/flat/container-generator.js +3 -21
  26. package/dist/generator/flat/container-generator.js.map +1 -1
  27. package/dist/generator/flat/dependency-resolver.d.ts +0 -3
  28. package/dist/generator/flat/dependency-resolver.d.ts.map +1 -1
  29. package/dist/generator/flat/dependency-resolver.js +6 -46
  30. package/dist/generator/flat/dependency-resolver.js.map +1 -1
  31. package/dist/generator/flat/instantiation-generator.d.ts +5 -2
  32. package/dist/generator/flat/instantiation-generator.d.ts.map +1 -1
  33. package/dist/generator/flat/instantiation-generator.js +42 -33
  34. package/dist/generator/flat/instantiation-generator.js.map +1 -1
  35. package/dist/generator/index.d.ts +1 -2
  36. package/dist/generator/index.d.ts.map +1 -1
  37. package/dist/generator/index.js +1 -3
  38. package/dist/generator/index.js.map +1 -1
  39. package/dist/generator/modular/container-aggregator.d.ts +0 -7
  40. package/dist/generator/modular/container-aggregator.d.ts.map +1 -1
  41. package/dist/generator/modular/container-aggregator.js +3 -14
  42. package/dist/generator/modular/container-aggregator.js.map +1 -1
  43. package/dist/generator/modular/modular-container-generator.d.ts +4 -1
  44. package/dist/generator/modular/modular-container-generator.d.ts.map +1 -1
  45. package/dist/generator/modular/modular-container-generator.js +4 -7
  46. package/dist/generator/modular/modular-container-generator.js.map +1 -1
  47. package/dist/generator/modular/module-container-function-generator.d.ts +9 -63
  48. package/dist/generator/modular/module-container-function-generator.d.ts.map +1 -1
  49. package/dist/generator/modular/module-container-function-generator.js +9 -213
  50. package/dist/generator/modular/module-container-function-generator.js.map +1 -1
  51. package/dist/generator/modular/module-dependency-resolver.d.ts +10 -24
  52. package/dist/generator/modular/module-dependency-resolver.d.ts.map +1 -1
  53. package/dist/generator/modular/module-dependency-resolver.js +33 -46
  54. package/dist/generator/modular/module-dependency-resolver.js.map +1 -1
  55. package/dist/generator/modular/module-function-body-generator.d.ts +15 -0
  56. package/dist/generator/modular/module-function-body-generator.d.ts.map +1 -0
  57. package/dist/generator/modular/module-function-body-generator.js +25 -0
  58. package/dist/generator/modular/module-function-body-generator.js.map +1 -0
  59. package/dist/generator/modular/module-function-signature-generator.d.ts +15 -0
  60. package/dist/generator/modular/module-function-signature-generator.d.ts.map +1 -0
  61. package/dist/generator/modular/module-function-signature-generator.js +24 -0
  62. package/dist/generator/modular/module-function-signature-generator.js.map +1 -0
  63. package/dist/generator/modular/module-instantiation-generator.d.ts +1 -15
  64. package/dist/generator/modular/module-instantiation-generator.d.ts.map +1 -1
  65. package/dist/generator/modular/module-instantiation-generator.js +4 -32
  66. package/dist/generator/modular/module-instantiation-generator.js.map +1 -1
  67. package/dist/generator/shared/dependency-resolver-utils.d.ts +28 -0
  68. package/dist/generator/shared/dependency-resolver-utils.d.ts.map +1 -0
  69. package/dist/generator/shared/dependency-resolver-utils.js +67 -0
  70. package/dist/generator/shared/dependency-resolver-utils.js.map +1 -0
  71. package/dist/generator/shared/index.d.ts +2 -0
  72. package/dist/generator/shared/index.d.ts.map +1 -0
  73. package/dist/generator/shared/index.js +18 -0
  74. package/dist/generator/shared/index.js.map +1 -0
  75. package/dist/generator/shared/instantiation-utils.d.ts +236 -0
  76. package/dist/generator/shared/instantiation-utils.d.ts.map +1 -0
  77. package/dist/generator/shared/instantiation-utils.js +499 -0
  78. package/dist/generator/shared/instantiation-utils.js.map +1 -0
  79. package/package.json +1 -1
@@ -0,0 +1,499 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InstantiationUtils = void 0;
4
+ const topological_sorter_1 = require("../../utils/topological-sorter");
5
+ /**
6
+ * Shared utility class for instantiation-related functionality used by both
7
+ * flat and modular container generators.
8
+ */
9
+ class InstantiationUtils {
10
+ // ========== Core String Utilities ==========
11
+ /**
12
+ * Converts a string to camelCase (first letter lowercase).
13
+ */
14
+ static toCamelCase(str) {
15
+ return str.charAt(0).toLowerCase() + str.slice(1).replace(/[^a-zA-Z0-9]/g, '');
16
+ }
17
+ /**
18
+ * Generates a factory function name from a class name.
19
+ */
20
+ static generateFactoryName(className) {
21
+ return `${this.toCamelCase(className)}Factory`;
22
+ }
23
+ /**
24
+ * Generates a getter function name from a class name.
25
+ */
26
+ static generateGetterName(className) {
27
+ return `get${className}`;
28
+ }
29
+ /**
30
+ * Generates an instance variable name from a class name.
31
+ */
32
+ static generateInstanceName(className) {
33
+ return this.toCamelCase(className);
34
+ }
35
+ /**
36
+ * Gets the interface name or falls back to class name.
37
+ */
38
+ static getInterfaceOrClassName(classInfo) {
39
+ return classInfo.interfaceName || classInfo.name;
40
+ }
41
+ // ========== Dependency Resolution Utilities ==========
42
+ /**
43
+ * Creates a map of interface names to their implementing class names.
44
+ */
45
+ static createInterfaceToClassMap(classes) {
46
+ const interfaceToClassMap = new Map();
47
+ for (const classInfo of classes) {
48
+ if (classInfo.interfaceName) {
49
+ interfaceToClassMap.set(classInfo.interfaceName, classInfo.name);
50
+ }
51
+ }
52
+ return interfaceToClassMap;
53
+ }
54
+ /**
55
+ * Gets default value for a type when no implementation is found.
56
+ */
57
+ static getDefaultValueForType(type, isOptional) {
58
+ if (isOptional) {
59
+ return 'undefined';
60
+ }
61
+ // Handle primitive types
62
+ switch (type.toLowerCase()) {
63
+ case 'string':
64
+ return '"default"';
65
+ case 'number':
66
+ return '0';
67
+ case 'boolean':
68
+ return 'false';
69
+ case 'date':
70
+ return 'new Date()';
71
+ default:
72
+ // For class types, create a simple instance
73
+ return `new ${type}()`;
74
+ }
75
+ }
76
+ /**
77
+ * Generates constructor arguments for unmanaged dependencies.
78
+ */
79
+ static generateConstructorArgs(params) {
80
+ return params.map(param => this.getDefaultValueForType(param.type, param.isOptional)).join(', ');
81
+ }
82
+ /**
83
+ * Creates an instance of an unmanaged dependency.
84
+ */
85
+ static createUnmanagedDependencyInstance(className, classInfo) {
86
+ if (!classInfo || !classInfo.constructorParams.length) {
87
+ return `new ${className}()`;
88
+ }
89
+ const args = this.generateConstructorArgs(classInfo.constructorParams);
90
+ return `new ${className}(${args})`;
91
+ }
92
+ /**
93
+ * Finds a class by its interface name in a collection of classes.
94
+ */
95
+ static findClassByInterface(interfaceName, classes) {
96
+ return classes.find(c => c.interfaceName === interfaceName);
97
+ }
98
+ /**
99
+ * Creates a dependency call for managed dependencies based on scope.
100
+ */
101
+ static createDependencyCall(className, scope) {
102
+ if (scope === 'transient') {
103
+ return `${this.toCamelCase(className)}Factory()`;
104
+ }
105
+ return this.toCamelCase(className);
106
+ }
107
+ // ========== Code Generation Utilities ==========
108
+ /**
109
+ * Applies indentation to a string, handling multi-line content.
110
+ */
111
+ static applyIndentation(content, indentation) {
112
+ return indentation ?
113
+ `${indentation}${content.replace(/\n/g, `\n${indentation}`)}` :
114
+ content;
115
+ }
116
+ /**
117
+ * Generates a constructor instantiation expression.
118
+ */
119
+ static generateConstructorCall(className, constructorArgs) {
120
+ return constructorArgs
121
+ ? `new ${className}(${constructorArgs})`
122
+ : `new ${className}()`;
123
+ }
124
+ /**
125
+ * Generates a function call expression with optional arguments.
126
+ */
127
+ static generateFunctionCall(functionName, args) {
128
+ const argsStr = args && args.length > 0 ? args.join(', ') : '';
129
+ return `${functionName}(${argsStr})`;
130
+ }
131
+ /**
132
+ * Generates a getter property with return statement.
133
+ */
134
+ static generateGetterProperty(propertyName, returnType, returnExpression, indentation = ' ') {
135
+ return `${indentation}get ${propertyName}(): ${returnType} {\n${indentation} return ${returnExpression};\n${indentation}}`;
136
+ }
137
+ /**
138
+ * Helper method to generate object exports with consistent formatting.
139
+ */
140
+ static generateObjectExport(objectName, properties, separator = '') {
141
+ const joinSeparator = separator || '\n';
142
+ return `export const ${objectName} = {\n${properties.join(joinSeparator)}\n};`;
143
+ }
144
+ /**
145
+ * Helper method to generate a container property with consistent formatting.
146
+ */
147
+ static generateContainerProperty(propertyName, returnType, returnExpression) {
148
+ return ` get ${propertyName}(): ${returnType} {\n return ${returnExpression};\n },`;
149
+ }
150
+ /**
151
+ * Generic helper for generating code sections with consistent indentation handling.
152
+ */
153
+ static generateCodeSection(items, generator, indentation = '', isMultiline = false) {
154
+ const results = [];
155
+ for (const item of items) {
156
+ const code = generator(item);
157
+ const indentedCode = isMultiline ?
158
+ this.applyIndentation(code, indentation) :
159
+ `${indentation}${code}`;
160
+ results.push(indentedCode);
161
+ }
162
+ return results;
163
+ }
164
+ // ========== Class Filtering and Sorting Utilities ==========
165
+ /**
166
+ * Filters classes to get only singletons.
167
+ */
168
+ static getSingletonClasses(classes) {
169
+ return classes.filter(c => c.scope !== 'transient');
170
+ }
171
+ /**
172
+ * Filters classes to get only transients.
173
+ */
174
+ static getTransientClasses(classes) {
175
+ return classes.filter(c => c.scope === 'transient');
176
+ }
177
+ /**
178
+ * Checks if a class is transient.
179
+ */
180
+ static isTransient(classInfo) {
181
+ return classInfo.scope === 'transient';
182
+ }
183
+ /**
184
+ * Checks if a class is singleton.
185
+ */
186
+ static isSingleton(classInfo) {
187
+ return classInfo.scope === 'singleton';
188
+ }
189
+ // ========== Core Code Generation Methods ==========
190
+ /**
191
+ * Generates factory functions for transient classes.
192
+ */
193
+ static generateTransientFactory(classInfo, constructorArgs) {
194
+ const factoryName = this.generateFactoryName(classInfo.name);
195
+ const constructorCall = this.generateConstructorCall(classInfo.name, constructorArgs);
196
+ return `const ${factoryName} = (): ${classInfo.name} => ${constructorCall};`;
197
+ }
198
+ /**
199
+ * Generates a singleton variable declaration.
200
+ */
201
+ static generateSingletonVariable(classInfo) {
202
+ const instanceName = this.generateInstanceName(classInfo.name);
203
+ return `let ${instanceName}: ${classInfo.name} | undefined;`;
204
+ }
205
+ /**
206
+ * Generates a singleton getter function.
207
+ */
208
+ static generateSingletonGetter(classInfo, constructorArgs) {
209
+ const instanceName = this.generateInstanceName(classInfo.name);
210
+ const getterName = this.generateGetterName(classInfo.name);
211
+ const instantiation = this.generateConstructorCall(classInfo.name, constructorArgs);
212
+ return `const ${getterName} = (): ${classInfo.name} => {\n if (!${instanceName}) {\n ${instanceName} = ${instantiation};\n }\n return ${instanceName};\n};`;
213
+ }
214
+ /**
215
+ * Filters classes by scope.
216
+ */
217
+ static filterClassesByScope(classes) {
218
+ return {
219
+ singletonClasses: this.getSingletonClasses(classes),
220
+ transientClasses: this.getTransientClasses(classes)
221
+ };
222
+ }
223
+ /**
224
+ * Creates a managed dependency call based on class scope.
225
+ */
226
+ static createManagedDependencyCall(classInfo, implementingClass) {
227
+ if (this.isTransient(classInfo)) {
228
+ const factoryName = this.generateFactoryName(implementingClass);
229
+ return this.generateFunctionCall(factoryName);
230
+ }
231
+ const getterName = this.generateGetterName(implementingClass);
232
+ return this.generateFunctionCall(getterName);
233
+ }
234
+ /**
235
+ * Creates a function signature with parameters.
236
+ */
237
+ static createFunctionSignature(functionName, params) {
238
+ return params.length > 0 ?
239
+ `function ${functionName}(${params.join(', ')})` :
240
+ `function ${functionName}()`;
241
+ }
242
+ /**
243
+ * Creates a module export getter.
244
+ */
245
+ static createModuleExportGetter(classInfo) {
246
+ const interfaceName = this.getInterfaceOrClassName(classInfo);
247
+ if (this.isTransient(classInfo)) {
248
+ const factoryCall = this.generateFunctionCall(this.generateFactoryName(classInfo.name));
249
+ return this.generateGetterProperty(interfaceName, classInfo.name, factoryCall, ' ');
250
+ }
251
+ else {
252
+ const getterCall = this.generateFunctionCall(this.generateGetterName(classInfo.name));
253
+ return this.generateGetterProperty(interfaceName, classInfo.name, getterCall, ' ');
254
+ }
255
+ }
256
+ /**
257
+ * Sorts classes by their dependencies using topological sorting.
258
+ */
259
+ static sortClassesByDependencies(classes, allModuleClasses) {
260
+ // Build dependency graph for classes within the module
261
+ const dependencyGraph = new Map();
262
+ for (const classInfo of classes) {
263
+ const dependencies = [];
264
+ // Only include dependencies that are within the same module and are singletons
265
+ for (const dep of classInfo.dependencies) {
266
+ const depClass = allModuleClasses.find(c => c.interfaceName === dep && c.scope !== 'transient');
267
+ if (depClass && classes.includes(depClass)) {
268
+ dependencies.push(depClass.name);
269
+ }
270
+ }
271
+ dependencyGraph.set(classInfo.name, dependencies);
272
+ }
273
+ // Use TopologicalSorter to sort the classes
274
+ const sortResult = topological_sorter_1.TopologicalSorter.sort(dependencyGraph);
275
+ // Map sorted class names back to ClassInfo objects
276
+ const classMap = new Map(classes.map(c => [c.name, c]));
277
+ return sortResult.sorted.map(className => classMap.get(className)).filter(Boolean);
278
+ }
279
+ /**
280
+ * Resolves a basic dependency by finding the implementing class and creating the appropriate call.
281
+ * This is the common pattern used by both flat and modular generators.
282
+ */
283
+ static resolveBasicDependency(dependency, availableClasses, interfaceToClassMap) {
284
+ // Try to find by interface name first
285
+ const depClass = availableClasses.find(c => c.interfaceName === dependency);
286
+ if (depClass) {
287
+ return this.createManagedDependencyCall(depClass, depClass.name);
288
+ }
289
+ // Try to find by direct class name match
290
+ const directClassMatch = availableClasses.find(c => c.name === dependency);
291
+ if (directClassMatch) {
292
+ return this.createManagedDependencyCall(directClassMatch, directClassMatch.name);
293
+ }
294
+ // Try to find by class name using interface map
295
+ if (interfaceToClassMap) {
296
+ const implementingClass = interfaceToClassMap.get(dependency);
297
+ if (implementingClass) {
298
+ const depClassInfo = availableClasses.find(c => c.name === implementingClass);
299
+ if (depClassInfo) {
300
+ return this.createManagedDependencyCall(depClassInfo, implementingClass);
301
+ }
302
+ }
303
+ }
304
+ return null;
305
+ }
306
+ /**
307
+ * Generates constructor arguments string from an array of argument strings.
308
+ * Common pattern used by both generators.
309
+ */
310
+ static joinConstructorArguments(args) {
311
+ return args.length > 0 ? args.join(', ') : '';
312
+ }
313
+ /**
314
+ * Generates a section of transient factory functions with optional indentation.
315
+ * Used by both flat and modular generators.
316
+ */
317
+ static generateTransientFactoriesSection(classes, constructorArgsResolver, indentation = '') {
318
+ const transientClasses = this.getTransientClasses(classes);
319
+ return this.generateCodeSection(transientClasses, (classInfo) => {
320
+ const constructorArgs = constructorArgsResolver(classInfo);
321
+ return this.generateTransientFactory(classInfo, constructorArgs);
322
+ }, indentation);
323
+ }
324
+ /**
325
+ * Generates a section of singleton variable declarations with optional indentation.
326
+ * Used by both flat and modular generators.
327
+ */
328
+ static generateSingletonVariablesSection(classes, indentation = '') {
329
+ const singletonClasses = this.getSingletonClasses(classes);
330
+ const sortedSingletons = this.sortClassesByDependencies(singletonClasses, classes);
331
+ return this.generateCodeSection(sortedSingletons, (classInfo) => this.generateSingletonVariable(classInfo), indentation);
332
+ }
333
+ /**
334
+ * Generates a section of singleton getter functions with optional indentation.
335
+ * Used by both flat and modular generators.
336
+ */
337
+ static generateSingletonGettersSection(classes, constructorArgsResolver, indentation = '') {
338
+ const singletonClasses = this.getSingletonClasses(classes);
339
+ const sortedSingletons = this.sortClassesByDependencies(singletonClasses, classes);
340
+ return this.generateCodeSection(sortedSingletons, (classInfo) => {
341
+ const constructorArgs = constructorArgsResolver(classInfo);
342
+ return this.generateSingletonGetter(classInfo, constructorArgs);
343
+ }, indentation, true // multiline content
344
+ );
345
+ }
346
+ /**
347
+ * Generates a section of module exports with optional indentation.
348
+ * Used by modular generators.
349
+ */
350
+ static generateModuleExportsSection(classes, indentation = '') {
351
+ const classesWithInterface = classes.filter(c => c.interfaceName);
352
+ return this.generateCodeSection(classesWithInterface, (classInfo) => this.createModuleExportGetter(classInfo), indentation, true // multiline content
353
+ );
354
+ }
355
+ /**
356
+ * Generates a container property getter for singleton classes.
357
+ * Used by flat container generators.
358
+ */
359
+ static generateSingletonContainerProperty(classInfo) {
360
+ const interfaceName = this.getInterfaceOrClassName(classInfo);
361
+ const getterCall = this.generateFunctionCall(this.generateGetterName(classInfo.name));
362
+ return this.generateContainerProperty(interfaceName, classInfo.name, getterCall);
363
+ }
364
+ /**
365
+ * Generates a container property getter for transient classes.
366
+ * Used by flat container generators.
367
+ */
368
+ static generateTransientContainerProperty(classInfo) {
369
+ const interfaceName = this.getInterfaceOrClassName(classInfo);
370
+ const factoryCall = this.generateFunctionCall(this.generateFactoryName(classInfo.name));
371
+ return this.generateContainerProperty(interfaceName, classInfo.name, factoryCall);
372
+ }
373
+ /**
374
+ * Generates the complete container object with all properties.
375
+ * Used by flat container generators.
376
+ */
377
+ static generateContainerObject(classes) {
378
+ const properties = [];
379
+ for (const classInfo of classes) {
380
+ if (this.isSingleton(classInfo)) {
381
+ properties.push(this.generateSingletonContainerProperty(classInfo));
382
+ }
383
+ else if (this.isTransient(classInfo)) {
384
+ properties.push(this.generateTransientContainerProperty(classInfo));
385
+ }
386
+ }
387
+ return this.generateObjectExport('container', properties);
388
+ }
389
+ /**
390
+ * Generates the container type export.
391
+ * Used by flat container generators.
392
+ */
393
+ static generateContainerTypeExport() {
394
+ return 'export type Container = typeof container;';
395
+ }
396
+ /**
397
+ * Generates a module function parameter with proper typing.
398
+ * Used by modular generators for creating function parameters.
399
+ */
400
+ static generateModuleFunctionParameter(moduleName) {
401
+ const depVarName = this.toCamelCase(moduleName) + 'Container';
402
+ return `${depVarName}: ReturnType<typeof create${moduleName}Container>`;
403
+ }
404
+ /**
405
+ * Generates function parameters for module dependencies.
406
+ * Used by modular generators.
407
+ */
408
+ static generateModuleFunctionParameters(moduleDeps) {
409
+ return Array.from(moduleDeps).map(depModule => this.generateModuleFunctionParameter(depModule));
410
+ }
411
+ /**
412
+ * Generates a module container variable name.
413
+ * Used by modular generators.
414
+ */
415
+ static generateModuleContainerVariableName(moduleName) {
416
+ return this.toCamelCase(moduleName) + 'Container';
417
+ }
418
+ /**
419
+ * Generates a module container function name.
420
+ * Used by modular generators.
421
+ */
422
+ static generateModuleContainerFunctionName(moduleName) {
423
+ return `create${moduleName}Container`;
424
+ }
425
+ /**
426
+ * Generates function arguments for module dependencies.
427
+ * Used by modular generators.
428
+ */
429
+ static generateModuleFunctionArguments(moduleDeps) {
430
+ return Array.from(moduleDeps).map(depModule => this.generateModuleContainerVariableName(depModule));
431
+ }
432
+ /**
433
+ * Generates module instantiation code.
434
+ * Used by modular generators.
435
+ */
436
+ static generateModuleInstantiation(moduleName, moduleDependencies) {
437
+ const moduleVarName = this.generateModuleContainerVariableName(moduleName);
438
+ const moduleFunctionName = this.generateModuleContainerFunctionName(moduleName);
439
+ const moduleDeps = moduleDependencies.get(moduleName) || new Set();
440
+ const functionArgs = this.generateModuleFunctionArguments(moduleDeps);
441
+ const functionCall = this.generateFunctionCall(moduleFunctionName, functionArgs);
442
+ return `const ${moduleVarName} = ${functionCall};`;
443
+ }
444
+ /**
445
+ * Generates a module export entry for the aggregated container.
446
+ * Used by container aggregators.
447
+ */
448
+ static generateModuleExportEntry(moduleName) {
449
+ const moduleVarName = this.generateModuleContainerVariableName(moduleName);
450
+ const moduleKey = this.generateInstanceName(moduleName);
451
+ return ` ${moduleKey}: ${moduleVarName}`;
452
+ }
453
+ /**
454
+ * Generates the aggregated container code for modular architecture.
455
+ * Used by container aggregators.
456
+ */
457
+ static generateAggregatedContainer(sortedModules) {
458
+ const moduleExports = sortedModules.map(moduleName => this.generateModuleExportEntry(moduleName));
459
+ return this.generateObjectExport('container', moduleExports, ',');
460
+ }
461
+ /**
462
+ * Generates the modular container type export.
463
+ * Used by container aggregators.
464
+ */
465
+ static generateModularContainerTypeExport() {
466
+ return 'export type Container = typeof container;';
467
+ }
468
+ /**
469
+ * Generates a module function return object.
470
+ * Used by module function body generators.
471
+ */
472
+ static generateModuleFunctionReturnObject(moduleExports) {
473
+ return moduleExports.length > 0 ?
474
+ ` return {\n${moduleExports.join(',\n')}\n };` :
475
+ ' return {};';
476
+ }
477
+ /**
478
+ * Generates the complete module function body.
479
+ * Used by module function body generators.
480
+ */
481
+ static generateModuleFunctionBody(moduleClasses, constructorArgsResolver) {
482
+ const factoryFunctions = this.generateTransientFactoriesSection(moduleClasses, constructorArgsResolver, ' ');
483
+ const lazyInitializations = this.generateSingletonVariablesSection(moduleClasses, ' ');
484
+ const lazyGetters = this.generateSingletonGettersSection(moduleClasses, constructorArgsResolver, ' ');
485
+ const moduleExports = this.generateModuleExportsSection(moduleClasses, ' ');
486
+ const returnObject = this.generateModuleFunctionReturnObject(moduleExports);
487
+ return [
488
+ ...factoryFunctions,
489
+ '',
490
+ ...lazyInitializations,
491
+ '',
492
+ ...lazyGetters,
493
+ '',
494
+ returnObject
495
+ ].filter(line => line !== '' || factoryFunctions.length > 0 || lazyInitializations.length > 0 || lazyGetters.length > 0).join('\n');
496
+ }
497
+ }
498
+ exports.InstantiationUtils = InstantiationUtils;
499
+ //# sourceMappingURL=instantiation-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instantiation-utils.js","sourceRoot":"","sources":["../../../src/generator/shared/instantiation-utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@notjustcoders/ioc-arise",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "description": "A CLI tool to generate type-safe IoC containers for TypeScript projects with automatic dependency injection",
5
5
  "main": "dist/index.js",
6
6
  "bin": {