@notjustcoders/ioc-arise 1.1.28 → 1.1.30

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.
@@ -14,22 +14,22 @@ const IoCError_1 = require("../errors/IoCError");
14
14
  const moduleResolver_1 = require("../utils/moduleResolver");
15
15
  const tsConfigPathsResolver_1 = require("../utils/tsConfigPathsResolver");
16
16
  const logger_1 = require("../utils/logger");
17
- exports.generateCommand = new commander_1.Command('generate')
18
- .description('Generate IoC container from TypeScript classes')
19
- .option('-s, --source <dir>', 'Source directory to scan')
20
- .option('-o, --output <file>', 'Output file path')
21
- .option('-i, --interface <pattern>', 'Interface name pattern to match (regex)')
22
- .option('-e, --exclude <patterns...>', 'Exclude patterns for files')
23
- .option('--factory-pattern <pattern>', 'Factory function name pattern to match (regex). Default: functions with @factory JSDoc comment')
24
- .option('--value-pattern <pattern>', 'Value name pattern to match (regex). Default: values with @value JSDoc comment')
25
- .option('--check-cycles', 'Only check for circular dependencies without generating')
26
- .option('--verbose', 'Enable verbose logging')
17
+ exports.generateCommand = new commander_1.Command("generate")
18
+ .description("Generate IoC container from TypeScript classes")
19
+ .option("-s, --source <dir>", "Source directory to scan")
20
+ .option("-o, --output <file>", "Output file path")
21
+ .option("-i, --interface <pattern>", "Interface name pattern to match (regex)")
22
+ .option("-e, --exclude <patterns...>", "Exclude patterns for files")
23
+ .option("--factory-pattern <pattern>", "Factory function name pattern to match (regex). Default: functions with @factory JSDoc comment")
24
+ .option("--value-pattern <pattern>", "Value name pattern to match (regex). Default: values with @value JSDoc comment")
25
+ .option("--check-cycles", "Only check for circular dependencies without generating")
26
+ .option("--verbose", "Enable verbose logging")
27
27
  .action(async (options) => {
28
28
  try {
29
29
  // Initialize logger
30
30
  logger_1.Logger.initialize({ verbose: options.verbose ?? false });
31
31
  // Initialize config manager with the source directory
32
- const initialSourceDir = (0, path_1.resolve)(options.source || '.');
32
+ const initialSourceDir = (0, path_1.resolve)(options.source || ".");
33
33
  const configManager = new configManager_1.ConfigManager(initialSourceDir);
34
34
  // Validate config if present
35
35
  if (configManager.hasConfigFile()) {
@@ -47,7 +47,8 @@ exports.generateCommand = new commander_1.Command('generate')
47
47
  }
48
48
  // Initialize module resolver if modules are configured
49
49
  let moduleResolver = null;
50
- if (mergedOptions.modules && Object.keys(mergedOptions.modules).length > 0) {
50
+ if (mergedOptions.modules &&
51
+ Object.keys(mergedOptions.modules).length > 0) {
51
52
  moduleResolver = new moduleResolver_1.ModuleResolver(mergedOptions.modules, sourceDir);
52
53
  if (mergedOptions.verbose) {
53
54
  logger_1.Logger.info(`Module support enabled with ${Object.keys(mergedOptions.modules).length} modules`);
@@ -65,20 +66,22 @@ exports.generateCommand = new commander_1.Command('generate')
65
66
  logger_1.Logger.info(`Interface pattern: ${mergedOptions.interface}`);
66
67
  }
67
68
  }
68
- logger_1.Logger.custom('🚀', 'Starting analysis...', logger_1.Logger.getColors().cyan + logger_1.Logger.getColors().bright);
69
+ logger_1.Logger.custom("🚀", "Starting analysis...", logger_1.Logger.getColors().cyan + logger_1.Logger.getColors().bright);
69
70
  // Analyze the project (including factories)
70
71
  const { classes, factories, values } = await (0, analyser_1.analyzeProjectWithFactories)(sourceDir, {
71
72
  sourceDir,
72
73
  interfacePattern: mergedOptions.interface,
73
74
  excludePatterns: mergedOptions.exclude,
74
75
  factoryPattern: mergedOptions.factoryPattern,
75
- valuePattern: mergedOptions.valuePattern
76
+ valuePattern: mergedOptions.valuePattern,
76
77
  });
77
78
  // Check if we have anything to generate
78
- if (classes.length === 0 && (!factories || factories.length === 0) && (!values || values.length === 0)) {
79
+ if (classes.length === 0 &&
80
+ (!factories || factories.length === 0) &&
81
+ (!values || values.length === 0)) {
79
82
  const error = errorFactory_1.ErrorFactory.noClassesFound(mergedOptions.interface || 'interfaces with "implements" keyword');
80
83
  logger_1.Logger.error(IoCError_1.ErrorUtils.formatForConsole(error));
81
- logger_1.Logger.error('No classes, factories, or values found to generate a container.');
84
+ logger_1.Logger.error("No classes, factories, or values found to generate a container.");
82
85
  process.exit(1);
83
86
  return;
84
87
  }
@@ -91,7 +94,8 @@ exports.generateCommand = new commander_1.Command('generate')
91
94
  moduleGroupedClasses = moduleResolver.groupClassesByModule(classes);
92
95
  }
93
96
  if (factories && factories.length > 0) {
94
- moduleGroupedFactories = moduleResolver.groupFactoriesByModule(factories);
97
+ moduleGroupedFactories =
98
+ moduleResolver.groupFactoriesByModule(factories);
95
99
  }
96
100
  if (values && values.length > 0) {
97
101
  moduleGroupedValues = moduleResolver.groupValuesByModule(values);
@@ -99,7 +103,7 @@ exports.generateCommand = new commander_1.Command('generate')
99
103
  }
100
104
  else {
101
105
  if (classes.length > 0) {
102
- moduleGroupedClasses = new Map([['CoreModule', classes]]);
106
+ moduleGroupedClasses = new Map([["CoreModule", classes]]);
103
107
  }
104
108
  }
105
109
  // Print structured analysis summary
@@ -111,65 +115,67 @@ exports.generateCommand = new commander_1.Command('generate')
111
115
  if (cycles.length > 0) {
112
116
  const firstCycle = cycles[0];
113
117
  if (firstCycle && firstCycle.length > 0) {
114
- const className = firstCycle[0] || 'unknown';
118
+ const className = firstCycle[0] || "unknown";
115
119
  const error = errorFactory_1.ErrorFactory.circularDependency(className, firstCycle);
116
120
  logger_1.Logger.error(IoCError_1.ErrorUtils.formatForConsole(error));
117
121
  if (cycles.length > 1) {
118
- logger_1.Logger.log('\n Additional cycles:');
122
+ logger_1.Logger.log("\n Additional cycles:");
119
123
  cycles.slice(1).forEach((cycle, index) => {
120
- logger_1.Logger.log(` ${index + 2}. ${cycle.join('')}`);
124
+ logger_1.Logger.log(` ${index + 2}. ${cycle.join("")}`);
121
125
  });
122
126
  }
123
127
  }
124
128
  else {
125
- logger_1.Logger.error('Circular dependencies detected but cycle information is incomplete');
129
+ logger_1.Logger.error("Circular dependencies detected but cycle information is incomplete");
126
130
  }
127
131
  process.exit(1);
128
132
  }
129
133
  // Check for circular dependencies between modules
130
- if (moduleGroupedClasses && moduleGroupedClasses.size > 1 && classes.length > 0) {
134
+ if (moduleGroupedClasses &&
135
+ moduleGroupedClasses.size > 1 &&
136
+ classes.length > 0) {
131
137
  const moduleCycles = circular_dependency_detector_1.CircularDependencyDetector.detectModuleCycles(moduleGroupedClasses);
132
138
  if (moduleCycles.length > 0) {
133
- logger_1.Logger.error('Circular dependencies detected between modules:');
139
+ logger_1.Logger.error("Circular dependencies detected between modules:");
134
140
  moduleCycles.forEach((cycle, index) => {
135
141
  if (cycle.length > 0) {
136
142
  // The cycle already includes the starting node at the end from TopologicalSorter
137
- const cycleDisplay = cycle.join('');
143
+ const cycleDisplay = cycle.join("");
138
144
  logger_1.Logger.log(` ${index + 1}. ${cycleDisplay}`);
139
145
  }
140
146
  });
141
- logger_1.Logger.log('\n Module dependencies must form a directed acyclic graph (DAG).');
142
- logger_1.Logger.log(' Consider refactoring to break the circular dependency or merging the modules.');
147
+ logger_1.Logger.log("\n Module dependencies must form a directed acyclic graph (DAG).");
148
+ logger_1.Logger.log(" Consider refactoring to break the circular dependency or merging the modules.");
143
149
  process.exit(1);
144
150
  }
145
151
  }
146
152
  if (mergedOptions.checkCycles) {
147
- logger_1.Logger.success('No circular dependencies found (classes or modules).');
153
+ logger_1.Logger.success("No circular dependencies found (classes or modules).");
148
154
  process.exit(0);
149
155
  return;
150
156
  }
151
157
  // Generate container file
152
- logger_1.Logger.custom('🚀', 'Generating container...', logger_1.Logger.getColors().cyan + logger_1.Logger.getColors().bright);
158
+ logger_1.Logger.custom("🚀", "Generating container...", logger_1.Logger.getColors().cyan + logger_1.Logger.getColors().bright);
153
159
  const pathsResolver = new tsConfigPathsResolver_1.TsConfigPathsResolver(sourceDir);
154
160
  generator_1.IoCContainerGenerator.generate(classes, outputPath, moduleGroupedClasses, factories, values, moduleGroupedFactories, moduleGroupedValues, pathsResolver, moduleResolver !== null);
155
161
  const statParts = [];
156
162
  if (classes.length > 0)
157
- statParts.push(`${classes.length} class${classes.length !== 1 ? 'es' : ''}`);
163
+ statParts.push(`${classes.length} class${classes.length !== 1 ? "es" : ""}`);
158
164
  if (factories && factories.length > 0)
159
- statParts.push(`${factories.length} factor${factories.length !== 1 ? 'ies' : 'y'}`);
165
+ statParts.push(`${factories.length} factor${factories.length !== 1 ? "ies" : "y"}`);
160
166
  if (values && values.length > 0)
161
- statParts.push(`${values.length} value${values.length !== 1 ? 's' : ''}`);
167
+ statParts.push(`${values.length} value${values.length !== 1 ? "s" : ""}`);
162
168
  if (moduleResolver) {
163
169
  const moduleCount = new Set([
164
170
  ...(moduleGroupedClasses?.keys() ?? []),
165
171
  ...(moduleGroupedFactories?.keys() ?? []),
166
172
  ...(moduleGroupedValues?.keys() ?? []),
167
173
  ]).size;
168
- statParts.unshift(`${moduleCount} module${moduleCount !== 1 ? 's' : ''}`);
174
+ statParts.unshift(`${moduleCount} module${moduleCount !== 1 ? "s" : ""}`);
169
175
  }
170
- logger_1.Logger.success('Container generated successfully!');
176
+ logger_1.Logger.success("Container generated successfully!");
171
177
  logger_1.Logger.log(logger_1.Logger.colorizeText(` 📁 ${outputPath}`, logger_1.Logger.getColors().gray));
172
- logger_1.Logger.log(logger_1.Logger.colorizeText(` ${statParts.join(' · ')}`, logger_1.Logger.getColors().gray));
178
+ logger_1.Logger.log(logger_1.Logger.colorizeText(` ${statParts.join(" · ")}`, logger_1.Logger.getColors().gray));
173
179
  process.exit(0);
174
180
  }
175
181
  catch (error) {
@@ -188,33 +194,48 @@ function printAnalysisSummary(isModular, moduleGroupedClasses, moduleGroupedFact
188
194
  const printClass = (cls, indent) => {
189
195
  const name = logger_1.Logger.colorizeText(`${indent}🏗️ ${cls.name}`, c.white);
190
196
  if (cls.interfaceName) {
191
- logger_1.Logger.log(name + logger_1.Logger.colorizeText(' ──implements──▶ ', c.gray) + logger_1.Logger.colorizeText(cls.interfaceName, c.green));
197
+ logger_1.Logger.log(name +
198
+ logger_1.Logger.colorizeText(" ──implements──▶ ", c.gray) +
199
+ logger_1.Logger.colorizeText(cls.interfaceName, c.green));
192
200
  }
193
201
  else if (cls.abstractClassName) {
194
- logger_1.Logger.log(name + logger_1.Logger.colorizeText(' ──extends──▶ ', c.gray) + logger_1.Logger.colorizeText(cls.abstractClassName, c.green));
202
+ logger_1.Logger.log(name +
203
+ logger_1.Logger.colorizeText(" ──extends──▶ ", c.gray) +
204
+ logger_1.Logger.colorizeText(cls.abstractClassName, c.green));
195
205
  }
196
206
  else {
197
207
  logger_1.Logger.log(name);
198
208
  }
209
+ if (cls.dependencies.length > 0) {
210
+ const deps = cls.dependencies.map((d) => d.name).join(", ");
211
+ logger_1.Logger.log(logger_1.Logger.colorizeText(`${indent} deps: `, c.gray) +
212
+ logger_1.Logger.colorizeText(deps, c.yellow));
213
+ }
199
214
  };
200
215
  const printFactory = (factory, indent) => {
201
216
  if (factory.instanceFactoryFor) {
202
217
  logger_1.Logger.log(logger_1.Logger.colorizeText(`${indent}🔌 ${factory.name}()`, c.white) +
203
- logger_1.Logger.colorizeText(' ──returns──▶ ', c.gray) +
218
+ logger_1.Logger.colorizeText(" ──returns──▶ ", c.gray) +
204
219
  logger_1.Logger.colorizeText(factory.instanceFactoryFor, c.green));
205
220
  }
206
221
  else {
207
222
  const token = factory.token || factory.name;
208
223
  logger_1.Logger.log(logger_1.Logger.colorizeText(`${indent}🏭 ${factory.name}()`, c.white) +
209
- logger_1.Logger.colorizeText(' ──factory──▶ ', c.gray) +
224
+ logger_1.Logger.colorizeText(" ──factory──▶ ", c.gray) +
210
225
  logger_1.Logger.colorizeText(`'${token}'`, c.magenta));
211
226
  }
227
+ if (factory.dependencies.length > 0) {
228
+ const deps = factory.dependencies.map((d) => d.name).join(", ");
229
+ logger_1.Logger.log(logger_1.Logger.colorizeText(`${indent} deps: `, c.gray) +
230
+ logger_1.Logger.colorizeText(deps, c.yellow));
231
+ }
212
232
  };
213
233
  const printValue = (value, indent) => {
214
234
  const label = value.interfaceName || value.token || value.name;
215
235
  logger_1.Logger.log(logger_1.Logger.colorizeText(`${indent}💎 ${value.name}`, c.white) +
216
- logger_1.Logger.colorizeText(' ──value──▶ ', c.gray) +
236
+ logger_1.Logger.colorizeText(" ──value──▶ ", c.gray) +
217
237
  logger_1.Logger.colorizeText(label, c.green));
238
+ // ValueInfo has no dependencies field, so nothing to print
218
239
  };
219
240
  if (isModular) {
220
241
  const allModuleNames = new Set([
@@ -224,26 +245,26 @@ function printAnalysisSummary(isModular, moduleGroupedClasses, moduleGroupedFact
224
245
  ]);
225
246
  for (const moduleName of allModuleNames) {
226
247
  logger_1.Logger.log(logger_1.Logger.colorizeText(`📦 ${moduleName}`, c.cyan + c.bright));
227
- for (const cls of (moduleGroupedClasses?.get(moduleName) ?? [])) {
228
- printClass(cls, ' ');
248
+ for (const cls of moduleGroupedClasses?.get(moduleName) ?? []) {
249
+ printClass(cls, " ");
229
250
  }
230
- for (const factory of (moduleGroupedFactories?.get(moduleName) ?? [])) {
231
- printFactory(factory, ' ');
251
+ for (const factory of moduleGroupedFactories?.get(moduleName) ?? []) {
252
+ printFactory(factory, " ");
232
253
  }
233
- for (const value of (moduleGroupedValues?.get(moduleName) ?? [])) {
234
- printValue(value, ' ');
254
+ for (const value of moduleGroupedValues?.get(moduleName) ?? []) {
255
+ printValue(value, " ");
235
256
  }
236
257
  }
237
258
  }
238
259
  else {
239
260
  for (const cls of classes) {
240
- printClass(cls, ' ');
261
+ printClass(cls, " ");
241
262
  }
242
- for (const factory of (factories ?? [])) {
243
- printFactory(factory, ' ');
263
+ for (const factory of factories ?? []) {
264
+ printFactory(factory, " ");
244
265
  }
245
- for (const value of (values ?? [])) {
246
- printValue(value, ' ');
266
+ for (const value of values ?? []) {
267
+ printValue(value, " ");
247
268
  }
248
269
  }
249
270
  }
@@ -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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"}
@@ -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,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAK7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,qBAAa,qBAAqB;IAC9B;;;;;;;OAOG;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,EACzB,MAAM,CAAC,EAAE,SAAS,EAAE,EACpB,sBAAsB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,EACnD,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EAC9C,aAAa,CAAC,EAAE,qBAAqB,EACrC,SAAS,CAAC,EAAE,OAAO,GACpB,IAAI;IA4BP,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAsE/B,OAAO,CAAC,MAAM,CAAC,oBAAoB;IA4EnC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAkDjC,OAAO,CAAC,MAAM,CAAC,kCAAkC;IAiCjD,OAAO,CAAC,MAAM,CAAC,gCAAgC;IAW/C,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;IAoF9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAoBrC,OAAO,CAAC,MAAM,CAAC,qBAAqB;IA+CpC,OAAO,CAAC,MAAM,CAAC,4BAA4B;IA2D3C,OAAO,CAAC,MAAM,CAAC,0BAA0B;CAsB5C"}
1
+ {"version":3,"file":"ioc-container-generator.d.ts","sourceRoot":"","sources":["../../src/generator/ioc-container-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAkB,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAK7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,qBAAa,qBAAqB;IAC9B;;;;;;;OAOG;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,EACzB,MAAM,CAAC,EAAE,SAAS,EAAE,EACpB,sBAAsB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,EACnD,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EAC9C,aAAa,CAAC,EAAE,qBAAqB,EACrC,SAAS,CAAC,EAAE,OAAO,GACpB,IAAI;IA4BP,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAwE/B,OAAO,CAAC,MAAM,CAAC,oBAAoB;IA8EnC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAmDjC,OAAO,CAAC,MAAM,CAAC,kCAAkC;IAiCjD,OAAO,CAAC,MAAM,CAAC,gCAAgC;IAW/C,OAAO,CAAC,MAAM,CAAC,yBAAyB;IA0BxC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAuElC,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAiBxC,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAY3C,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAwC1C,OAAO,CAAC,MAAM,CAAC,eAAe;IA4F9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAoBrC,OAAO,CAAC,MAAM,CAAC,qBAAqB;IA+CpC,OAAO,CAAC,MAAM,CAAC,4BAA4B;IA2D3C,OAAO,CAAC,MAAM,CAAC,0BAA0B;CAsB5C"}
@@ -47,12 +47,15 @@ class IoCContainerGenerator {
47
47
  interfaceNames.add(cls.interfaceName);
48
48
  }
49
49
  });
50
- // Also add interface names from instance factories so their dependencies resolve correctly
50
+ // Also add interface names from instance factories and factory tokens
51
51
  if (factories) {
52
52
  factories.forEach(factory => {
53
53
  if (factory.instanceFactoryFor) {
54
54
  interfaceNames.add(factory.instanceFactoryFor);
55
55
  }
56
+ const token = factory.token || factory.name;
57
+ if (token)
58
+ interfaceNames.add(token);
56
59
  });
57
60
  }
58
61
  // Add value tokens — values are always registered as string tokens, so any dependency
@@ -75,7 +78,7 @@ class IoCContainerGenerator {
75
78
  }
76
79
  });
77
80
  });
78
- const imports = this.generateImports(classes, outputPath, factories, values);
81
+ const imports = this.generateImports(classes, outputPath, factories, values, classes, interfaceNames, abstractClassNames);
79
82
  const classRegistrations = this.generateRegistrations(classes, interfaceNames, '', abstractClassNames);
80
83
  const factoryRegistrations = factories && factories.length > 0
81
84
  ? this.generateFactoryRegistrations(factories, interfaceNames, '', abstractClassNames)
@@ -117,13 +120,16 @@ ${allRegistrations}
117
120
  interfaceNames.add(cls.interfaceName);
118
121
  }
119
122
  });
120
- // Also add interface names from instance factories
123
+ // Also add interface names from instance factories and factory tokens
121
124
  if (moduleGroupedFactories) {
122
125
  moduleGroupedFactories.forEach(moduleFactories => {
123
126
  moduleFactories.forEach(factory => {
124
127
  if (factory.instanceFactoryFor) {
125
128
  interfaceNames.add(factory.instanceFactoryFor);
126
129
  }
130
+ const token = factory.token || factory.name;
131
+ if (token)
132
+ interfaceNames.add(token);
127
133
  });
128
134
  });
129
135
  }
@@ -152,7 +158,7 @@ ${allRegistrations}
152
158
  const moduleValues = moduleGroupedValues?.get(moduleName);
153
159
  const moduleFilename = `${moduleName.charAt(0).toLowerCase() + moduleName.slice(1)}.module.ts`;
154
160
  const moduleFilePath = (0, path_1.join)(modulesDir, moduleFilename);
155
- const moduleCode = this.generateModuleFile(moduleName, classes, interfaceNames, moduleFilePath, moduleFactories, moduleValues);
161
+ const moduleCode = this.generateModuleFile(moduleName, classes, interfaceNames, moduleFilePath, moduleFactories, moduleValues, allClasses);
156
162
  (0, fs_1.writeFileSync)(moduleFilePath, moduleCode);
157
163
  // Add import for main container file
158
164
  const moduleVarName = moduleName.charAt(0).toLowerCase() + moduleName.slice(1);
@@ -164,8 +170,7 @@ ${allRegistrations}
164
170
  const mainContainerCode = this.generateMainContainerFile(allModuleNames, moduleImports, dtsFilename);
165
171
  (0, fs_1.writeFileSync)(outputPath, mainContainerCode);
166
172
  }
167
- static generateModuleFile(moduleName, classes, interfaceNames, moduleFilePath, factories, values) {
168
- const imports = this.generateImports(classes, moduleFilePath, factories, values);
173
+ static generateModuleFile(moduleName, classes, interfaceNames, moduleFilePath, factories, values, allClasses = []) {
169
174
  // Collect abstract class names that are dependencies
170
175
  const abstractClassNames = new Set();
171
176
  classes.forEach(cls => {
@@ -177,6 +182,7 @@ ${allRegistrations}
177
182
  }
178
183
  });
179
184
  });
185
+ const imports = this.generateImports(classes, moduleFilePath, factories, values, allClasses, interfaceNames, abstractClassNames);
180
186
  const classRegistrations = this.generateModuleRegistrations(classes, interfaceNames, abstractClassNames);
181
187
  const factoryRegistrations = factories && factories.length > 0
182
188
  ? this.generateModuleFactoryRegistrations(factories, interfaceNames, abstractClassNames)
@@ -258,7 +264,7 @@ export const container = new Container<ContainerRegistry>();
258
264
  ${moduleInstantiations}
259
265
  `;
260
266
  }
261
- static generateModularCode(moduleGroupedClasses, outputPath) {
267
+ static generateModularCode(moduleGroupedClasses, outputPath, factories, values) {
262
268
  const allClasses = Array.from(moduleGroupedClasses.values()).flat();
263
269
  // Collect all interface names
264
270
  const interfaceNames = new Set();
@@ -267,8 +273,38 @@ ${moduleInstantiations}
267
273
  interfaceNames.add(cls.interfaceName);
268
274
  }
269
275
  });
270
- const imports = this.generateImports(allClasses, outputPath);
271
- const moduleDefinitions = this.generateModuleDefinitions(moduleGroupedClasses, interfaceNames);
276
+ // Also add factory tokens
277
+ if (factories) {
278
+ factories.forEach(factory => {
279
+ if (factory.instanceFactoryFor) {
280
+ interfaceNames.add(factory.instanceFactoryFor);
281
+ }
282
+ const token = factory.token || factory.name;
283
+ if (token)
284
+ interfaceNames.add(token);
285
+ });
286
+ }
287
+ // Add value tokens
288
+ if (values) {
289
+ values.forEach(value => {
290
+ const token = value.token || value.interfaceName || value.name;
291
+ if (token)
292
+ interfaceNames.add(token);
293
+ });
294
+ }
295
+ // Collect abstract class names from dependencies
296
+ const abstractClassNames = new Set();
297
+ allClasses.forEach(cls => {
298
+ cls.dependencies.forEach(dep => {
299
+ const isInCurrentClasses = allClasses.some(c => c.name === dep.name);
300
+ const looksLikeAbstractClass = dep.name.startsWith('Abstract') || dep.name.includes('Abstract');
301
+ if (!isInCurrentClasses && looksLikeAbstractClass) {
302
+ abstractClassNames.add(dep.name);
303
+ }
304
+ });
305
+ });
306
+ const imports = this.generateImports(allClasses, outputPath, undefined, undefined, allClasses, interfaceNames, abstractClassNames);
307
+ const moduleDefinitions = this.generateModuleDefinitions(moduleGroupedClasses, interfaceNames, abstractClassNames);
272
308
  const moduleInstantiations = this.generateModuleInstantiations(moduleGroupedClasses);
273
309
  const filename = outputPath.split('/').pop()?.replace(/\.ts$/, '') || 'container.gen';
274
310
  const dtsFilename = outputPath.split('/').pop()?.replace(/\.ts$/, '.d') || 'container.gen.d';
@@ -287,10 +323,10 @@ export const container = new Container<ContainerRegistry>();
287
323
  ${moduleInstantiations}
288
324
  `;
289
325
  }
290
- static generateModuleDefinitions(moduleGroupedClasses, interfaceNames) {
326
+ static generateModuleDefinitions(moduleGroupedClasses, interfaceNames, abstractClassNames = new Set()) {
291
327
  const modules = [];
292
328
  for (const [moduleName, classes] of moduleGroupedClasses.entries()) {
293
- const registrations = this.generateModuleRegistrations(classes, interfaceNames);
329
+ const registrations = this.generateModuleRegistrations(classes, interfaceNames, abstractClassNames);
294
330
  modules.push(`const ${moduleName.charAt(0).toLowerCase() + moduleName.slice(1)} = new ContainerModule()
295
331
  ${registrations};`);
296
332
  }
@@ -334,14 +370,14 @@ ${registrations};`);
334
370
  return ` .register(${token}, { useClass: ${cls.name}${dependencies}, lifecycle: ${lifecycle} })`;
335
371
  }).join('\n');
336
372
  }
337
- static generateImports(classes, outputPath, factories, values) {
373
+ static generateImports(classes, outputPath, factories, values, allProjectClasses = [], interfaceNames = new Set(), abstractClassNames = new Set()) {
338
374
  const outputDir = (0, path_1.dirname)(outputPath);
339
375
  const importStatements = [];
340
376
  const importMap = new Map();
341
- // Collect class imports
342
- classes.forEach(cls => {
343
- // Calculate relative path from output file to class file
344
- let relativePath = (0, path_1.relative)(outputDir, cls.filePath);
377
+ // Helper to add an import to the map
378
+ const addImportToMap = (filePath, name) => {
379
+ // Calculate relative path from output file to file
380
+ let relativePath = (0, path_1.relative)(outputDir, filePath);
345
381
  // Remove extension (.ts)
346
382
  relativePath = relativePath.replace(/\.ts$/, '');
347
383
  // Add ./ if it doesn't start with . or /
@@ -353,46 +389,50 @@ ${registrations};`);
353
389
  if (!importMap.has(relativePath)) {
354
390
  importMap.set(relativePath, new Set());
355
391
  }
356
- importMap.get(relativePath).add(cls.name);
392
+ importMap.get(relativePath).add(name);
393
+ };
394
+ // Collect class imports
395
+ classes.forEach(cls => {
396
+ addImportToMap(cls.filePath, cls.name);
357
397
  });
358
398
  // Collect factory imports
359
399
  if (factories) {
360
400
  factories.forEach(factory => {
361
- // Calculate relative path from output file to factory file
362
- let relativePath = (0, path_1.relative)(outputDir, factory.filePath);
363
- // Remove extension (.ts)
364
- relativePath = relativePath.replace(/\.ts$/, '');
365
- // Add ./ if it doesn't start with . or /
366
- if (!relativePath.startsWith('.')) {
367
- relativePath = `./${relativePath}`;
368
- }
369
- // Use forward slashes for imports
370
- relativePath = relativePath.replace(/\\/g, '/');
371
- if (!importMap.has(relativePath)) {
372
- importMap.set(relativePath, new Set());
373
- }
374
- importMap.get(relativePath).add(factory.name);
401
+ addImportToMap(factory.filePath, factory.name);
375
402
  });
376
403
  }
377
404
  // Collect value imports
378
405
  if (values) {
379
406
  values.forEach(value => {
380
- // Calculate relative path from output file to value file
381
- let relativePath = (0, path_1.relative)(outputDir, value.filePath);
382
- // Remove extension (.ts)
383
- relativePath = relativePath.replace(/\.ts$/, '');
384
- // Add ./ if it doesn't start with . or /
385
- if (!relativePath.startsWith('.')) {
386
- relativePath = `./${relativePath}`;
407
+ addImportToMap(value.filePath, value.name);
408
+ });
409
+ }
410
+ // Collect dependencies that need class token imports
411
+ // (those not registered as string tokens via interfaces or abstract classes)
412
+ const allEntities = [...classes, ...(factories || [])];
413
+ const registeredNamesInModule = new Set([
414
+ ...classes.map(c => c.name),
415
+ ...(factories?.map(f => f.name) ?? []),
416
+ ...(values?.map(v => v.name) ?? [])
417
+ ]);
418
+ allEntities.forEach(entity => {
419
+ entity.dependencies.forEach(dep => {
420
+ // Skip if it's already registered in this module, or if it's a string token
421
+ // (registered via interfaces, abstract classes, factories or values)
422
+ if (registeredNamesInModule.has(dep.name) ||
423
+ interfaceNames.has(dep.name) ||
424
+ abstractClassNames.has(dep.name)) {
425
+ return;
387
426
  }
388
- // Use forward slashes for imports
389
- relativePath = relativePath.replace(/\\/g, '/');
390
- if (!importMap.has(relativePath)) {
391
- importMap.set(relativePath, new Set());
427
+ // If it's a project class, import it using its actual file path
428
+ const depClass = allProjectClasses.find(c => c.name === dep.name);
429
+ if (depClass) {
430
+ addImportToMap(depClass.filePath, depClass.name);
392
431
  }
393
- importMap.get(relativePath).add(value.name);
432
+ // Note: If not found in project classes, it might be an external dependency.
433
+ // For now we don't handle external class token imports as we don't have their absolute paths.
394
434
  });
395
- }
435
+ });
396
436
  // Generate import statements
397
437
  for (const [importPath, names] of importMap.entries()) {
398
438
  const namesArray = Array.from(names).sort();