@notjustcoders/ioc-arise 1.1.16 → 1.1.18
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.
- package/dist/analyser/ast-parser.d.ts +13 -0
- package/dist/analyser/ast-parser.d.ts.map +1 -1
- package/dist/analyser/ast-parser.js +430 -0
- package/dist/analyser/ast-parser.js.map +1 -1
- package/dist/analyser/factory-analyzer.d.ts +13 -0
- package/dist/analyser/factory-analyzer.d.ts.map +1 -0
- package/dist/analyser/factory-analyzer.js +184 -0
- package/dist/analyser/factory-analyzer.js.map +1 -0
- package/dist/analyser/index.d.ts +6 -1
- package/dist/analyser/index.d.ts.map +1 -1
- package/dist/analyser/index.js +9 -0
- package/dist/analyser/index.js.map +1 -1
- package/dist/analyser/project-analyzer.d.ts +8 -2
- package/dist/analyser/project-analyzer.d.ts.map +1 -1
- package/dist/analyser/project-analyzer.js +7 -1
- package/dist/analyser/project-analyzer.js.map +1 -1
- package/dist/analyser/value-analyzer.d.ts +10 -0
- package/dist/analyser/value-analyzer.d.ts.map +1 -0
- package/dist/analyser/value-analyzer.js +81 -0
- package/dist/analyser/value-analyzer.js.map +1 -0
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +9 -3
- package/dist/commands/generate.js.map +1 -1
- package/dist/generator/ioc-container-generator.d.ts +6 -2
- package/dist/generator/ioc-container-generator.d.ts.map +1 -1
- package/dist/generator/ioc-container-generator.js +137 -11
- package/dist/generator/ioc-container-generator.js.map +1 -1
- package/dist/generator/type-declaration-generator.d.ts +3 -2
- package/dist/generator/type-declaration-generator.d.ts.map +1 -1
- package/dist/generator/type-declaration-generator.js +94 -6
- package/dist/generator/type-declaration-generator.js.map +1 -1
- package/dist/types.d.ts +24 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +12 -11
|
@@ -11,8 +11,10 @@ class IoCContainerGenerator {
|
|
|
11
11
|
* @param classes - Analyzed classes to be registered (can be flat or grouped)
|
|
12
12
|
* @param outputPath - Path where the container file will be generated
|
|
13
13
|
* @param moduleGroupedClasses - Optional: Classes grouped by modules
|
|
14
|
+
* @param factories - Optional: Factory functions to be registered
|
|
15
|
+
* @param values - Optional: Plain object values to be registered with useValue
|
|
14
16
|
*/
|
|
15
|
-
static generate(classes, outputPath, moduleGroupedClasses) {
|
|
17
|
+
static generate(classes, outputPath, moduleGroupedClasses, factories, values) {
|
|
16
18
|
// Check for name collisions before generating
|
|
17
19
|
// If moduleGroupedClasses is provided, check all classes from all modules
|
|
18
20
|
const allClassesToCheck = moduleGroupedClasses && moduleGroupedClasses.size > 1
|
|
@@ -24,20 +26,20 @@ class IoCContainerGenerator {
|
|
|
24
26
|
(0, fs_1.mkdirSync)(outputDir, { recursive: true });
|
|
25
27
|
if (moduleGroupedClasses && moduleGroupedClasses.size > 1) {
|
|
26
28
|
// Generate modular code with separate files for each module
|
|
27
|
-
this.generateModularFiles(moduleGroupedClasses, outputPath);
|
|
29
|
+
this.generateModularFiles(moduleGroupedClasses, outputPath, factories, values);
|
|
28
30
|
}
|
|
29
31
|
else {
|
|
30
32
|
// Generate single flat file
|
|
31
|
-
const containerCode = this.generateFlatCode(classes, outputPath);
|
|
33
|
+
const containerCode = this.generateFlatCode(classes, outputPath, factories, values);
|
|
32
34
|
(0, fs_1.writeFileSync)(outputPath, containerCode);
|
|
33
35
|
}
|
|
34
36
|
// Generate type declarations (.d.ts file)
|
|
35
37
|
const typesPath = outputPath.endsWith('.gen.ts')
|
|
36
38
|
? outputPath.replace(/\.gen\.ts$/, '.gen.d.ts')
|
|
37
39
|
: outputPath.replace(/\.ts$/, '.d.ts');
|
|
38
|
-
type_declaration_generator_1.TypeDeclarationGenerator.generate(classes, typesPath);
|
|
40
|
+
type_declaration_generator_1.TypeDeclarationGenerator.generate(classes, typesPath, factories, values);
|
|
39
41
|
}
|
|
40
|
-
static generateFlatCode(classes, outputPath) {
|
|
42
|
+
static generateFlatCode(classes, outputPath, factories, values) {
|
|
41
43
|
// Collect all interface names to identify which dependencies should use string tokens
|
|
42
44
|
const interfaceNames = new Set();
|
|
43
45
|
classes.forEach(cls => {
|
|
@@ -56,10 +58,21 @@ class IoCContainerGenerator {
|
|
|
56
58
|
}
|
|
57
59
|
});
|
|
58
60
|
});
|
|
59
|
-
const imports = this.generateImports(classes, outputPath);
|
|
60
|
-
const
|
|
61
|
+
const imports = this.generateImports(classes, outputPath, factories, values);
|
|
62
|
+
const classRegistrations = this.generateRegistrations(classes, interfaceNames, '', abstractClassNames);
|
|
63
|
+
const factoryRegistrations = factories && factories.length > 0
|
|
64
|
+
? this.generateFactoryRegistrations(factories, interfaceNames, '', abstractClassNames)
|
|
65
|
+
: '';
|
|
66
|
+
const valueRegistrations = values && values.length > 0
|
|
67
|
+
? this.generateValueRegistrations(values, '')
|
|
68
|
+
: '';
|
|
61
69
|
const filename = outputPath.split('/').pop()?.replace(/\.ts$/, '') || 'container.gen';
|
|
62
70
|
const dtsFilename = outputPath.split('/').pop()?.replace(/\.ts$/, '.d') || 'container.gen.d';
|
|
71
|
+
const allRegistrations = [
|
|
72
|
+
classRegistrations,
|
|
73
|
+
factoryRegistrations,
|
|
74
|
+
valueRegistrations
|
|
75
|
+
].filter(Boolean).join('\n\n');
|
|
63
76
|
return `/**
|
|
64
77
|
* This file is auto-generated by ioc-arise.
|
|
65
78
|
* Do not modify this file manually.
|
|
@@ -70,10 +83,10 @@ ${imports}
|
|
|
70
83
|
|
|
71
84
|
export const container = new Container<ContainerRegistry>();
|
|
72
85
|
|
|
73
|
-
${
|
|
86
|
+
${allRegistrations}
|
|
74
87
|
`;
|
|
75
88
|
}
|
|
76
|
-
static generateModularFiles(moduleGroupedClasses, outputPath) {
|
|
89
|
+
static generateModularFiles(moduleGroupedClasses, outputPath, factories, values) {
|
|
77
90
|
const outputDir = (0, path_1.dirname)(outputPath);
|
|
78
91
|
const baseFilename = (0, path_1.basename)(outputPath, '.ts');
|
|
79
92
|
const modulesDir = (0, path_1.join)(outputDir, 'modules');
|
|
@@ -227,9 +240,11 @@ ${registrations};`);
|
|
|
227
240
|
return ` .register(${token}, { useClass: ${cls.name}${dependencies}, lifecycle: ${lifecycle} })`;
|
|
228
241
|
}).join('\n');
|
|
229
242
|
}
|
|
230
|
-
static generateImports(classes, outputPath) {
|
|
243
|
+
static generateImports(classes, outputPath, factories, values) {
|
|
231
244
|
const outputDir = (0, path_1.dirname)(outputPath);
|
|
232
245
|
const importStatements = [];
|
|
246
|
+
const importMap = new Map();
|
|
247
|
+
// Collect class imports
|
|
233
248
|
classes.forEach(cls => {
|
|
234
249
|
// Calculate relative path from output file to class file
|
|
235
250
|
let relativePath = (0, path_1.relative)(outputDir, cls.filePath);
|
|
@@ -241,8 +256,54 @@ ${registrations};`);
|
|
|
241
256
|
}
|
|
242
257
|
// Use forward slashes for imports
|
|
243
258
|
relativePath = relativePath.replace(/\\/g, '/');
|
|
244
|
-
|
|
259
|
+
if (!importMap.has(relativePath)) {
|
|
260
|
+
importMap.set(relativePath, new Set());
|
|
261
|
+
}
|
|
262
|
+
importMap.get(relativePath).add(cls.name);
|
|
245
263
|
});
|
|
264
|
+
// Collect factory imports
|
|
265
|
+
if (factories) {
|
|
266
|
+
factories.forEach(factory => {
|
|
267
|
+
// Calculate relative path from output file to factory file
|
|
268
|
+
let relativePath = (0, path_1.relative)(outputDir, factory.filePath);
|
|
269
|
+
// Remove extension (.ts)
|
|
270
|
+
relativePath = relativePath.replace(/\.ts$/, '');
|
|
271
|
+
// Add ./ if it doesn't start with . or /
|
|
272
|
+
if (!relativePath.startsWith('.')) {
|
|
273
|
+
relativePath = `./${relativePath}`;
|
|
274
|
+
}
|
|
275
|
+
// Use forward slashes for imports
|
|
276
|
+
relativePath = relativePath.replace(/\\/g, '/');
|
|
277
|
+
if (!importMap.has(relativePath)) {
|
|
278
|
+
importMap.set(relativePath, new Set());
|
|
279
|
+
}
|
|
280
|
+
importMap.get(relativePath).add(factory.name);
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
// Collect value imports
|
|
284
|
+
if (values) {
|
|
285
|
+
values.forEach(value => {
|
|
286
|
+
// Calculate relative path from output file to value file
|
|
287
|
+
let relativePath = (0, path_1.relative)(outputDir, value.filePath);
|
|
288
|
+
// Remove extension (.ts)
|
|
289
|
+
relativePath = relativePath.replace(/\.ts$/, '');
|
|
290
|
+
// Add ./ if it doesn't start with . or /
|
|
291
|
+
if (!relativePath.startsWith('.')) {
|
|
292
|
+
relativePath = `./${relativePath}`;
|
|
293
|
+
}
|
|
294
|
+
// Use forward slashes for imports
|
|
295
|
+
relativePath = relativePath.replace(/\\/g, '/');
|
|
296
|
+
if (!importMap.has(relativePath)) {
|
|
297
|
+
importMap.set(relativePath, new Set());
|
|
298
|
+
}
|
|
299
|
+
importMap.get(relativePath).add(value.name);
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
// Generate import statements
|
|
303
|
+
for (const [importPath, names] of importMap.entries()) {
|
|
304
|
+
const namesArray = Array.from(names).sort();
|
|
305
|
+
importStatements.push(`import { ${namesArray.join(', ')} } from '${importPath}';`);
|
|
306
|
+
}
|
|
246
307
|
return importStatements.join('\n');
|
|
247
308
|
}
|
|
248
309
|
/**
|
|
@@ -297,6 +358,71 @@ ${registrations};`);
|
|
|
297
358
|
return `${indent}container.register(${token}, {
|
|
298
359
|
${indent} useClass: ${cls.name},${dependencies}
|
|
299
360
|
${indent} lifecycle: ${lifecycle},
|
|
361
|
+
${indent}});`;
|
|
362
|
+
}).join('\n\n');
|
|
363
|
+
}
|
|
364
|
+
static generateFactoryRegistrations(factories, interfaceNames, indent = '', abstractClassNames = new Set()) {
|
|
365
|
+
return factories.map(factory => {
|
|
366
|
+
// Use token if provided, otherwise use function name directly
|
|
367
|
+
const token = factory.token
|
|
368
|
+
? `'${factory.token}'`
|
|
369
|
+
: `'${factory.name}'`;
|
|
370
|
+
// Generate dependencies array
|
|
371
|
+
const dependencies = factory.dependencies.length > 0
|
|
372
|
+
? `\n${indent} dependencies: [${factory.dependencies.map(dep => {
|
|
373
|
+
// If dependency is an interface, use string token
|
|
374
|
+
if (interfaceNames.has(dep.name)) {
|
|
375
|
+
return `'${dep.name}'`;
|
|
376
|
+
}
|
|
377
|
+
// If dependency is an abstract class, use string token
|
|
378
|
+
if (abstractClassNames.has(dep.name)) {
|
|
379
|
+
return `'${dep.name}'`;
|
|
380
|
+
}
|
|
381
|
+
// Use original class name
|
|
382
|
+
return dep.name;
|
|
383
|
+
}).join(', ')}],`
|
|
384
|
+
: '';
|
|
385
|
+
// Determine lifecycle enum value
|
|
386
|
+
const lifecycle = factory.scope === 'singleton'
|
|
387
|
+
? 'Lifecycle.Singleton'
|
|
388
|
+
: 'Lifecycle.Transient';
|
|
389
|
+
// Generate factory function - wrap if context object pattern is used
|
|
390
|
+
let factoryFunction;
|
|
391
|
+
if (factory.useContextObject && factory.contextObjectProperties) {
|
|
392
|
+
// Generate wrapper function that passes dependencies as context object
|
|
393
|
+
const contextProps = factory.contextObjectProperties.map(prop => prop.name).join(', ');
|
|
394
|
+
const contextObject = factory.contextObjectProperties.map(prop => `${prop.name}`).join(', ');
|
|
395
|
+
const depParams = factory.dependencies.map((_, index) => {
|
|
396
|
+
const propName = factory.contextObjectProperties?.[index]?.name || `dep${index}`;
|
|
397
|
+
return propName;
|
|
398
|
+
}).join(', ');
|
|
399
|
+
factoryFunction = `(${depParams}) => ${factory.name}({ ${contextObject} })`;
|
|
400
|
+
}
|
|
401
|
+
else {
|
|
402
|
+
// Use factory directly (existing behavior)
|
|
403
|
+
factoryFunction = factory.name;
|
|
404
|
+
}
|
|
405
|
+
return `${indent}container.register(${token}, {
|
|
406
|
+
${indent} useFactory: ${factoryFunction},${dependencies}
|
|
407
|
+
${indent} lifecycle: ${lifecycle},
|
|
408
|
+
${indent}});`;
|
|
409
|
+
}).join('\n\n');
|
|
410
|
+
}
|
|
411
|
+
static generateValueRegistrations(values, indent = '') {
|
|
412
|
+
return values.map(value => {
|
|
413
|
+
// Use token if provided, otherwise use interface name or value name
|
|
414
|
+
const token = value.token
|
|
415
|
+
? `'${value.token}'`
|
|
416
|
+
: value.interfaceName
|
|
417
|
+
? `'${value.interfaceName}'`
|
|
418
|
+
: `'${value.name}'`;
|
|
419
|
+
// Determine lifecycle enum value (always singleton for useValue)
|
|
420
|
+
const lifecycle = value.scope === 'singleton'
|
|
421
|
+
? 'Lifecycle.Singleton'
|
|
422
|
+
: 'Lifecycle.Singleton';
|
|
423
|
+
return `${indent}container.register(${token}, {
|
|
424
|
+
${indent} useValue: ${value.name},
|
|
425
|
+
${indent} lifecycle: ${lifecycle},
|
|
300
426
|
${indent}});`;
|
|
301
427
|
}).join('\n\n');
|
|
302
428
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ioc-container-generator.js","sourceRoot":"","sources":["../../src/generator/ioc-container-generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ioc-container-generator.js","sourceRoot":"","sources":["../../src/generator/ioc-container-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { ClassInfo } from '../types';
|
|
1
|
+
import { ClassInfo, FactoryInfo, ValueInfo } from '../types';
|
|
2
2
|
export declare class TypeDeclarationGenerator {
|
|
3
|
-
static generate(classes: ClassInfo[], outputPath: string): void;
|
|
3
|
+
static generate(classes: ClassInfo[], outputPath: string, factories?: FactoryInfo[], values?: ValueInfo[]): void;
|
|
4
4
|
private static generateTypeDeclarations;
|
|
5
5
|
private static generateTypeImports;
|
|
6
|
+
private static findInterfaceLocationForValue;
|
|
6
7
|
private static findInterfaceLocations;
|
|
7
8
|
private static generateRegistryInterface;
|
|
8
9
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-declaration-generator.d.ts","sourceRoot":"","sources":["../../src/generator/type-declaration-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"type-declaration-generator.d.ts","sourceRoot":"","sources":["../../src/generator/type-declaration-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAM7D,qBAAa,wBAAwB;IACjC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI;IAUhH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAsEvC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA6ElC,OAAO,CAAC,MAAM,CAAC,6BAA6B;IAwD5C,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAiDrC,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAWxC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAmBrC,OAAO,CAAC,MAAM,CAAC,0BAA0B;CAgB5C"}
|
|
@@ -5,15 +5,15 @@ const path_1 = require("path");
|
|
|
5
5
|
const fs_1 = require("fs");
|
|
6
6
|
const errorFactory_1 = require("../errors/errorFactory");
|
|
7
7
|
class TypeDeclarationGenerator {
|
|
8
|
-
static generate(classes, outputPath) {
|
|
8
|
+
static generate(classes, outputPath, factories, values) {
|
|
9
9
|
// Check for name collisions before generating
|
|
10
10
|
this.checkForNameCollisions(classes);
|
|
11
11
|
// outputPath already has .d.ts extension from the generator
|
|
12
|
-
const typeDeclarations = this.generateTypeDeclarations(classes, outputPath);
|
|
12
|
+
const typeDeclarations = this.generateTypeDeclarations(classes, outputPath, factories, values);
|
|
13
13
|
(0, fs_1.mkdirSync)((0, path_1.dirname)(outputPath), { recursive: true });
|
|
14
14
|
(0, fs_1.writeFileSync)(outputPath, typeDeclarations);
|
|
15
15
|
}
|
|
16
|
-
static generateTypeDeclarations(classes, outputPath) {
|
|
16
|
+
static generateTypeDeclarations(classes, outputPath, factories, values) {
|
|
17
17
|
// Filter classes that have interface implementations or abstract class implementations
|
|
18
18
|
const interfaceClasses = classes.filter(cls => cls.interfaceName);
|
|
19
19
|
const abstractClasses = classes.filter(cls => cls.abstractClassName);
|
|
@@ -29,8 +29,8 @@ class TypeDeclarationGenerator {
|
|
|
29
29
|
export interface ContainerRegistry {}
|
|
30
30
|
`;
|
|
31
31
|
}
|
|
32
|
-
const typeImports = this.generateTypeImports(interfaceClasses, abstractClasses, directClasses, outputPath);
|
|
33
|
-
// Build registry entries for interfaces, abstract classes,
|
|
32
|
+
const typeImports = this.generateTypeImports(interfaceClasses, abstractClasses, directClasses, outputPath, factories, values);
|
|
33
|
+
// Build registry entries for interfaces, abstract classes, direct classes, and factories
|
|
34
34
|
const registryEntries = [];
|
|
35
35
|
interfaceClasses.forEach(cls => {
|
|
36
36
|
registryEntries.push(` '${cls.interfaceName}': ${cls.interfaceName};`);
|
|
@@ -43,6 +43,23 @@ export interface ContainerRegistry {}
|
|
|
43
43
|
directClasses.forEach(cls => {
|
|
44
44
|
registryEntries.push(` '${cls.name}': ${cls.name};`);
|
|
45
45
|
});
|
|
46
|
+
// For factories, use the function name as the token
|
|
47
|
+
if (factories) {
|
|
48
|
+
factories.forEach(factory => {
|
|
49
|
+
const token = factory.token || factory.name;
|
|
50
|
+
// Use ReturnType<typeof factoryName> as the type
|
|
51
|
+
registryEntries.push(` '${token}': ReturnType<typeof ${factory.name}>;`);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
// For values, use the interface name or value name as the token
|
|
55
|
+
if (values) {
|
|
56
|
+
values.forEach(value => {
|
|
57
|
+
const token = value.token || value.interfaceName || value.name;
|
|
58
|
+
// Use the interface type if available, otherwise use typeof valueName
|
|
59
|
+
const type = value.interfaceName || `typeof ${value.name}`;
|
|
60
|
+
registryEntries.push(` '${token}': ${type};`);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
46
63
|
return `/**
|
|
47
64
|
* This file is auto-generated by ioc-arise.
|
|
48
65
|
* Do not modify this file manually.
|
|
@@ -56,7 +73,7 @@ ${registryEntries.join('\n')}
|
|
|
56
73
|
}
|
|
57
74
|
`;
|
|
58
75
|
}
|
|
59
|
-
static generateTypeImports(interfaceClasses, abstractClasses, directClasses, outputPath) {
|
|
76
|
+
static generateTypeImports(interfaceClasses, abstractClasses, directClasses, outputPath, factories, values) {
|
|
60
77
|
const outputDir = (0, path_1.dirname)(outputPath);
|
|
61
78
|
const imports = [];
|
|
62
79
|
// Build a map of interface names to their actual file paths by searching the source
|
|
@@ -89,8 +106,79 @@ ${registryEntries.join('\n')}
|
|
|
89
106
|
relativePath = relativePath.replace(/\\/g, '/');
|
|
90
107
|
imports.push(`import type { ${cls.name} } from '${relativePath}';`);
|
|
91
108
|
});
|
|
109
|
+
// Import factory functions for ReturnType
|
|
110
|
+
if (factories) {
|
|
111
|
+
factories.forEach(factory => {
|
|
112
|
+
let relativePath = (0, path_1.relative)(outputDir, factory.filePath);
|
|
113
|
+
relativePath = relativePath.replace(/\.ts$/, '');
|
|
114
|
+
if (!relativePath.startsWith('.')) {
|
|
115
|
+
relativePath = `./${relativePath}`;
|
|
116
|
+
}
|
|
117
|
+
relativePath = relativePath.replace(/\\/g, '/');
|
|
118
|
+
imports.push(`import { ${factory.name} } from '${relativePath}';`);
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
// Import interface types for values (we don't need to import the values themselves in .d.ts)
|
|
122
|
+
if (values) {
|
|
123
|
+
values.forEach(value => {
|
|
124
|
+
// Only import the interface type, not the value itself
|
|
125
|
+
if (value.interfaceName) {
|
|
126
|
+
// Find interface location by checking imports in the value file
|
|
127
|
+
const interfacePath = this.findInterfaceLocationForValue(value, outputDir);
|
|
128
|
+
if (interfacePath) {
|
|
129
|
+
imports.push(`import type { ${value.interfaceName} } from '${interfacePath}';`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}
|
|
92
134
|
return imports.join('\n');
|
|
93
135
|
}
|
|
136
|
+
static findInterfaceLocationForValue(value, outputDir) {
|
|
137
|
+
try {
|
|
138
|
+
// Read the value file to find where the interface is imported from
|
|
139
|
+
const fileContent = (0, fs_1.readFileSync)(value.filePath, 'utf-8');
|
|
140
|
+
// Match: import { InterfaceName } from './path';
|
|
141
|
+
// or: import type { InterfaceName } from './path';
|
|
142
|
+
const importRegex = new RegExp(`import\\s+(?:type\\s+)?\\{[^}]*\\b${value.interfaceName}\\b[^}]*\\}\\s+from\\s+['"]([^'"]+)['"]`, 'g');
|
|
143
|
+
const match = importRegex.exec(fileContent);
|
|
144
|
+
if (match && match[1]) {
|
|
145
|
+
// Found the import path relative to the value file
|
|
146
|
+
const valueDir = (0, path_1.dirname)(value.filePath);
|
|
147
|
+
const interfacePathFromValue = match[1];
|
|
148
|
+
// Resolve the absolute path of the interface file
|
|
149
|
+
const absoluteInterfacePath = (0, path_1.join)(valueDir, interfacePathFromValue);
|
|
150
|
+
const normalizedInterfacePath = absoluteInterfacePath.endsWith('.ts')
|
|
151
|
+
? absoluteInterfacePath
|
|
152
|
+
: absoluteInterfacePath + '.ts';
|
|
153
|
+
// Check if the file exists
|
|
154
|
+
if ((0, fs_1.existsSync)(normalizedInterfacePath)) {
|
|
155
|
+
// Convert to relative path from output directory
|
|
156
|
+
let relativePath = (0, path_1.relative)(outputDir, normalizedInterfacePath);
|
|
157
|
+
relativePath = relativePath.replace(/\.ts$/, '');
|
|
158
|
+
if (!relativePath.startsWith('.')) {
|
|
159
|
+
relativePath = `./${relativePath}`;
|
|
160
|
+
}
|
|
161
|
+
return relativePath.replace(/\\/g, '/');
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// Fallback: assume interface is in a file named I{InterfaceName}.ts in the same directory
|
|
165
|
+
const valueDir = (0, path_1.dirname)(value.filePath);
|
|
166
|
+
const interfaceFileName = value.interfaceName + '.ts';
|
|
167
|
+
const interfacePath = (0, path_1.join)(valueDir, interfaceFileName);
|
|
168
|
+
if ((0, fs_1.existsSync)(interfacePath)) {
|
|
169
|
+
let relativePath = (0, path_1.relative)(outputDir, interfacePath);
|
|
170
|
+
relativePath = relativePath.replace(/\.ts$/, '');
|
|
171
|
+
if (!relativePath.startsWith('.')) {
|
|
172
|
+
relativePath = `./${relativePath}`;
|
|
173
|
+
}
|
|
174
|
+
return relativePath.replace(/\\/g, '/');
|
|
175
|
+
}
|
|
176
|
+
return null;
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
94
182
|
static findInterfaceLocations(classes, outputDir) {
|
|
95
183
|
const interfaceLocations = new Map();
|
|
96
184
|
const interfaceNames = new Set(classes.filter(c => c.interfaceName).map(c => c.interfaceName));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-declaration-generator.js","sourceRoot":"","sources":["../../src/generator/type-declaration-generator.ts"],"names":[],"mappings":";;;AACA,+
|
|
1
|
+
{"version":3,"file":"type-declaration-generator.js","sourceRoot":"","sources":["../../src/generator/type-declaration-generator.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -19,6 +19,30 @@ export interface ClassInfo {
|
|
|
19
19
|
importPath: string;
|
|
20
20
|
scope: InjectionScope;
|
|
21
21
|
}
|
|
22
|
+
export interface FactoryInfo {
|
|
23
|
+
name: string;
|
|
24
|
+
filePath: string;
|
|
25
|
+
dependencies: DependencyInfo[];
|
|
26
|
+
parameters: ConstructorParameter[];
|
|
27
|
+
returnType?: string;
|
|
28
|
+
importPath: string;
|
|
29
|
+
scope: InjectionScope;
|
|
30
|
+
token?: string;
|
|
31
|
+
useContextObject?: boolean;
|
|
32
|
+
contextObjectName?: string;
|
|
33
|
+
contextObjectProperties?: {
|
|
34
|
+
name: string;
|
|
35
|
+
type: string;
|
|
36
|
+
}[];
|
|
37
|
+
}
|
|
38
|
+
export interface ValueInfo {
|
|
39
|
+
name: string;
|
|
40
|
+
filePath: string;
|
|
41
|
+
interfaceName?: string;
|
|
42
|
+
importPath: string;
|
|
43
|
+
scope: InjectionScope;
|
|
44
|
+
token?: string;
|
|
45
|
+
}
|
|
22
46
|
export interface AnalyzerOptions {
|
|
23
47
|
sourceDir: string;
|
|
24
48
|
interfacePattern?: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,WAAW,CAAC;AAEvD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;CACrD;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC/B"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,WAAW,CAAC;AAEvD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;CACrD;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC5D;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC/B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@notjustcoders/ioc-arise",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.18",
|
|
4
4
|
"description": "Arise type-safe IoC containers from your code. Zero overhead, zero coupling.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"commander": "^11.1.0",
|
|
47
47
|
"glob": "^10.3.10",
|
|
48
48
|
"minimatch": "^10.0.1",
|
|
49
|
-
"@notjustcoders/di-container": "1.0.
|
|
49
|
+
"@notjustcoders/di-container": "1.0.6"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@types/minimatch": "^5.1.2",
|
|
@@ -64,14 +64,15 @@
|
|
|
64
64
|
"test:run": "vitest run",
|
|
65
65
|
"test:coverage": "vitest run --coverage",
|
|
66
66
|
"test:watch": "vitest --watch",
|
|
67
|
-
"test1:generate": "npm run build && node dist/index.js generate --source examples/
|
|
68
|
-
"test2:generate": "npm run build && node dist/index.js generate --source examples/circular-deps-
|
|
69
|
-
"test3:generate": "npm run build && node dist/index.js generate --source examples/
|
|
70
|
-
"test4:generate": "npm run build && node dist/index.js generate --source examples/
|
|
71
|
-
"test5:generate": "npm run build && node dist/index.js generate --source examples/
|
|
72
|
-
"test6:generate": "npm run build && node dist/index.js generate --source examples/
|
|
73
|
-
"test7:generate": "npm run build && node dist/index.js generate --source examples/
|
|
74
|
-
"test8:generate": "npm run build && node dist/index.js generate --source examples/
|
|
75
|
-
"test9:generate": "npm run build && node dist/index.js generate --source examples/
|
|
67
|
+
"test1:generate": "npm run build && node dist/index.js generate --source examples/circular-deps-modules",
|
|
68
|
+
"test2:generate": "npm run build && node dist/index.js generate --source examples/circular-deps-classes",
|
|
69
|
+
"test3:generate": "npm run build && node dist/index.js generate --source examples/minimal-todo",
|
|
70
|
+
"test4:generate": "npm run build && node dist/index.js generate --source examples/simple-modules",
|
|
71
|
+
"test5:generate": "npm run build && node dist/index.js generate --source examples/use-cases-example",
|
|
72
|
+
"test6:generate": "npm run build && node dist/index.js generate --source examples/duplicate-interfaces-example",
|
|
73
|
+
"test7:generate": "npm run build && node dist/index.js generate --source examples/name-collision-example",
|
|
74
|
+
"test8:generate": "npm run build && node dist/index.js generate --source examples/abstract-classes-example",
|
|
75
|
+
"test9:generate": "npm run build && node dist/index.js generate --source examples/factory-functions-example",
|
|
76
|
+
"test10:generate": "npm run build && node dist/index.js generate --source examples/use-value-example"
|
|
76
77
|
}
|
|
77
78
|
}
|