@notjustcoders/ioc-arise 1.0.0
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/LICENSE +21 -0
- package/README.md +266 -0
- package/dist/__tests__/analyser/ast-parser.test.d.ts +2 -0
- package/dist/__tests__/analyser/ast-parser.test.d.ts.map +1 -0
- package/dist/__tests__/analyser/ast-parser.test.js +268 -0
- package/dist/__tests__/analyser/ast-parser.test.js.map +1 -0
- package/dist/__tests__/analyser/class-analyzer.test.d.ts +2 -0
- package/dist/__tests__/analyser/class-analyzer.test.d.ts.map +1 -0
- package/dist/__tests__/analyser/class-analyzer.test.js +259 -0
- package/dist/__tests__/analyser/class-analyzer.test.js.map +1 -0
- package/dist/__tests__/analyser/dependency-resolver.test.d.ts +2 -0
- package/dist/__tests__/analyser/dependency-resolver.test.d.ts.map +1 -0
- package/dist/__tests__/analyser/dependency-resolver.test.js +128 -0
- package/dist/__tests__/analyser/dependency-resolver.test.js.map +1 -0
- package/dist/__tests__/analyser/fixtures/ast-parser-fixtures.d.ts +26 -0
- package/dist/__tests__/analyser/fixtures/ast-parser-fixtures.d.ts.map +1 -0
- package/dist/__tests__/analyser/fixtures/ast-parser-fixtures.js +178 -0
- package/dist/__tests__/analyser/fixtures/ast-parser-fixtures.js.map +1 -0
- package/dist/__tests__/analyser/fixtures/class-analyzer-fixtures.d.ts +54 -0
- package/dist/__tests__/analyser/fixtures/class-analyzer-fixtures.d.ts.map +1 -0
- package/dist/__tests__/analyser/fixtures/class-analyzer-fixtures.js +285 -0
- package/dist/__tests__/analyser/fixtures/class-analyzer-fixtures.js.map +1 -0
- package/dist/__tests__/analyser/fixtures/dependency-resolver-fixtures.d.ts +13 -0
- package/dist/__tests__/analyser/fixtures/dependency-resolver-fixtures.d.ts.map +1 -0
- package/dist/__tests__/analyser/fixtures/dependency-resolver-fixtures.js +266 -0
- package/dist/__tests__/analyser/fixtures/dependency-resolver-fixtures.js.map +1 -0
- package/dist/__tests__/generator/container-generator.test.d.ts +2 -0
- package/dist/__tests__/generator/container-generator.test.d.ts.map +1 -0
- package/dist/__tests__/generator/container-generator.test.js +185 -0
- package/dist/__tests__/generator/container-generator.test.js.map +1 -0
- package/dist/__tests__/generator/dependency-resolver.test.d.ts +2 -0
- package/dist/__tests__/generator/dependency-resolver.test.d.ts.map +1 -0
- package/dist/__tests__/generator/dependency-resolver.test.js +330 -0
- package/dist/__tests__/generator/dependency-resolver.test.js.map +1 -0
- package/dist/__tests__/generator/fixtures/dependency-resolver.fixtures.d.ts +23 -0
- package/dist/__tests__/generator/fixtures/dependency-resolver.fixtures.d.ts.map +1 -0
- package/dist/__tests__/generator/fixtures/dependency-resolver.fixtures.js +254 -0
- package/dist/__tests__/generator/fixtures/dependency-resolver.fixtures.js.map +1 -0
- package/dist/__tests__/generator/fixtures/import-generator.fixtures.d.ts +10 -0
- package/dist/__tests__/generator/fixtures/import-generator.fixtures.d.ts.map +1 -0
- package/dist/__tests__/generator/fixtures/import-generator.fixtures.js +194 -0
- package/dist/__tests__/generator/fixtures/import-generator.fixtures.js.map +1 -0
- package/dist/__tests__/generator/import-generator.test.d.ts +2 -0
- package/dist/__tests__/generator/import-generator.test.d.ts.map +1 -0
- package/dist/__tests__/generator/import-generator.test.js +121 -0
- package/dist/__tests__/generator/import-generator.test.js.map +1 -0
- package/dist/__tests__/generator/instantiation-generator.test.d.ts +2 -0
- package/dist/__tests__/generator/instantiation-generator.test.d.ts.map +1 -0
- package/dist/__tests__/generator/instantiation-generator.test.js +251 -0
- package/dist/__tests__/generator/instantiation-generator.test.js.map +1 -0
- package/dist/analyser/ast-parser.d.ts +12 -0
- package/dist/analyser/ast-parser.d.ts.map +1 -0
- package/dist/analyser/ast-parser.js +192 -0
- package/dist/analyser/ast-parser.js.map +1 -0
- package/dist/analyser/class-analyzer.d.ts +11 -0
- package/dist/analyser/class-analyzer.d.ts.map +1 -0
- package/dist/analyser/class-analyzer.js +78 -0
- package/dist/analyser/class-analyzer.js.map +1 -0
- package/dist/analyser/dependency-resolver.d.ts +10 -0
- package/dist/analyser/dependency-resolver.d.ts.map +1 -0
- package/dist/analyser/dependency-resolver.js +46 -0
- package/dist/analyser/dependency-resolver.js.map +1 -0
- package/dist/analyser/file-discovery.d.ts +7 -0
- package/dist/analyser/file-discovery.d.ts.map +1 -0
- package/dist/analyser/file-discovery.js +30 -0
- package/dist/analyser/file-discovery.js.map +1 -0
- package/dist/analyser/index.d.ts +3 -0
- package/dist/analyser/index.d.ts.map +1 -0
- package/dist/analyser/index.js +14 -0
- package/dist/analyser/index.js.map +1 -0
- package/dist/analyser/module-dependency-resolver.d.ts +17 -0
- package/dist/analyser/module-dependency-resolver.d.ts.map +1 -0
- package/dist/analyser/module-dependency-resolver.js +66 -0
- package/dist/analyser/module-dependency-resolver.js.map +1 -0
- package/dist/analyser/project-analyzer.d.ts +8 -0
- package/dist/analyser/project-analyzer.d.ts.map +1 -0
- package/dist/analyser/project-analyzer.js +20 -0
- package/dist/analyser/project-analyzer.js.map +1 -0
- package/dist/commands/analyze.d.ts +3 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +66 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/generate.d.ts +3 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +150 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/container.d.ts +5 -0
- package/dist/container.d.ts.map +1 -0
- package/dist/container.js +8 -0
- package/dist/container.js.map +1 -0
- package/dist/generator/container-file-generator.d.ts +20 -0
- package/dist/generator/container-file-generator.d.ts.map +1 -0
- package/dist/generator/container-file-generator.js +255 -0
- package/dist/generator/container-file-generator.js.map +1 -0
- package/dist/generator/container-generator.d.ts +8 -0
- package/dist/generator/container-generator.d.ts.map +1 -0
- package/dist/generator/container-generator.js +35 -0
- package/dist/generator/container-generator.js.map +1 -0
- package/dist/generator/dependency-resolver.d.ts +11 -0
- package/dist/generator/dependency-resolver.d.ts.map +1 -0
- package/dist/generator/dependency-resolver.js +83 -0
- package/dist/generator/dependency-resolver.js.map +1 -0
- package/dist/generator/file-writer.d.ts +6 -0
- package/dist/generator/file-writer.d.ts.map +1 -0
- package/dist/generator/file-writer.js +19 -0
- package/dist/generator/file-writer.js.map +1 -0
- package/dist/generator/import-generator.d.ts +7 -0
- package/dist/generator/import-generator.d.ts.map +1 -0
- package/dist/generator/import-generator.js +31 -0
- package/dist/generator/import-generator.js.map +1 -0
- package/dist/generator/index.d.ts +4 -0
- package/dist/generator/index.d.ts.map +1 -0
- package/dist/generator/index.js +25 -0
- package/dist/generator/index.js.map +1 -0
- package/dist/generator/instantiation-generator.d.ts +8 -0
- package/dist/generator/instantiation-generator.d.ts.map +1 -0
- package/dist/generator/instantiation-generator.js +153 -0
- package/dist/generator/instantiation-generator.js.map +1 -0
- package/dist/generator/module-container-generator.d.ts +10 -0
- package/dist/generator/module-container-generator.d.ts.map +1 -0
- package/dist/generator/module-container-generator.js +51 -0
- package/dist/generator/module-container-generator.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +30 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/configManager.d.ts +21 -0
- package/dist/utils/configManager.d.ts.map +1 -0
- package/dist/utils/configManager.js +50 -0
- package/dist/utils/configManager.js.map +1 -0
- package/dist/utils/moduleResolver.d.ts +38 -0
- package/dist/utils/moduleResolver.d.ts.map +1 -0
- package/dist/utils/moduleResolver.js +108 -0
- package/dist/utils/moduleResolver.js.map +1 -0
- package/dist/utils/naming.d.ts +7 -0
- package/dist/utils/naming.d.ts.map +1 -0
- package/dist/utils/naming.js +12 -0
- package/dist/utils/naming.js.map +1 -0
- package/dist/utils/topological-sorter.d.ts +17 -0
- package/dist/utils/topological-sorter.d.ts.map +1 -0
- package/dist/utils/topological-sorter.js +69 -0
- package/dist/utils/topological-sorter.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { ClassInfo, ConstructorParameter, InjectionScope } from '../../../types';
|
|
2
|
+
export declare const testFileContents: {
|
|
3
|
+
basicClassWithInterface: string;
|
|
4
|
+
classWithJSDocScope: string;
|
|
5
|
+
classWithTypeAliases: string;
|
|
6
|
+
classWithOptionalParams: string;
|
|
7
|
+
multipleClasses: string;
|
|
8
|
+
classWithoutInterface: string;
|
|
9
|
+
emptyFile: string;
|
|
10
|
+
invalidSyntax: string;
|
|
11
|
+
complexConstructorParams: string;
|
|
12
|
+
nonMatchingInterface: string;
|
|
13
|
+
};
|
|
14
|
+
export declare const importPathTestCases: {
|
|
15
|
+
filePath: string;
|
|
16
|
+
expected: string;
|
|
17
|
+
}[];
|
|
18
|
+
export declare const generateImportPathTestCases: {
|
|
19
|
+
sourceDir: string;
|
|
20
|
+
filePath: string;
|
|
21
|
+
expected: string;
|
|
22
|
+
}[];
|
|
23
|
+
export declare const dependencyResolutionTestParams: {
|
|
24
|
+
name: string;
|
|
25
|
+
type: string;
|
|
26
|
+
isOptional: boolean;
|
|
27
|
+
}[];
|
|
28
|
+
export declare const typeAliasesForDependencyTest: Map<string, string>;
|
|
29
|
+
export declare const constructorParamsWithAliases: {
|
|
30
|
+
name: string;
|
|
31
|
+
type: string;
|
|
32
|
+
isOptional: boolean;
|
|
33
|
+
}[];
|
|
34
|
+
export declare const mockClassInfos: ClassInfo[];
|
|
35
|
+
export declare const mockConstructorParams: ConstructorParameter[];
|
|
36
|
+
export declare const mockTypeAliases: Map<string, string>;
|
|
37
|
+
export declare const expectedResults: {
|
|
38
|
+
basicClass: {
|
|
39
|
+
name: string;
|
|
40
|
+
interfaceName: string;
|
|
41
|
+
dependencies: string[];
|
|
42
|
+
importPath: string;
|
|
43
|
+
};
|
|
44
|
+
classWithScope: {
|
|
45
|
+
name: string;
|
|
46
|
+
interfaceName: string;
|
|
47
|
+
scope: InjectionScope;
|
|
48
|
+
};
|
|
49
|
+
multipleClasses: {
|
|
50
|
+
name: string;
|
|
51
|
+
interfaceName: string;
|
|
52
|
+
}[];
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=class-analyzer-fixtures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"class-analyzer-fixtures.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/analyser/fixtures/class-analyzer-fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGjF,eAAO,MAAM,gBAAgB;;;;;;;;;;;CAkJ5B,CAAC;AAGF,eAAO,MAAM,mBAAmB;;;GAa/B,CAAC;AAGF,eAAO,MAAM,2BAA2B;;;;GAgBvC,CAAC;AAGF,eAAO,MAAM,8BAA8B;;;;GAK1C,CAAC;AAGF,eAAO,MAAM,4BAA4B,qBAGvC,CAAC;AAGH,eAAO,MAAM,4BAA4B;;;;GAGxC,CAAC;AAGF,eAAO,MAAM,cAAc,EAAE,SAAS,EAuCrC,CAAC;AAGF,eAAO,MAAM,qBAAqB,EAAE,oBAAoB,EAmBvD,CAAC;AAGF,eAAO,MAAM,eAAe,qBAI1B,CAAC;AAGH,eAAO,MAAM,eAAe;;;;;;;;;;eAUF,cAAc;;;;;;CAYvC,CAAC"}
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.expectedResults = exports.mockTypeAliases = exports.mockConstructorParams = exports.mockClassInfos = exports.constructorParamsWithAliases = exports.typeAliasesForDependencyTest = exports.dependencyResolutionTestParams = exports.generateImportPathTestCases = exports.importPathTestCases = exports.testFileContents = void 0;
|
|
4
|
+
// Test file contents for different scenarios
|
|
5
|
+
exports.testFileContents = {
|
|
6
|
+
// Basic class implementing an interface
|
|
7
|
+
basicClassWithInterface: `
|
|
8
|
+
import { IUserService } from './interfaces/IUserService';
|
|
9
|
+
import { IUserRepository } from './interfaces/IUserRepository';
|
|
10
|
+
import { ILogger } from './interfaces/ILogger';
|
|
11
|
+
|
|
12
|
+
export class UserService implements IUserService {
|
|
13
|
+
constructor(
|
|
14
|
+
private userRepository: IUserRepository,
|
|
15
|
+
private logger: ILogger
|
|
16
|
+
) {}
|
|
17
|
+
|
|
18
|
+
async getUser(id: string): Promise<User> {
|
|
19
|
+
this.logger.log('Getting user');
|
|
20
|
+
return this.userRepository.findById(id);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
`,
|
|
24
|
+
// Class with JSDoc scope annotation
|
|
25
|
+
classWithJSDocScope: `
|
|
26
|
+
import { IEmailService } from './interfaces/IEmailService';
|
|
27
|
+
import { ITemplateEngine } from './interfaces/ITemplateEngine';
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* @scope singleton
|
|
31
|
+
*/
|
|
32
|
+
export class EmailService implements IEmailService {
|
|
33
|
+
constructor(
|
|
34
|
+
private templateEngine: ITemplateEngine
|
|
35
|
+
) {}
|
|
36
|
+
|
|
37
|
+
async sendEmail(to: string, template: string): Promise<void> {
|
|
38
|
+
const content = this.templateEngine.render(template);
|
|
39
|
+
// Send email logic
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
`,
|
|
43
|
+
// Class with type aliases
|
|
44
|
+
classWithTypeAliases: `
|
|
45
|
+
import { IPaymentService } from './interfaces/IPaymentService';
|
|
46
|
+
import { INotificationService as NotificationSvc } from './interfaces/INotificationService';
|
|
47
|
+
import { ILogger as Log } from './interfaces/ILogger';
|
|
48
|
+
|
|
49
|
+
export class PaymentService implements IPaymentService {
|
|
50
|
+
constructor(
|
|
51
|
+
private notificationService: NotificationSvc,
|
|
52
|
+
private logger: Log
|
|
53
|
+
) {}
|
|
54
|
+
|
|
55
|
+
async processPayment(amount: number): Promise<void> {
|
|
56
|
+
this.logger.log('Processing payment');
|
|
57
|
+
await this.notificationService.notify('Payment processed');
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
`,
|
|
61
|
+
// Class with optional parameters
|
|
62
|
+
classWithOptionalParams: `
|
|
63
|
+
import { IOrderService } from './interfaces/IOrderService';
|
|
64
|
+
import { IInventoryService } from './interfaces/IInventoryService';
|
|
65
|
+
import { ILogger } from './interfaces/ILogger';
|
|
66
|
+
|
|
67
|
+
export class OrderService implements IOrderService {
|
|
68
|
+
constructor(
|
|
69
|
+
private inventoryService: IInventoryService,
|
|
70
|
+
private logger?: ILogger
|
|
71
|
+
) {}
|
|
72
|
+
|
|
73
|
+
async createOrder(items: string[]): Promise<void> {
|
|
74
|
+
this.logger?.log('Creating order');
|
|
75
|
+
await this.inventoryService.checkAvailability(items);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
`,
|
|
79
|
+
// Multiple classes in one file
|
|
80
|
+
multipleClasses: `
|
|
81
|
+
import { IUserService } from './interfaces/IUserService';
|
|
82
|
+
import { IAdminService } from './interfaces/IAdminService';
|
|
83
|
+
import { ILogger } from './interfaces/ILogger';
|
|
84
|
+
import { IDatabase } from './interfaces/IDatabase';
|
|
85
|
+
|
|
86
|
+
export class UserService implements IUserService {
|
|
87
|
+
constructor(private logger: ILogger) {}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export class AdminService implements IAdminService {
|
|
91
|
+
constructor(
|
|
92
|
+
private database: IDatabase,
|
|
93
|
+
private logger: ILogger
|
|
94
|
+
) {}
|
|
95
|
+
}
|
|
96
|
+
`,
|
|
97
|
+
// Class without interface (should be ignored)
|
|
98
|
+
classWithoutInterface: `
|
|
99
|
+
export class UtilityClass {
|
|
100
|
+
constructor(private config: any) {}
|
|
101
|
+
|
|
102
|
+
doSomething(): void {
|
|
103
|
+
// Implementation
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
`,
|
|
107
|
+
// Empty file
|
|
108
|
+
emptyFile: '',
|
|
109
|
+
// File with syntax errors
|
|
110
|
+
invalidSyntax: `
|
|
111
|
+
import { IService } from './interfaces/IService';
|
|
112
|
+
|
|
113
|
+
export class BrokenService implements IService {
|
|
114
|
+
constructor(
|
|
115
|
+
private dependency: IDependency
|
|
116
|
+
) {
|
|
117
|
+
// Missing closing brace
|
|
118
|
+
`,
|
|
119
|
+
// Class with complex constructor parameters
|
|
120
|
+
complexConstructorParams: `
|
|
121
|
+
import { IComplexService } from './interfaces/IComplexService';
|
|
122
|
+
import { ILogger } from './interfaces/ILogger';
|
|
123
|
+
import { IConfig } from './interfaces/IConfig';
|
|
124
|
+
|
|
125
|
+
export class ComplexService implements IComplexService {
|
|
126
|
+
constructor(
|
|
127
|
+
private readonly logger: ILogger,
|
|
128
|
+
protected config: IConfig,
|
|
129
|
+
public readonly name: string,
|
|
130
|
+
private optional?: ILogger
|
|
131
|
+
) {}
|
|
132
|
+
}
|
|
133
|
+
`,
|
|
134
|
+
// Class with interface pattern that should be filtered
|
|
135
|
+
nonMatchingInterface: `
|
|
136
|
+
import { IInternalService } from './interfaces/IInternalService';
|
|
137
|
+
|
|
138
|
+
export class InternalService implements IInternalService {
|
|
139
|
+
constructor() {}
|
|
140
|
+
}
|
|
141
|
+
`
|
|
142
|
+
};
|
|
143
|
+
// Test cases for import path generation
|
|
144
|
+
exports.importPathTestCases = [
|
|
145
|
+
{
|
|
146
|
+
filePath: '/src/services/user.service.ts',
|
|
147
|
+
expected: './services/user.service'
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
filePath: '/src/repositories/user.repository.ts',
|
|
151
|
+
expected: './repositories/user.repository'
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
filePath: '/src/utils/logger.ts',
|
|
155
|
+
expected: './utils/logger'
|
|
156
|
+
}
|
|
157
|
+
];
|
|
158
|
+
// Test cases for generateImportPath method
|
|
159
|
+
exports.generateImportPathTestCases = [
|
|
160
|
+
{
|
|
161
|
+
sourceDir: '/project/src',
|
|
162
|
+
filePath: '/project/src/services/user.service.ts',
|
|
163
|
+
expected: './services/user.service'
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
sourceDir: '/project/src',
|
|
167
|
+
filePath: '/project/src/repositories/data/user.repository.ts',
|
|
168
|
+
expected: './repositories/data/user.repository'
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
sourceDir: '/app/source',
|
|
172
|
+
filePath: '/app/source/utils/logger.ts',
|
|
173
|
+
expected: './utils/logger'
|
|
174
|
+
}
|
|
175
|
+
];
|
|
176
|
+
// Mock constructor parameters for dependency resolution tests
|
|
177
|
+
exports.dependencyResolutionTestParams = [
|
|
178
|
+
{ name: 'userRepo', type: 'IUserRepository', isOptional: false },
|
|
179
|
+
{ name: 'logger', type: 'ILogger', isOptional: false },
|
|
180
|
+
{ name: 'config', type: 'string', isOptional: false }, // Should be filtered out
|
|
181
|
+
{ name: 'count', type: 'number', isOptional: false } // Should be filtered out
|
|
182
|
+
];
|
|
183
|
+
// Type aliases for dependency resolution tests
|
|
184
|
+
exports.typeAliasesForDependencyTest = new Map([
|
|
185
|
+
['UserRepo', 'IUserRepository'],
|
|
186
|
+
['Log', 'ILogger']
|
|
187
|
+
]);
|
|
188
|
+
// Constructor parameters with type aliases
|
|
189
|
+
exports.constructorParamsWithAliases = [
|
|
190
|
+
{ name: 'userRepo', type: 'UserRepo', isOptional: false },
|
|
191
|
+
{ name: 'logger', type: 'Log', isOptional: false }
|
|
192
|
+
];
|
|
193
|
+
// Mock ClassInfo objects for testing
|
|
194
|
+
exports.mockClassInfos = [
|
|
195
|
+
{
|
|
196
|
+
name: 'UserService',
|
|
197
|
+
filePath: '/src/services/user.service.ts',
|
|
198
|
+
dependencies: ['IUserRepository', 'ILogger'],
|
|
199
|
+
constructorParams: [
|
|
200
|
+
{
|
|
201
|
+
name: 'userRepository',
|
|
202
|
+
type: 'IUserRepository',
|
|
203
|
+
isOptional: false,
|
|
204
|
+
accessModifier: 'private'
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
name: 'logger',
|
|
208
|
+
type: 'ILogger',
|
|
209
|
+
isOptional: false,
|
|
210
|
+
accessModifier: 'private'
|
|
211
|
+
}
|
|
212
|
+
],
|
|
213
|
+
interfaceName: 'IUserService',
|
|
214
|
+
importPath: './services/user.service',
|
|
215
|
+
scope: 'transient'
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
name: 'EmailService',
|
|
219
|
+
filePath: '/src/services/email.service.ts',
|
|
220
|
+
dependencies: ['ITemplateEngine'],
|
|
221
|
+
constructorParams: [
|
|
222
|
+
{
|
|
223
|
+
name: 'templateEngine',
|
|
224
|
+
type: 'ITemplateEngine',
|
|
225
|
+
isOptional: false,
|
|
226
|
+
accessModifier: 'private'
|
|
227
|
+
}
|
|
228
|
+
],
|
|
229
|
+
interfaceName: 'IEmailService',
|
|
230
|
+
importPath: './services/email.service',
|
|
231
|
+
scope: 'singleton'
|
|
232
|
+
}
|
|
233
|
+
];
|
|
234
|
+
// Mock constructor parameters for testing
|
|
235
|
+
exports.mockConstructorParams = [
|
|
236
|
+
{
|
|
237
|
+
name: 'userRepository',
|
|
238
|
+
type: 'IUserRepository',
|
|
239
|
+
isOptional: false,
|
|
240
|
+
accessModifier: 'private'
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
name: 'logger',
|
|
244
|
+
type: 'ILogger',
|
|
245
|
+
isOptional: true,
|
|
246
|
+
accessModifier: 'private'
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
name: 'config',
|
|
250
|
+
type: 'string',
|
|
251
|
+
isOptional: false,
|
|
252
|
+
accessModifier: 'public'
|
|
253
|
+
}
|
|
254
|
+
];
|
|
255
|
+
// Mock type aliases for testing
|
|
256
|
+
exports.mockTypeAliases = new Map([
|
|
257
|
+
['NotificationSvc', 'INotificationService'],
|
|
258
|
+
['Log', 'ILogger'],
|
|
259
|
+
['DB', 'IDatabase']
|
|
260
|
+
]);
|
|
261
|
+
// Expected results for various test scenarios
|
|
262
|
+
exports.expectedResults = {
|
|
263
|
+
basicClass: {
|
|
264
|
+
name: 'UserService',
|
|
265
|
+
interfaceName: 'IUserService',
|
|
266
|
+
dependencies: ['IUserRepository', 'ILogger'],
|
|
267
|
+
importPath: './services/user.service'
|
|
268
|
+
},
|
|
269
|
+
classWithScope: {
|
|
270
|
+
name: 'EmailService',
|
|
271
|
+
interfaceName: 'IEmailService',
|
|
272
|
+
scope: 'singleton'
|
|
273
|
+
},
|
|
274
|
+
multipleClasses: [
|
|
275
|
+
{
|
|
276
|
+
name: 'UserService',
|
|
277
|
+
interfaceName: 'IUserService'
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
name: 'AdminService',
|
|
281
|
+
interfaceName: 'IAdminService'
|
|
282
|
+
}
|
|
283
|
+
]
|
|
284
|
+
};
|
|
285
|
+
//# sourceMappingURL=class-analyzer-fixtures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"class-analyzer-fixtures.js","sourceRoot":"","sources":["../../../../src/__tests__/analyser/fixtures/class-analyzer-fixtures.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ClassInfo } from '../../../types';
|
|
2
|
+
export declare const basicMockClasses: ClassInfo[];
|
|
3
|
+
export declare const simpleClasses: ClassInfo[];
|
|
4
|
+
export declare const circularClasses: ClassInfo[];
|
|
5
|
+
export declare const selfRefClasses: ClassInfo[];
|
|
6
|
+
export declare const classesWithExternal: ClassInfo[];
|
|
7
|
+
export declare const simpleBinaryCircular: ClassInfo[];
|
|
8
|
+
export declare const multiCircularClasses: ClassInfo[];
|
|
9
|
+
export declare const externalDependencyClasses: ClassInfo[];
|
|
10
|
+
export declare const standaloneClasses: ClassInfo[];
|
|
11
|
+
export declare const diamondClasses: ClassInfo[];
|
|
12
|
+
export declare const optionalDepClasses: ClassInfo[];
|
|
13
|
+
//# sourceMappingURL=dependency-resolver-fixtures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-resolver-fixtures.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/analyser/fixtures/dependency-resolver-fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,eAAO,MAAM,gBAAgB,EAAE,SAAS,EA0CvC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,SAAS,EASpC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,SAAS,EA+BtC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SAAS,EAWrC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,SAAS,EAoB1C,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,SAAS,EAiB3C,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,SAAS,EAmC3C,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,SAAS,EAiBhD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,SAAS,EASxC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SAAS,EAwCrC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,SAAS,EAoBzC,CAAC"}
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.optionalDepClasses = exports.diamondClasses = exports.standaloneClasses = exports.externalDependencyClasses = exports.multiCircularClasses = exports.simpleBinaryCircular = exports.classesWithExternal = exports.selfRefClasses = exports.circularClasses = exports.simpleClasses = exports.basicMockClasses = void 0;
|
|
4
|
+
exports.basicMockClasses = [
|
|
5
|
+
{
|
|
6
|
+
name: 'UserService',
|
|
7
|
+
dependencies: ['UserRepository', 'Logger'],
|
|
8
|
+
constructorParams: [
|
|
9
|
+
{ name: 'userRepo', type: 'UserRepository', isOptional: false },
|
|
10
|
+
{ name: 'logger', type: 'Logger', isOptional: false }
|
|
11
|
+
],
|
|
12
|
+
scope: 'singleton',
|
|
13
|
+
interfaceName: 'IUserService',
|
|
14
|
+
importPath: './user-service',
|
|
15
|
+
filePath: '/test/user-service.ts'
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'UserRepository',
|
|
19
|
+
dependencies: ['DatabaseConnection'],
|
|
20
|
+
constructorParams: [
|
|
21
|
+
{ name: 'db', type: 'DatabaseConnection', isOptional: false }
|
|
22
|
+
],
|
|
23
|
+
scope: 'singleton',
|
|
24
|
+
interfaceName: 'IUserRepository',
|
|
25
|
+
importPath: './user-repository',
|
|
26
|
+
filePath: '/test/user-repository.ts'
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: 'DatabaseConnection',
|
|
30
|
+
dependencies: [],
|
|
31
|
+
constructorParams: [],
|
|
32
|
+
scope: 'singleton',
|
|
33
|
+
interfaceName: 'IDatabaseConnection',
|
|
34
|
+
importPath: './database-connection',
|
|
35
|
+
filePath: '/test/database-connection.ts'
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Logger',
|
|
39
|
+
dependencies: [],
|
|
40
|
+
constructorParams: [],
|
|
41
|
+
scope: 'singleton',
|
|
42
|
+
interfaceName: 'ILogger',
|
|
43
|
+
importPath: './logger',
|
|
44
|
+
filePath: '/test/logger.ts'
|
|
45
|
+
}
|
|
46
|
+
];
|
|
47
|
+
exports.simpleClasses = [
|
|
48
|
+
{
|
|
49
|
+
name: 'SimpleClass',
|
|
50
|
+
dependencies: [],
|
|
51
|
+
constructorParams: [],
|
|
52
|
+
scope: 'singleton',
|
|
53
|
+
importPath: './simple',
|
|
54
|
+
filePath: '/test/simple.ts'
|
|
55
|
+
}
|
|
56
|
+
];
|
|
57
|
+
exports.circularClasses = [
|
|
58
|
+
{
|
|
59
|
+
name: 'ClassA',
|
|
60
|
+
dependencies: ['ClassB'],
|
|
61
|
+
constructorParams: [
|
|
62
|
+
{ name: 'classB', type: 'ClassB', isOptional: false }
|
|
63
|
+
],
|
|
64
|
+
scope: 'singleton',
|
|
65
|
+
importPath: './class-a',
|
|
66
|
+
filePath: '/test/class-a.ts'
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: 'ClassB',
|
|
70
|
+
dependencies: ['ClassC'],
|
|
71
|
+
constructorParams: [
|
|
72
|
+
{ name: 'classC', type: 'ClassC', isOptional: false }
|
|
73
|
+
],
|
|
74
|
+
scope: 'singleton',
|
|
75
|
+
importPath: './class-b',
|
|
76
|
+
filePath: '/test/class-b.ts'
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: 'ClassC',
|
|
80
|
+
dependencies: ['ClassA'],
|
|
81
|
+
constructorParams: [
|
|
82
|
+
{ name: 'classA', type: 'ClassA', isOptional: false }
|
|
83
|
+
],
|
|
84
|
+
scope: 'singleton',
|
|
85
|
+
importPath: './class-c',
|
|
86
|
+
filePath: '/test/class-c.ts'
|
|
87
|
+
}
|
|
88
|
+
];
|
|
89
|
+
exports.selfRefClasses = [
|
|
90
|
+
{
|
|
91
|
+
name: 'SelfRef',
|
|
92
|
+
dependencies: ['SelfRef'],
|
|
93
|
+
constructorParams: [
|
|
94
|
+
{ name: 'self', type: 'SelfRef', isOptional: false }
|
|
95
|
+
],
|
|
96
|
+
scope: 'singleton',
|
|
97
|
+
importPath: './self-ref',
|
|
98
|
+
filePath: '/test/self-ref.ts'
|
|
99
|
+
}
|
|
100
|
+
];
|
|
101
|
+
exports.classesWithExternal = [
|
|
102
|
+
{
|
|
103
|
+
name: 'ServiceWithExternal',
|
|
104
|
+
dependencies: ['ManagedDep', 'ExternalLibrary'],
|
|
105
|
+
constructorParams: [
|
|
106
|
+
{ name: 'managed', type: 'ManagedDep', isOptional: false },
|
|
107
|
+
{ name: 'external', type: 'ExternalLibrary', isOptional: false }
|
|
108
|
+
],
|
|
109
|
+
scope: 'singleton',
|
|
110
|
+
importPath: './service',
|
|
111
|
+
filePath: '/test/service.ts'
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
name: 'ManagedDep',
|
|
115
|
+
dependencies: [],
|
|
116
|
+
constructorParams: [],
|
|
117
|
+
scope: 'singleton',
|
|
118
|
+
importPath: './managed',
|
|
119
|
+
filePath: '/test/managed.ts'
|
|
120
|
+
}
|
|
121
|
+
];
|
|
122
|
+
exports.simpleBinaryCircular = [
|
|
123
|
+
{
|
|
124
|
+
name: 'A',
|
|
125
|
+
dependencies: ['B'],
|
|
126
|
+
constructorParams: [{ name: 'b', type: 'B', isOptional: false }],
|
|
127
|
+
scope: 'singleton',
|
|
128
|
+
importPath: './a',
|
|
129
|
+
filePath: '/test/a.ts'
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
name: 'B',
|
|
133
|
+
dependencies: ['A'],
|
|
134
|
+
constructorParams: [{ name: 'a', type: 'A', isOptional: false }],
|
|
135
|
+
scope: 'singleton',
|
|
136
|
+
importPath: './b',
|
|
137
|
+
filePath: '/test/b.ts'
|
|
138
|
+
}
|
|
139
|
+
];
|
|
140
|
+
exports.multiCircularClasses = [
|
|
141
|
+
// First cycle: A -> B -> A
|
|
142
|
+
{
|
|
143
|
+
name: 'A',
|
|
144
|
+
dependencies: ['B'],
|
|
145
|
+
constructorParams: [{ name: 'b', type: 'B', isOptional: false }],
|
|
146
|
+
scope: 'singleton',
|
|
147
|
+
importPath: './a',
|
|
148
|
+
filePath: '/test/a.ts'
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
name: 'B',
|
|
152
|
+
dependencies: ['A'],
|
|
153
|
+
constructorParams: [{ name: 'a', type: 'A', isOptional: false }],
|
|
154
|
+
scope: 'singleton',
|
|
155
|
+
importPath: './b',
|
|
156
|
+
filePath: '/test/b.ts'
|
|
157
|
+
},
|
|
158
|
+
// Second cycle: C -> D -> C
|
|
159
|
+
{
|
|
160
|
+
name: 'C',
|
|
161
|
+
dependencies: ['D'],
|
|
162
|
+
constructorParams: [{ name: 'd', type: 'D', isOptional: false }],
|
|
163
|
+
scope: 'singleton',
|
|
164
|
+
importPath: './c',
|
|
165
|
+
filePath: '/test/c.ts'
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
name: 'D',
|
|
169
|
+
dependencies: ['C'],
|
|
170
|
+
constructorParams: [{ name: 'c', type: 'C', isOptional: false }],
|
|
171
|
+
scope: 'singleton',
|
|
172
|
+
importPath: './d',
|
|
173
|
+
filePath: '/test/d.ts'
|
|
174
|
+
}
|
|
175
|
+
];
|
|
176
|
+
exports.externalDependencyClasses = [
|
|
177
|
+
{
|
|
178
|
+
name: 'TestClass',
|
|
179
|
+
dependencies: ['ManagedClass', 'ExternalLibrary', 'AnotherExternal'],
|
|
180
|
+
constructorParams: [],
|
|
181
|
+
scope: 'singleton',
|
|
182
|
+
importPath: '/test/test.ts',
|
|
183
|
+
filePath: '/test/test.ts'
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
name: 'ManagedClass',
|
|
187
|
+
dependencies: [],
|
|
188
|
+
constructorParams: [],
|
|
189
|
+
scope: 'singleton',
|
|
190
|
+
importPath: '/test/managed.ts',
|
|
191
|
+
filePath: '/test/managed.ts'
|
|
192
|
+
}
|
|
193
|
+
];
|
|
194
|
+
exports.standaloneClasses = [
|
|
195
|
+
{
|
|
196
|
+
name: 'Standalone',
|
|
197
|
+
dependencies: [],
|
|
198
|
+
constructorParams: [],
|
|
199
|
+
scope: 'singleton',
|
|
200
|
+
importPath: '/test/standalone.ts',
|
|
201
|
+
filePath: '/test/standalone.ts'
|
|
202
|
+
}
|
|
203
|
+
];
|
|
204
|
+
exports.diamondClasses = [
|
|
205
|
+
{
|
|
206
|
+
name: 'Top',
|
|
207
|
+
dependencies: ['Left', 'Right'],
|
|
208
|
+
constructorParams: [
|
|
209
|
+
{ name: 'left', type: 'Left', isOptional: false },
|
|
210
|
+
{ name: 'right', type: 'Right', isOptional: false }
|
|
211
|
+
],
|
|
212
|
+
scope: 'singleton',
|
|
213
|
+
importPath: '/test/top.ts',
|
|
214
|
+
filePath: '/test/top.ts'
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
name: 'Left',
|
|
218
|
+
dependencies: ['Bottom'],
|
|
219
|
+
constructorParams: [
|
|
220
|
+
{ name: 'bottom', type: 'Bottom', isOptional: false }
|
|
221
|
+
],
|
|
222
|
+
scope: 'singleton',
|
|
223
|
+
importPath: '/test/left.ts',
|
|
224
|
+
filePath: '/test/left.ts'
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
name: 'Right',
|
|
228
|
+
dependencies: ['Bottom'],
|
|
229
|
+
constructorParams: [
|
|
230
|
+
{ name: 'bottom', type: 'Bottom', isOptional: false }
|
|
231
|
+
],
|
|
232
|
+
scope: 'singleton',
|
|
233
|
+
importPath: '/test/right.ts',
|
|
234
|
+
filePath: '/test/right.ts'
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
name: 'Bottom',
|
|
238
|
+
dependencies: [],
|
|
239
|
+
constructorParams: [],
|
|
240
|
+
scope: 'singleton',
|
|
241
|
+
importPath: '/test/bottom.ts',
|
|
242
|
+
filePath: '/test/bottom.ts'
|
|
243
|
+
}
|
|
244
|
+
];
|
|
245
|
+
exports.optionalDepClasses = [
|
|
246
|
+
{
|
|
247
|
+
name: 'ServiceWithOptional',
|
|
248
|
+
dependencies: ['RequiredDep'],
|
|
249
|
+
constructorParams: [
|
|
250
|
+
{ name: 'required', type: 'RequiredDep', isOptional: false },
|
|
251
|
+
{ name: 'optional', type: 'OptionalDep', isOptional: true }
|
|
252
|
+
],
|
|
253
|
+
scope: 'singleton',
|
|
254
|
+
importPath: '/test/service.ts',
|
|
255
|
+
filePath: '/test/service.ts'
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
name: 'RequiredDep',
|
|
259
|
+
dependencies: [],
|
|
260
|
+
constructorParams: [],
|
|
261
|
+
scope: 'singleton',
|
|
262
|
+
importPath: '/test/required.ts',
|
|
263
|
+
filePath: '/test/required.ts'
|
|
264
|
+
}
|
|
265
|
+
];
|
|
266
|
+
//# sourceMappingURL=dependency-resolver-fixtures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-resolver-fixtures.js","sourceRoot":"","sources":["../../../../src/__tests__/analyser/fixtures/dependency-resolver-fixtures.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container-generator.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/generator/container-generator.test.ts"],"names":[],"mappings":""}
|