@notjustcoders/ioc-arise 1.1.15 → 1.1.17

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 (38) hide show
  1. package/dist/analyser/ast-parser.d.ts +9 -0
  2. package/dist/analyser/ast-parser.d.ts.map +1 -1
  3. package/dist/analyser/ast-parser.js +283 -0
  4. package/dist/analyser/ast-parser.js.map +1 -1
  5. package/dist/analyser/factory-analyzer.d.ts +13 -0
  6. package/dist/analyser/factory-analyzer.d.ts.map +1 -0
  7. package/dist/analyser/factory-analyzer.js +184 -0
  8. package/dist/analyser/factory-analyzer.js.map +1 -0
  9. package/dist/analyser/index.d.ts +5 -1
  10. package/dist/analyser/index.d.ts.map +1 -1
  11. package/dist/analyser/index.js +9 -0
  12. package/dist/analyser/index.js.map +1 -1
  13. package/dist/analyser/project-analyzer.d.ts +6 -2
  14. package/dist/analyser/project-analyzer.d.ts.map +1 -1
  15. package/dist/analyser/project-analyzer.js +4 -1
  16. package/dist/analyser/project-analyzer.js.map +1 -1
  17. package/dist/commands/generate.d.ts.map +1 -1
  18. package/dist/commands/generate.js +6 -3
  19. package/dist/commands/generate.js.map +1 -1
  20. package/dist/errors/IoCError.d.ts +1 -0
  21. package/dist/errors/IoCError.d.ts.map +1 -1
  22. package/dist/errors/IoCError.js +1 -0
  23. package/dist/errors/IoCError.js.map +1 -1
  24. package/dist/errors/errorFactory.d.ts +1 -0
  25. package/dist/errors/errorFactory.d.ts.map +1 -1
  26. package/dist/errors/errorFactory.js +6 -0
  27. package/dist/errors/errorFactory.js.map +1 -1
  28. package/dist/generator/ioc-container-generator.d.ts +6 -6
  29. package/dist/generator/ioc-container-generator.d.ts.map +1 -1
  30. package/dist/generator/ioc-container-generator.js +118 -86
  31. package/dist/generator/ioc-container-generator.js.map +1 -1
  32. package/dist/generator/type-declaration-generator.d.ts +4 -4
  33. package/dist/generator/type-declaration-generator.d.ts.map +1 -1
  34. package/dist/generator/type-declaration-generator.js +40 -44
  35. package/dist/generator/type-declaration-generator.js.map +1 -1
  36. package/dist/types.d.ts +16 -0
  37. package/dist/types.d.ts.map +1 -1
  38. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"project-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyser/project-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAOtD,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAgB;gBAEzB,OAAO,EAAE,eAAe;IAK9B,cAAc,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAiB5C,OAAO,CAAC,sCAAsC;IA8C9C,OAAO,CAAC,qCAAqC;CA6C9C"}
1
+ {"version":3,"file":"project-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyser/project-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAQnE,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,eAAe,CAAkB;gBAE7B,OAAO,EAAE,eAAe;IAM9B,cAAc,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAAC,SAAS,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC;IAiBnF,OAAO,CAAC,sCAAsC;IA8C9C,OAAO,CAAC,qCAAqC;CA6C9C"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProjectAnalyzer = void 0;
4
4
  const class_analyzer_1 = require("./class-analyzer");
5
+ const factory_analyzer_1 = require("./factory-analyzer");
5
6
  const file_discovery_1 = require("./file-discovery");
6
7
  const errorFactory_1 = require("../errors/errorFactory");
7
8
  const IoCError_1 = require("../errors/IoCError");
@@ -9,16 +10,18 @@ class ProjectAnalyzer {
9
10
  constructor(options) {
10
11
  this.fileDiscovery = new file_discovery_1.FileDiscovery(options.sourceDir, options.excludePatterns);
11
12
  this.classAnalyzer = new class_analyzer_1.ClassAnalyzer(options.sourceDir, options.interfacePattern);
13
+ this.factoryAnalyzer = new factory_analyzer_1.FactoryAnalyzer(options.sourceDir);
12
14
  }
13
15
  async analyzeProject() {
14
16
  const tsFiles = await this.fileDiscovery.findTypeScriptFiles();
15
17
  // Analyze all files in a single batch operation for better performance
16
18
  const allClasses = await this.classAnalyzer.analyzeFiles(tsFiles);
19
+ const allFactories = await this.factoryAnalyzer.analyzeFiles(tsFiles);
17
20
  // Validate that no interface is implemented by multiple classes
18
21
  this.validateUniqueInterfaceImplementations(allClasses);
19
22
  // Validate that no abstract class is extended by multiple classes
20
23
  this.validateUniqueAbstractClassExtensions(allClasses);
21
- return allClasses;
24
+ return { classes: allClasses, factories: allFactories };
22
25
  }
23
26
  validateUniqueInterfaceImplementations(classes) {
24
27
  const interfaceToClassMap = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"project-analyzer.js","sourceRoot":"","sources":["../../src/analyser/project-analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-analyzer.js","sourceRoot":"","sources":["../../src/analyser/project-analyzer.ts"],"names":[],"mappings":";;;AACA,qDAAiD;AACjD,yDAAqD;AACrD,qDAAiD;AACjD,yDAAsD;AACtD,iDAAgD;AAGhD,MAAa,eAAe;IAK1B,YAAY,OAAwB;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,8BAAa,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QACnF,IAAI,CAAC,aAAa,GAAG,IAAI,8BAAa,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACpF,IAAI,CAAC,eAAe,GAAG,IAAI,kCAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;QAE/D,uEAAuE;QACvE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAClE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAEtE,gEAAgE;QAChE,IAAI,CAAC,sCAAsC,CAAC,UAAU,CAAC,CAAC;QAExD,kEAAkE;QAClE,IAAI,CAAC,qCAAqC,CAAC,UAAU,CAAC,CAAC;QAEvD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1D,CAAC;IAGO,sCAAsC,CAAC,OAAoB;QACjE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAuB,CAAC;QAE3D,yCAAyC;QACzC,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;YAChC,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;gBAC5B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;oBACtD,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;gBACvD,CAAC;gBACD,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,MAAM,mBAAmB,GAAa,EAAE,CAAC;QACzC,KAAK,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC,IAAI,mBAAmB,EAAE,CAAC;YACvE,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACxC,MAAM,KAAK,GAAG,2BAAY,CAAC,gCAAgC,CACzD,aAAa,EACb,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CACrC,CAAC;gBACF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;gBAC9C,MAAM,CAAC,KAAK,CAAC,qBAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjD,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,CAAC;oBAC5C,MAAM,CAAC,GAAG,CAAC,QAAQ,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,aAAa,GAAa,EAAE,CAAC;YAEnC,KAAK,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC,IAAI,mBAAmB,EAAE,CAAC;gBACvE,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnC,aAAa,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;YAED,MAAM,2BAAY,CAAC,gCAAgC,CACjD,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAC9B,aAAa,CACd,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,qCAAqC,CAAC,OAAoB;QAChE,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAuB,CAAC;QAE/D,8CAA8C;QAC9C,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;YAChC,IAAI,SAAS,CAAC,iBAAiB,EAAE,CAAC;gBAChC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBAC9D,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;gBAC/D,CAAC;gBACD,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,MAAM,wBAAwB,GAAa,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,IAAI,uBAAuB,EAAE,CAAC;YAC5E,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,wBAAwB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACjD,MAAM,KAAK,GAAG,2BAAY,CAAC,+BAA+B,CACxD,iBAAiB,EACjB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAClC,CAAC;gBACF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;gBAC9C,MAAM,CAAC,KAAK,CAAC,8CAA8C,iBAAiB,EAAE,CAAC,CAAC;gBAChF,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;oBACzC,MAAM,CAAC,GAAG,CAAC,QAAQ,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,aAAa,GAAa,EAAE,CAAC;YAEnC,KAAK,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,IAAI,uBAAuB,EAAE,CAAC;gBAC5E,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,aAAa,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;YAED,MAAM,2BAAY,CAAC,+BAA+B,CAChD,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EACnC,aAAa,CACd,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAvHD,0CAuHC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,eAAO,MAAM,eAAe,SAqLxB,CAAC"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,eAAO,MAAM,eAAe,SAwLxB,CAAC"}
@@ -63,8 +63,8 @@ exports.generateCommand = new commander_1.Command('generate')
63
63
  }
64
64
  }
65
65
  logger_1.Logger.custom('🚀', 'Starting analysis...', logger_1.Logger.getColors().cyan + logger_1.Logger.getColors().bright);
66
- // Analyze the project
67
- const classes = await (0, analyser_1.analyzeProject)(sourceDir, {
66
+ // Analyze the project (including factories)
67
+ const { classes, factories } = await (0, analyser_1.analyzeProjectWithFactories)(sourceDir, {
68
68
  sourceDir,
69
69
  interfacePattern: mergedOptions.interface,
70
70
  excludePatterns: mergedOptions.exclude
@@ -151,10 +151,13 @@ exports.generateCommand = new commander_1.Command('generate')
151
151
  }
152
152
  // Generate container file
153
153
  logger_1.Logger.custom('🚀', 'Generating container...', logger_1.Logger.getColors().cyan + logger_1.Logger.getColors().bright);
154
- generator_1.IoCContainerGenerator.generate(classes, outputPath, moduleGroupedClasses);
154
+ generator_1.IoCContainerGenerator.generate(classes, outputPath, moduleGroupedClasses, factories);
155
155
  logger_1.Logger.success('Container generated successfully!');
156
156
  logger_1.Logger.log(logger_1.Logger.colorizeText(` File: ${outputPath}`, logger_1.Logger.getColors().gray));
157
157
  logger_1.Logger.log(logger_1.Logger.colorizeText(` Classes: ${classes.length}`, logger_1.Logger.getColors().gray));
158
+ if (factories && factories.length > 0) {
159
+ logger_1.Logger.log(logger_1.Logger.colorizeText(` Factories: ${factories.length}`, logger_1.Logger.getColors().gray));
160
+ }
158
161
  if (mergedOptions.verbose) {
159
162
  logger_1.Logger.newline();
160
163
  logger_1.Logger.custom('🎉', 'You can now import and use your container:', logger_1.Logger.getColors().green + logger_1.Logger.getColors().bright);
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ export declare enum IoCErrorCode {
15
15
  DUPLICATE_INTERFACE_IMPLEMENTATION = "IOC_1203",
16
16
  DUPLICATE_ABSTRACT_CLASS_EXTENSION = "IOC_1204",
17
17
  INVALID_INTERFACE_PATTERN = "IOC_1205",
18
+ CLASS_NAME_COLLISION = "IOC_1206",
18
19
  GENERATION_FAILED = "IOC_1300",
19
20
  OUTPUT_FILE_ERROR = "IOC_1301",
20
21
  TEMPLATE_ERROR = "IOC_1302",
@@ -1 +1 @@
1
- {"version":3,"file":"IoCError.d.ts","sourceRoot":"","sources":["../../src/errors/IoCError.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IoCError.d.ts","sourceRoot":"","sources":["../../src/errors/IoCError.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ var IoCErrorCode;
22
22
  IoCErrorCode["DUPLICATE_INTERFACE_IMPLEMENTATION"] = "IOC_1203";
23
23
  IoCErrorCode["DUPLICATE_ABSTRACT_CLASS_EXTENSION"] = "IOC_1204";
24
24
  IoCErrorCode["INVALID_INTERFACE_PATTERN"] = "IOC_1205";
25
+ IoCErrorCode["CLASS_NAME_COLLISION"] = "IOC_1206";
25
26
  // Generation errors (1300-1399)
26
27
  IoCErrorCode["GENERATION_FAILED"] = "IOC_1300";
27
28
  IoCErrorCode["OUTPUT_FILE_ERROR"] = "IOC_1301";
@@ -1 +1 @@
1
- {"version":3,"file":"IoCError.js","sourceRoot":"","sources":["../../src/errors/IoCError.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IoCError.js","sourceRoot":"","sources":["../../src/errors/IoCError.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export declare class ErrorFactory {
12
12
  static circularDependency(className: string, dependencyChain: string[]): AnalysisError;
13
13
  static duplicateInterfaceImplementation(interfaceName: string, classes: string[]): AnalysisError;
14
14
  static duplicateAbstractClassExtension(abstractClassName: string, classes: string[]): AnalysisError;
15
+ static classNameCollision(className: string, filePaths: string[]): AnalysisError;
15
16
  static generationFailed(reason: string, outputPath?: string): GenerationError;
16
17
  static outputFileError(outputPath: string, error: string): GenerationError;
17
18
  static moduleConfigInvalid(moduleName: string, reason: string): ValidationError;
@@ -1 +1 @@
1
- {"version":3,"file":"errorFactory.d.ts","sourceRoot":"","sources":["../../src/errors/errorFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,YAAY,EAEZ,YAAY,EACZ,WAAW,EACX,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,YAAY;IAEvB,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;IAapD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW;IAa1E,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,GAAG,WAAW;IAc7F,MAAM,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe;IAanE,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa;IAc9D,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa;IAcxD,MAAM,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,aAAa;IAatF,MAAM,CAAC,gCAAgC,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,aAAa;IAahG,MAAM,CAAC,+BAA+B,CAAC,iBAAiB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,aAAa;IAcnG,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,eAAe;IAa7E,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe;IAc1E,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe;IAa/E,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,eAAe;IAcjF,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe;IAatD,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe;IAatE,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe;IAcvE,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,eAAe;IAchF,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,QAAQ;IAetE,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ;IAcvD;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,QAAQ;IAapF;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,eAAe;CAYzH"}
1
+ {"version":3,"file":"errorFactory.d.ts","sourceRoot":"","sources":["../../src/errors/errorFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,YAAY,EAEZ,YAAY,EACZ,WAAW,EACX,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,YAAY;IAEvB,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;IAapD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW;IAa1E,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,GAAG,WAAW;IAc7F,MAAM,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe;IAanE,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa;IAc9D,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa;IAcxD,MAAM,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,aAAa;IAatF,MAAM,CAAC,gCAAgC,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,aAAa;IAahG,MAAM,CAAC,+BAA+B,CAAC,iBAAiB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,aAAa;IAanG,MAAM,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,aAAa;IAahF,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,eAAe;IAa7E,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe;IAc1E,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe;IAa/E,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,eAAe;IAcjF,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe;IAatD,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe;IAatE,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe;IAcvE,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,eAAe;IAchF,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,QAAQ;IAetE,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ;IAcvD;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,QAAQ;IAapF;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,eAAe;CAYzH"}
@@ -73,6 +73,12 @@ class ErrorFactory {
73
73
  'Consider using interfaces with default implementations'
74
74
  ]);
75
75
  }
76
+ static classNameCollision(className, filePaths) {
77
+ return new IoCError_1.AnalysisError(IoCError_1.IoCErrorCode.CLASS_NAME_COLLISION, `Class name collision detected for '${className}'. Multiple classes with the same name found in: ${filePaths.join(', ')}`, { className }, [
78
+ 'Rename classes to have unique names',
79
+ 'Consider using more specific class names that reflect their purpose'
80
+ ]);
81
+ }
76
82
  // Generation errors
77
83
  static generationFailed(reason, outputPath) {
78
84
  return new IoCError_1.GenerationError(IoCError_1.IoCErrorCode.GENERATION_FAILED, `Container generation failed: ${reason}`, { filePath: outputPath }, [
@@ -1 +1 @@
1
- {"version":3,"file":"errorFactory.js","sourceRoot":"","sources":["../../src/errors/errorFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errorFactory.js","sourceRoot":"","sources":["../../src/errors/errorFactory.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
- import { ClassInfo } from '../types';
1
+ import { ClassInfo, FactoryInfo } from '../types';
2
2
  export declare class IoCContainerGenerator {
3
3
  /**
4
4
  * Generates the IoC container code for the given classes
5
5
  * @param classes - Analyzed classes to be registered (can be flat or grouped)
6
6
  * @param outputPath - Path where the container file will be generated
7
7
  * @param moduleGroupedClasses - Optional: Classes grouped by modules
8
+ * @param factories - Optional: Factory functions to be registered
8
9
  */
9
- static generate(classes: ClassInfo[], outputPath: string, moduleGroupedClasses?: Map<string, ClassInfo[]>): void;
10
+ static generate(classes: ClassInfo[], outputPath: string, moduleGroupedClasses?: Map<string, ClassInfo[]>, factories?: FactoryInfo[]): void;
10
11
  private static generateFlatCode;
11
12
  private static generateModularFiles;
12
13
  private static generateModuleFile;
@@ -16,12 +17,11 @@ export declare class IoCContainerGenerator {
16
17
  private static generateModuleInstantiations;
17
18
  private static generateModuleRegistrations;
18
19
  private static generateImports;
19
- private static classNameAliases;
20
- private static classNameToAliasMap;
21
20
  /**
22
- * Resolves the full file path of a dependency based on the importing file and relative import path
21
+ * Checks for class name collisions and throws an error if any are found
23
22
  */
24
- private static resolveDependencyFilePath;
23
+ private static checkForNameCollisions;
25
24
  private static generateRegistrations;
25
+ private static generateFactoryRegistrations;
26
26
  }
27
27
  //# sourceMappingURL=ioc-container-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ioc-container-generator.d.ts","sourceRoot":"","sources":["../../src/generator/ioc-container-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAKrC,qBAAa,qBAAqB;IAC9B;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CACX,OAAO,EAAE,SAAS,EAAE,EACpB,UAAU,EAAE,MAAM,EAClB,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,GAChD,IAAI;IAqBP,OAAO,CAAC,MAAM,CAAC,gBAAgB;IA0C/B,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAwCnC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAqCjC,OAAO,CAAC,MAAM,CAAC,yBAAyB;IA0BxC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAsClC,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAgBxC,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAY3C,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAsD1C,OAAO,CAAC,MAAM,CAAC,eAAe;IA+D9B,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAA6B;IAC5D,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAA0C;IAE5E;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAexC,OAAO,CAAC,MAAM,CAAC,qBAAqB;CA6DvC"}
1
+ {"version":3,"file":"ioc-container-generator.d.ts","sourceRoot":"","sources":["../../src/generator/ioc-container-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAMlD,qBAAa,qBAAqB;IAC9B;;;;;;OAMG;IACH,MAAM,CAAC,QAAQ,CACX,OAAO,EAAE,SAAS,EAAE,EACpB,UAAU,EAAE,MAAM,EAClB,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EAC/C,SAAS,CAAC,EAAE,WAAW,EAAE,GAC1B,IAAI;IA4BP,OAAO,CAAC,MAAM,CAAC,gBAAgB;IA6C/B,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAyCnC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAqCjC,OAAO,CAAC,MAAM,CAAC,yBAAyB;IA0BxC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAsClC,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAgBxC,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAY3C,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAwC1C,OAAO,CAAC,MAAM,CAAC,eAAe;IA4D9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAoBrC,OAAO,CAAC,MAAM,CAAC,qBAAqB;IA+CpC,OAAO,CAAC,MAAM,CAAC,4BAA4B;CA0D9C"}
@@ -4,33 +4,41 @@ exports.IoCContainerGenerator = void 0;
4
4
  const path_1 = require("path");
5
5
  const fs_1 = require("fs");
6
6
  const type_declaration_generator_1 = require("./type-declaration-generator");
7
+ const errorFactory_1 = require("../errors/errorFactory");
7
8
  class IoCContainerGenerator {
8
9
  /**
9
10
  * Generates the IoC container code for the given classes
10
11
  * @param classes - Analyzed classes to be registered (can be flat or grouped)
11
12
  * @param outputPath - Path where the container file will be generated
12
13
  * @param moduleGroupedClasses - Optional: Classes grouped by modules
14
+ * @param factories - Optional: Factory functions to be registered
13
15
  */
14
- static generate(classes, outputPath, moduleGroupedClasses) {
16
+ static generate(classes, outputPath, moduleGroupedClasses, factories) {
17
+ // Check for name collisions before generating
18
+ // If moduleGroupedClasses is provided, check all classes from all modules
19
+ const allClassesToCheck = moduleGroupedClasses && moduleGroupedClasses.size > 1
20
+ ? Array.from(moduleGroupedClasses.values()).flat()
21
+ : classes;
22
+ this.checkForNameCollisions(allClassesToCheck);
15
23
  // Ensure directory exists
16
24
  const outputDir = (0, path_1.dirname)(outputPath);
17
25
  (0, fs_1.mkdirSync)(outputDir, { recursive: true });
18
26
  if (moduleGroupedClasses && moduleGroupedClasses.size > 1) {
19
27
  // Generate modular code with separate files for each module
20
- this.generateModularFiles(moduleGroupedClasses, outputPath);
28
+ this.generateModularFiles(moduleGroupedClasses, outputPath, factories);
21
29
  }
22
30
  else {
23
31
  // Generate single flat file
24
- const containerCode = this.generateFlatCode(classes, outputPath);
32
+ const containerCode = this.generateFlatCode(classes, outputPath, factories);
25
33
  (0, fs_1.writeFileSync)(outputPath, containerCode);
26
34
  }
27
35
  // Generate type declarations (.d.ts file)
28
36
  const typesPath = outputPath.endsWith('.gen.ts')
29
37
  ? outputPath.replace(/\.gen\.ts$/, '.gen.d.ts')
30
38
  : outputPath.replace(/\.ts$/, '.d.ts');
31
- type_declaration_generator_1.TypeDeclarationGenerator.generate(classes, typesPath);
39
+ type_declaration_generator_1.TypeDeclarationGenerator.generate(classes, typesPath, factories);
32
40
  }
33
- static generateFlatCode(classes, outputPath) {
41
+ static generateFlatCode(classes, outputPath, factories) {
34
42
  // Collect all interface names to identify which dependencies should use string tokens
35
43
  const interfaceNames = new Set();
36
44
  classes.forEach(cls => {
@@ -49,8 +57,11 @@ class IoCContainerGenerator {
49
57
  }
50
58
  });
51
59
  });
52
- const imports = this.generateImports(classes, outputPath);
53
- const registrations = this.generateRegistrations(classes, interfaceNames, '', abstractClassNames);
60
+ const imports = this.generateImports(classes, outputPath, factories);
61
+ const classRegistrations = this.generateRegistrations(classes, interfaceNames, '', abstractClassNames);
62
+ const factoryRegistrations = factories && factories.length > 0
63
+ ? this.generateFactoryRegistrations(factories, interfaceNames, '', abstractClassNames)
64
+ : '';
54
65
  const filename = outputPath.split('/').pop()?.replace(/\.ts$/, '') || 'container.gen';
55
66
  const dtsFilename = outputPath.split('/').pop()?.replace(/\.ts$/, '.d') || 'container.gen.d';
56
67
  return `/**
@@ -63,10 +74,10 @@ ${imports}
63
74
 
64
75
  export const container = new Container<ContainerRegistry>();
65
76
 
66
- ${registrations}
77
+ ${classRegistrations}${factoryRegistrations ? '\n\n' + factoryRegistrations : ''}
67
78
  `;
68
79
  }
69
- static generateModularFiles(moduleGroupedClasses, outputPath) {
80
+ static generateModularFiles(moduleGroupedClasses, outputPath, factories) {
70
81
  const outputDir = (0, path_1.dirname)(outputPath);
71
82
  const baseFilename = (0, path_1.basename)(outputPath, '.ts');
72
83
  const modulesDir = (0, path_1.join)(outputDir, 'modules');
@@ -192,14 +203,12 @@ ${registrations};`);
192
203
  }
193
204
  static generateModuleRegistrations(classes, interfaceNames, abstractClassNames = new Set()) {
194
205
  return classes.map(cls => {
195
- // Get the aliased class name (or original if no alias)
196
- const className = this.classNameAliases.get(cls.filePath) || cls.name;
197
206
  // Determine registration token
198
207
  const token = cls.interfaceName
199
208
  ? `'${cls.interfaceName}'`
200
209
  : cls.abstractClassName
201
210
  ? `'${cls.abstractClassName}'`
202
- : className;
211
+ : cls.name;
203
212
  // Generate dependencies array
204
213
  const dependencies = cls.dependencies.length > 0
205
214
  ? `, dependencies: [${cls.dependencies.map(dep => {
@@ -211,17 +220,7 @@ ${registrations};`);
211
220
  if (abstractClassNames.has(dep.name)) {
212
221
  return `'${dep.name}'`;
213
222
  }
214
- // Check if this dependency name has collisions (multiple aliases)
215
- const aliasMap = this.classNameToAliasMap.get(dep.name);
216
- if (aliasMap && aliasMap.size > 0) {
217
- // Resolve which specific alias to use based on import path
218
- const depFilePath = this.resolveDependencyFilePath(cls.filePath, dep.importPath, dep.name);
219
- const alias = this.classNameAliases.get(depFilePath);
220
- if (alias) {
221
- return alias;
222
- }
223
- }
224
- // No collision or couldn't resolve - use original name
223
+ // Use original class name
225
224
  return dep.name;
226
225
  }).join(', ')}]`
227
226
  : '';
@@ -229,22 +228,14 @@ ${registrations};`);
229
228
  const lifecycle = cls.scope === 'singleton'
230
229
  ? 'Lifecycle.Singleton'
231
230
  : 'Lifecycle.Transient';
232
- return ` .register(${token}, { useClass: ${className}${dependencies}, lifecycle: ${lifecycle} })`;
231
+ return ` .register(${token}, { useClass: ${cls.name}${dependencies}, lifecycle: ${lifecycle} })`;
233
232
  }).join('\n');
234
233
  }
235
- static generateImports(classes, outputPath) {
234
+ static generateImports(classes, outputPath, factories) {
236
235
  const outputDir = (0, path_1.dirname)(outputPath);
237
- // Detect name collisions and create aliases
238
- const nameToClasses = new Map();
239
- classes.forEach(cls => {
240
- if (!nameToClasses.has(cls.name)) {
241
- nameToClasses.set(cls.name, []);
242
- }
243
- nameToClasses.get(cls.name).push(cls);
244
- });
245
236
  const importStatements = [];
246
- const classNameAliases = new Map(); // filePath -> alias
247
- const classNameToAliasMap = new Map(); // className -> (filePath -> alias)
237
+ const importMap = new Map();
238
+ // Collect class imports
248
239
  classes.forEach(cls => {
249
240
  // Calculate relative path from output file to class file
250
241
  let relativePath = (0, path_1.relative)(outputDir, cls.filePath);
@@ -256,51 +247,58 @@ ${registrations};`);
256
247
  }
257
248
  // Use forward slashes for imports
258
249
  relativePath = relativePath.replace(/\\/g, '/');
259
- // Check if this class name has collisions
260
- const classesWithSameName = nameToClasses.get(cls.name) || [];
261
- if (classesWithSameName.length > 1) {
262
- // Name collision detected - create an alias
263
- // Use the parent directory name as prefix (e.g., user/UpdateItemUseCase -> UserUpdateItemUseCase)
264
- const pathParts = cls.filePath.split('/');
265
- const parentDir = pathParts[pathParts.length - 2] || 'Item';
266
- const alias = `${parentDir.charAt(0).toUpperCase() + parentDir.slice(1)}${cls.name}`;
267
- classNameAliases.set(cls.filePath, alias);
268
- // Track alias by class name too
269
- if (!classNameToAliasMap.has(cls.name)) {
270
- classNameToAliasMap.set(cls.name, new Map());
271
- }
272
- classNameToAliasMap.get(cls.name).set(cls.filePath, alias);
273
- importStatements.push(`import { ${cls.name} as ${alias} } from '${relativePath}';`);
274
- }
275
- else {
276
- // No collision - use regular import
277
- classNameAliases.set(cls.filePath, cls.name);
278
- importStatements.push(`import { ${cls.name} } from '${relativePath}';`);
250
+ if (!importMap.has(relativePath)) {
251
+ importMap.set(relativePath, new Set());
279
252
  }
253
+ importMap.get(relativePath).add(cls.name);
280
254
  });
281
- // Store aliases for use in registrations
282
- this.classNameAliases = classNameAliases;
283
- this.classNameToAliasMap = classNameToAliasMap;
255
+ // Collect factory imports
256
+ if (factories) {
257
+ factories.forEach(factory => {
258
+ // Calculate relative path from output file to factory file
259
+ let relativePath = (0, path_1.relative)(outputDir, factory.filePath);
260
+ // Remove extension (.ts)
261
+ relativePath = relativePath.replace(/\.ts$/, '');
262
+ // Add ./ if it doesn't start with . or /
263
+ if (!relativePath.startsWith('.')) {
264
+ relativePath = `./${relativePath}`;
265
+ }
266
+ // Use forward slashes for imports
267
+ relativePath = relativePath.replace(/\\/g, '/');
268
+ if (!importMap.has(relativePath)) {
269
+ importMap.set(relativePath, new Set());
270
+ }
271
+ importMap.get(relativePath).add(factory.name);
272
+ });
273
+ }
274
+ // Generate import statements
275
+ for (const [importPath, names] of importMap.entries()) {
276
+ const namesArray = Array.from(names).sort();
277
+ importStatements.push(`import { ${namesArray.join(', ')} } from '${importPath}';`);
278
+ }
284
279
  return importStatements.join('\n');
285
280
  }
286
281
  /**
287
- * Resolves the full file path of a dependency based on the importing file and relative import path
282
+ * Checks for class name collisions and throws an error if any are found
288
283
  */
289
- static resolveDependencyFilePath(importerFilePath, relativeImportPath, depName) {
290
- const importerDir = (0, path_1.dirname)(importerFilePath);
291
- const resolvedPath = (0, path_1.join)(importerDir, relativeImportPath);
292
- // Try with .ts extension first
293
- if (resolvedPath.endsWith('.ts')) {
294
- return resolvedPath;
284
+ static checkForNameCollisions(classes) {
285
+ const nameToClasses = new Map();
286
+ classes.forEach(cls => {
287
+ if (!nameToClasses.has(cls.name)) {
288
+ nameToClasses.set(cls.name, []);
289
+ }
290
+ nameToClasses.get(cls.name).push(cls);
291
+ });
292
+ // Check for collisions
293
+ for (const [className, classesWithSameName] of nameToClasses.entries()) {
294
+ if (classesWithSameName.length > 1) {
295
+ const filePaths = classesWithSameName.map(cls => cls.filePath);
296
+ throw errorFactory_1.ErrorFactory.classNameCollision(className, filePaths);
297
+ }
295
298
  }
296
- // Add .ts extension and normalize
297
- const withExtension = `${resolvedPath}.ts`;
298
- return withExtension;
299
299
  }
300
300
  static generateRegistrations(classes, interfaceNames, indent = '', abstractClassNames = new Set()) {
301
301
  return classes.map(cls => {
302
- // Get the aliased class name (or original if no alias)
303
- const className = this.classNameAliases.get(cls.filePath) || cls.name;
304
302
  // Determine registration token:
305
303
  // - If implements interface, use string token of interface name
306
304
  // - If extends abstract class, use string token of abstract class name
@@ -309,7 +307,7 @@ ${registrations};`);
309
307
  ? `'${cls.interfaceName}'`
310
308
  : cls.abstractClassName
311
309
  ? `'${cls.abstractClassName}'`
312
- : className;
310
+ : cls.name;
313
311
  // Generate dependencies array
314
312
  const dependencies = cls.dependencies.length > 0
315
313
  ? `\n${indent} dependencies: [${cls.dependencies.map(dep => {
@@ -321,18 +319,7 @@ ${registrations};`);
321
319
  if (abstractClassNames.has(dep.name)) {
322
320
  return `'${dep.name}'`;
323
321
  }
324
- // Check if this dependency name has collisions (multiple aliases)
325
- const aliasMap = this.classNameToAliasMap.get(dep.name);
326
- if (aliasMap && aliasMap.size > 0) {
327
- // We need to resolve which specific alias to use based on import path
328
- // Try to find the matching class by resolving the import path
329
- const depFilePath = this.resolveDependencyFilePath(cls.filePath, dep.importPath, dep.name);
330
- const alias = this.classNameAliases.get(depFilePath);
331
- if (alias) {
332
- return alias;
333
- }
334
- }
335
- // No collision or couldn't resolve - use original name
322
+ // Use original class name
336
323
  return dep.name;
337
324
  }).join(', ')}],`
338
325
  : '';
@@ -341,13 +328,58 @@ ${registrations};`);
341
328
  ? 'Lifecycle.Singleton'
342
329
  : 'Lifecycle.Transient';
343
330
  return `${indent}container.register(${token}, {
344
- ${indent} useClass: ${className},${dependencies}
331
+ ${indent} useClass: ${cls.name},${dependencies}
332
+ ${indent} lifecycle: ${lifecycle},
333
+ ${indent}});`;
334
+ }).join('\n\n');
335
+ }
336
+ static generateFactoryRegistrations(factories, interfaceNames, indent = '', abstractClassNames = new Set()) {
337
+ return factories.map(factory => {
338
+ // Use token if provided, otherwise use function name directly
339
+ const token = factory.token
340
+ ? `'${factory.token}'`
341
+ : `'${factory.name}'`;
342
+ // Generate dependencies array
343
+ const dependencies = factory.dependencies.length > 0
344
+ ? `\n${indent} dependencies: [${factory.dependencies.map(dep => {
345
+ // If dependency is an interface, use string token
346
+ if (interfaceNames.has(dep.name)) {
347
+ return `'${dep.name}'`;
348
+ }
349
+ // If dependency is an abstract class, use string token
350
+ if (abstractClassNames.has(dep.name)) {
351
+ return `'${dep.name}'`;
352
+ }
353
+ // Use original class name
354
+ return dep.name;
355
+ }).join(', ')}],`
356
+ : '';
357
+ // Determine lifecycle enum value
358
+ const lifecycle = factory.scope === 'singleton'
359
+ ? 'Lifecycle.Singleton'
360
+ : 'Lifecycle.Transient';
361
+ // Generate factory function - wrap if context object pattern is used
362
+ let factoryFunction;
363
+ if (factory.useContextObject && factory.contextObjectProperties) {
364
+ // Generate wrapper function that passes dependencies as context object
365
+ const contextProps = factory.contextObjectProperties.map(prop => prop.name).join(', ');
366
+ const contextObject = factory.contextObjectProperties.map(prop => `${prop.name}`).join(', ');
367
+ const depParams = factory.dependencies.map((_, index) => {
368
+ const propName = factory.contextObjectProperties?.[index]?.name || `dep${index}`;
369
+ return propName;
370
+ }).join(', ');
371
+ factoryFunction = `(${depParams}) => ${factory.name}({ ${contextObject} })`;
372
+ }
373
+ else {
374
+ // Use factory directly (existing behavior)
375
+ factoryFunction = factory.name;
376
+ }
377
+ return `${indent}container.register(${token}, {
378
+ ${indent} useFactory: ${factoryFunction},${dependencies}
345
379
  ${indent} lifecycle: ${lifecycle},
346
380
  ${indent}});`;
347
381
  }).join('\n\n');
348
382
  }
349
383
  }
350
384
  exports.IoCContainerGenerator = IoCContainerGenerator;
351
- IoCContainerGenerator.classNameAliases = new Map(); // filePath -> alias
352
- IoCContainerGenerator.classNameToAliasMap = new Map(); // className -> (filePath -> alias)
353
385
  //# sourceMappingURL=ioc-container-generator.js.map