@notjustcoders/ioc-arise 1.0.9 → 1.0.11
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 +1 -0
- package/dist/analyser/ast-parser.d.ts.map +1 -1
- package/dist/analyser/ast-parser.js +53 -0
- package/dist/analyser/ast-parser.js.map +1 -1
- package/dist/analyser/class-analyzer.d.ts.map +1 -1
- package/dist/analyser/class-analyzer.js +23 -8
- package/dist/analyser/class-analyzer.js.map +1 -1
- package/dist/analyser/dependency-resolver.js +4 -4
- package/dist/analyser/dependency-resolver.js.map +1 -1
- package/dist/analyser/module-dependency-resolver.js +1 -1
- package/dist/analyser/module-dependency-resolver.js.map +1 -1
- package/dist/commands/analyze.js +1 -1
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +2 -2
- package/dist/commands/generate.js.map +1 -1
- package/dist/container.gen.d.ts +20 -12
- package/dist/container.gen.d.ts.map +1 -1
- package/dist/container.gen.js +114 -80
- package/dist/container.gen.js.map +1 -1
- package/dist/generator/import-generator.d.ts.map +1 -1
- package/dist/generator/import-generator.js +11 -5
- package/dist/generator/import-generator.js.map +1 -1
- package/dist/generator/modular/module-dependency-resolver.js +1 -1
- package/dist/generator/modular/module-dependency-resolver.js.map +1 -1
- package/dist/generator/shared/instantiation-utils.d.ts +2 -1
- package/dist/generator/shared/instantiation-utils.d.ts.map +1 -1
- package/dist/generator/shared/instantiation-utils.js +17 -5
- package/dist/generator/shared/instantiation-utils.js.map +1 -1
- package/dist/renderer/console-analysis-renderer.js +1 -1
- package/dist/renderer/console-analysis-renderer.js.map +1 -1
- package/dist/types.d.ts +5 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/__tests__/analyser/ast-parser.test.d.ts +0 -2
- package/dist/__tests__/analyser/ast-parser.test.d.ts.map +0 -1
- package/dist/__tests__/analyser/ast-parser.test.js +0 -309
- package/dist/__tests__/analyser/ast-parser.test.js.map +0 -1
- package/dist/__tests__/analyser/class-analyzer.test.d.ts +0 -2
- package/dist/__tests__/analyser/class-analyzer.test.d.ts.map +0 -1
- package/dist/__tests__/analyser/class-analyzer.test.js +0 -323
- package/dist/__tests__/analyser/class-analyzer.test.js.map +0 -1
- package/dist/__tests__/analyser/dependency-resolver.test.d.ts +0 -2
- package/dist/__tests__/analyser/dependency-resolver.test.d.ts.map +0 -1
- package/dist/__tests__/analyser/dependency-resolver.test.js +0 -128
- package/dist/__tests__/analyser/dependency-resolver.test.js.map +0 -1
- package/dist/__tests__/analyser/fixtures/ast-parser-fixtures.d.ts +0 -28
- package/dist/__tests__/analyser/fixtures/ast-parser-fixtures.d.ts.map +0 -1
- package/dist/__tests__/analyser/fixtures/ast-parser-fixtures.js +0 -222
- package/dist/__tests__/analyser/fixtures/ast-parser-fixtures.js.map +0 -1
- package/dist/__tests__/analyser/fixtures/class-analyzer-fixtures.d.ts +0 -54
- package/dist/__tests__/analyser/fixtures/class-analyzer-fixtures.d.ts.map +0 -1
- package/dist/__tests__/analyser/fixtures/class-analyzer-fixtures.js +0 -285
- package/dist/__tests__/analyser/fixtures/class-analyzer-fixtures.js.map +0 -1
- package/dist/__tests__/analyser/fixtures/dependency-resolver-fixtures.d.ts +0 -13
- package/dist/__tests__/analyser/fixtures/dependency-resolver-fixtures.d.ts.map +0 -1
- package/dist/__tests__/analyser/fixtures/dependency-resolver-fixtures.js +0 -266
- package/dist/__tests__/analyser/fixtures/dependency-resolver-fixtures.js.map +0 -1
- package/dist/__tests__/analyser/project-analyzer.test.d.ts +0 -2
- package/dist/__tests__/analyser/project-analyzer.test.d.ts.map +0 -1
- package/dist/__tests__/analyser/project-analyzer.test.js +0 -191
- package/dist/__tests__/analyser/project-analyzer.test.js.map +0 -1
- package/dist/__tests__/generator/container-generator.test.d.ts +0 -2
- package/dist/__tests__/generator/container-generator.test.d.ts.map +0 -1
- package/dist/__tests__/generator/container-generator.test.js +0 -185
- package/dist/__tests__/generator/container-generator.test.js.map +0 -1
- package/dist/__tests__/generator/dependency-resolver.test.d.ts +0 -2
- package/dist/__tests__/generator/dependency-resolver.test.d.ts.map +0 -1
- package/dist/__tests__/generator/dependency-resolver.test.js +0 -330
- package/dist/__tests__/generator/dependency-resolver.test.js.map +0 -1
- package/dist/__tests__/generator/fixtures/dependency-resolver.fixtures.d.ts +0 -23
- package/dist/__tests__/generator/fixtures/dependency-resolver.fixtures.d.ts.map +0 -1
- package/dist/__tests__/generator/fixtures/dependency-resolver.fixtures.js +0 -254
- package/dist/__tests__/generator/fixtures/dependency-resolver.fixtures.js.map +0 -1
- package/dist/__tests__/generator/fixtures/import-generator.fixtures.d.ts +0 -10
- package/dist/__tests__/generator/fixtures/import-generator.fixtures.d.ts.map +0 -1
- package/dist/__tests__/generator/fixtures/import-generator.fixtures.js +0 -194
- package/dist/__tests__/generator/fixtures/import-generator.fixtures.js.map +0 -1
- package/dist/__tests__/generator/import-generator.test.d.ts +0 -2
- package/dist/__tests__/generator/import-generator.test.d.ts.map +0 -1
- package/dist/__tests__/generator/import-generator.test.js +0 -121
- package/dist/__tests__/generator/import-generator.test.js.map +0 -1
- package/dist/__tests__/generator/instantiation-generator.test.d.ts +0 -2
- package/dist/__tests__/generator/instantiation-generator.test.d.ts.map +0 -1
- package/dist/__tests__/generator/instantiation-generator.test.js +0 -251
- package/dist/__tests__/generator/instantiation-generator.test.js.map +0 -1
- package/dist/generator/Container-file-generator.d.ts +0 -20
- package/dist/generator/Container-file-generator.d.ts.map +0 -1
- package/dist/generator/Container-file-generator.js +0 -255
- package/dist/generator/Container-file-generator.js.map +0 -1
- package/dist/generator/base-container-code-generator.d.ts +0 -15
- package/dist/generator/base-container-code-generator.d.ts.map +0 -1
- package/dist/generator/base-container-code-generator.js +0 -23
- package/dist/generator/base-container-code-generator.js.map +0 -1
- package/dist/generator/base-dependency-resolver.d.ts +0 -26
- package/dist/generator/base-dependency-resolver.d.ts.map +0 -1
- package/dist/generator/base-dependency-resolver.js +0 -72
- package/dist/generator/base-dependency-resolver.js.map +0 -1
- package/dist/generator/base-instantiation-generator.d.ts +0 -55
- package/dist/generator/base-instantiation-generator.d.ts.map +0 -1
- package/dist/generator/base-instantiation-generator.js +0 -117
- package/dist/generator/base-instantiation-generator.js.map +0 -1
- package/dist/generator/container-generator.d.ts +0 -8
- package/dist/generator/container-generator.d.ts.map +0 -1
- package/dist/generator/container-generator.js +0 -35
- package/dist/generator/container-generator.js.map +0 -1
- package/dist/generator/dependency-resolver.d.ts +0 -11
- package/dist/generator/dependency-resolver.d.ts.map +0 -1
- package/dist/generator/dependency-resolver.js +0 -83
- package/dist/generator/dependency-resolver.js.map +0 -1
- package/dist/generator/duplicate-import-resolver.d.ts +0 -44
- package/dist/generator/duplicate-import-resolver.d.ts.map +0 -1
- package/dist/generator/duplicate-import-resolver.js +0 -162
- package/dist/generator/duplicate-import-resolver.js.map +0 -1
- package/dist/generator/flat/container-generator.d.ts +0 -8
- package/dist/generator/flat/container-generator.d.ts.map +0 -1
- package/dist/generator/flat/container-generator.js +0 -17
- package/dist/generator/flat/container-generator.js.map +0 -1
- package/dist/generator/flat/dependency-resolver.d.ts +0 -8
- package/dist/generator/flat/dependency-resolver.d.ts.map +0 -1
- package/dist/generator/flat/dependency-resolver.js +0 -43
- package/dist/generator/flat/dependency-resolver.js.map +0 -1
- package/dist/generator/flat/flat-container-generator.d.ts +0 -25
- package/dist/generator/flat/flat-container-generator.d.ts.map +0 -1
- package/dist/generator/flat/flat-container-generator.js +0 -44
- package/dist/generator/flat/flat-container-generator.js.map +0 -1
- package/dist/generator/flat/instantiation-generator.d.ts +0 -24
- package/dist/generator/flat/instantiation-generator.d.ts.map +0 -1
- package/dist/generator/flat/instantiation-generator.js +0 -125
- package/dist/generator/flat/instantiation-generator.js.map +0 -1
- package/dist/generator/flat-container-generator.d.ts +0 -25
- package/dist/generator/flat-container-generator.d.ts.map +0 -1
- package/dist/generator/flat-container-generator.js +0 -44
- package/dist/generator/flat-container-generator.js.map +0 -1
- package/dist/generator/instantiation-generator.d.ts +0 -21
- package/dist/generator/instantiation-generator.d.ts.map +0 -1
- package/dist/generator/instantiation-generator.js +0 -116
- package/dist/generator/instantiation-generator.js.map +0 -1
- package/dist/generator/modular/class-sorter.d.ts +0 -17
- package/dist/generator/modular/class-sorter.d.ts.map +0 -1
- package/dist/generator/modular/class-sorter.js +0 -40
- package/dist/generator/modular/class-sorter.js.map +0 -1
- package/dist/generator/modular/modular-container-code-generator.d.ts +0 -65
- package/dist/generator/modular/modular-container-code-generator.d.ts.map +0 -1
- package/dist/generator/modular/modular-container-code-generator.js +0 -157
- package/dist/generator/modular/modular-container-code-generator.js.map +0 -1
- package/dist/generator/modular/module-export-generator.d.ts +0 -42
- package/dist/generator/modular/module-export-generator.d.ts.map +0 -1
- package/dist/generator/modular/module-export-generator.js +0 -82
- package/dist/generator/modular/module-export-generator.js.map +0 -1
- package/dist/generator/modular/module-scope-generator.d.ts +0 -47
- package/dist/generator/modular/module-scope-generator.d.ts.map +0 -1
- package/dist/generator/modular/module-scope-generator.js +0 -111
- package/dist/generator/modular/module-scope-generator.js.map +0 -1
- package/dist/generator/modular/refactored-modular-container-generator.d.ts +0 -38
- package/dist/generator/modular/refactored-modular-container-generator.d.ts.map +0 -1
- package/dist/generator/modular/refactored-modular-container-generator.js +0 -73
- package/dist/generator/modular/refactored-modular-container-generator.js.map +0 -1
- package/dist/generator/modular-container-generator.d.ts +0 -21
- package/dist/generator/modular-container-generator.d.ts.map +0 -1
- package/dist/generator/modular-container-generator.js +0 -57
- package/dist/generator/modular-container-generator.js.map +0 -1
- package/dist/generator/module-container-function-generator.d.ts +0 -30
- package/dist/generator/module-container-function-generator.d.ts.map +0 -1
- package/dist/generator/module-container-function-generator.js +0 -199
- package/dist/generator/module-container-function-generator.js.map +0 -1
- package/dist/generator/shared/dependency-resolver-utils.d.ts +0 -28
- package/dist/generator/shared/dependency-resolver-utils.d.ts.map +0 -1
- package/dist/generator/shared/dependency-resolver-utils.js +0 -67
- package/dist/generator/shared/dependency-resolver-utils.js.map +0 -1
|
@@ -1,266 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-resolver-fixtures.js","sourceRoot":"","sources":["../../../../src/__tests__/analyser/fixtures/dependency-resolver-fixtures.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project-analyzer.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/analyser/project-analyzer.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const project_analyzer_1 = require("../../analyser/project-analyzer");
|
|
5
|
-
const class_analyzer_1 = require("../../analyser/class-analyzer");
|
|
6
|
-
const file_discovery_1 = require("../../analyser/file-discovery");
|
|
7
|
-
// Mock the dependencies
|
|
8
|
-
vitest_1.vi.mock('../../analyser/class-analyzer');
|
|
9
|
-
vitest_1.vi.mock('../../analyser/file-discovery');
|
|
10
|
-
const MockedClassAnalyzer = vitest_1.vi.mocked(class_analyzer_1.ClassAnalyzer);
|
|
11
|
-
const MockedFileDiscovery = vitest_1.vi.mocked(file_discovery_1.FileDiscovery);
|
|
12
|
-
(0, vitest_1.describe)('ProjectAnalyzer', () => {
|
|
13
|
-
let projectAnalyzer;
|
|
14
|
-
let mockClassAnalyzer;
|
|
15
|
-
let mockFileDiscovery;
|
|
16
|
-
let options;
|
|
17
|
-
(0, vitest_1.beforeEach)(() => {
|
|
18
|
-
vitest_1.vi.clearAllMocks();
|
|
19
|
-
options = {
|
|
20
|
-
sourceDir: '/test/src',
|
|
21
|
-
interfacePattern: 'I*',
|
|
22
|
-
excludePatterns: ['**/*.spec.ts']
|
|
23
|
-
};
|
|
24
|
-
mockFileDiscovery = {
|
|
25
|
-
findTypeScriptFiles: vitest_1.vi.fn()
|
|
26
|
-
};
|
|
27
|
-
mockClassAnalyzer = {
|
|
28
|
-
analyzeFile: vitest_1.vi.fn()
|
|
29
|
-
};
|
|
30
|
-
MockedFileDiscovery.mockImplementation(() => mockFileDiscovery);
|
|
31
|
-
MockedClassAnalyzer.mockImplementation(() => mockClassAnalyzer);
|
|
32
|
-
projectAnalyzer = new project_analyzer_1.ProjectAnalyzer(options);
|
|
33
|
-
});
|
|
34
|
-
(0, vitest_1.describe)('analyzeProject', () => {
|
|
35
|
-
(0, vitest_1.it)('should analyze project successfully with unique interface implementations', async () => {
|
|
36
|
-
const mockFiles = ['/test/src/service1.ts', '/test/src/service2.ts'];
|
|
37
|
-
const mockClasses = [
|
|
38
|
-
{
|
|
39
|
-
name: 'UserService',
|
|
40
|
-
filePath: '/test/src/service1.ts',
|
|
41
|
-
dependencies: ['UserRepository'],
|
|
42
|
-
constructorParams: [],
|
|
43
|
-
interfaceName: 'IUserService',
|
|
44
|
-
importPath: './service1',
|
|
45
|
-
scope: 'singleton'
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
name: 'UserRepository',
|
|
49
|
-
filePath: '/test/src/service2.ts',
|
|
50
|
-
dependencies: [],
|
|
51
|
-
constructorParams: [],
|
|
52
|
-
interfaceName: 'IUserRepository',
|
|
53
|
-
importPath: './service2',
|
|
54
|
-
scope: 'singleton'
|
|
55
|
-
}
|
|
56
|
-
];
|
|
57
|
-
mockFileDiscovery.findTypeScriptFiles.mockResolvedValue(mockFiles);
|
|
58
|
-
mockClassAnalyzer.analyzeFile
|
|
59
|
-
.mockResolvedValueOnce([mockClasses[0]])
|
|
60
|
-
.mockResolvedValueOnce([mockClasses[1]]);
|
|
61
|
-
const result = await projectAnalyzer.analyzeProject();
|
|
62
|
-
(0, vitest_1.expect)(result).toEqual(mockClasses);
|
|
63
|
-
(0, vitest_1.expect)(mockFileDiscovery.findTypeScriptFiles).toHaveBeenCalledOnce();
|
|
64
|
-
(0, vitest_1.expect)(mockClassAnalyzer.analyzeFile).toHaveBeenCalledTimes(2);
|
|
65
|
-
});
|
|
66
|
-
(0, vitest_1.it)('should throw error when multiple classes implement the same interface', async () => {
|
|
67
|
-
const mockFiles = ['/test/src/service1.ts', '/test/src/service2.ts'];
|
|
68
|
-
const mockClasses = [
|
|
69
|
-
{
|
|
70
|
-
name: 'UserService',
|
|
71
|
-
filePath: '/test/src/service1.ts',
|
|
72
|
-
dependencies: [],
|
|
73
|
-
constructorParams: [],
|
|
74
|
-
interfaceName: 'IUserService',
|
|
75
|
-
importPath: './service1',
|
|
76
|
-
scope: 'singleton'
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
name: 'AnotherUserService',
|
|
80
|
-
filePath: '/test/src/service2.ts',
|
|
81
|
-
dependencies: [],
|
|
82
|
-
constructorParams: [],
|
|
83
|
-
interfaceName: 'IUserService', // Same interface as above
|
|
84
|
-
importPath: './service2',
|
|
85
|
-
scope: 'singleton'
|
|
86
|
-
}
|
|
87
|
-
];
|
|
88
|
-
mockFileDiscovery.findTypeScriptFiles.mockResolvedValue(mockFiles);
|
|
89
|
-
mockClassAnalyzer.analyzeFile
|
|
90
|
-
.mockResolvedValueOnce([mockClasses[0]])
|
|
91
|
-
.mockResolvedValueOnce([mockClasses[1]]);
|
|
92
|
-
// Mock console.error to avoid output during tests
|
|
93
|
-
const consoleSpy = vitest_1.vi.spyOn(console, 'error').mockImplementation(() => { });
|
|
94
|
-
await (0, vitest_1.expect)(projectAnalyzer.analyzeProject()).rejects.toThrow('Multiple classes implement the same interface(s): IUserService. Each interface should only be implemented by one class for proper dependency injection.');
|
|
95
|
-
(0, vitest_1.expect)(consoleSpy).toHaveBeenCalledWith("Error: Interface 'IUserService' is implemented by multiple classes:");
|
|
96
|
-
(0, vitest_1.expect)(consoleSpy).toHaveBeenCalledWith(' - UserService (/test/src/service1.ts)');
|
|
97
|
-
(0, vitest_1.expect)(consoleSpy).toHaveBeenCalledWith(' - AnotherUserService (/test/src/service2.ts)');
|
|
98
|
-
consoleSpy.mockRestore();
|
|
99
|
-
});
|
|
100
|
-
(0, vitest_1.it)('should throw error when multiple interfaces have duplicate implementations', async () => {
|
|
101
|
-
const mockFiles = ['/test/src/service1.ts', '/test/src/service2.ts', '/test/src/service3.ts'];
|
|
102
|
-
const mockClasses = [
|
|
103
|
-
{
|
|
104
|
-
name: 'UserService1',
|
|
105
|
-
filePath: '/test/src/service1.ts',
|
|
106
|
-
dependencies: [],
|
|
107
|
-
constructorParams: [],
|
|
108
|
-
interfaceName: 'IUserService',
|
|
109
|
-
importPath: './service1',
|
|
110
|
-
scope: 'singleton'
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
name: 'UserService2',
|
|
114
|
-
filePath: '/test/src/service2.ts',
|
|
115
|
-
dependencies: [],
|
|
116
|
-
constructorParams: [],
|
|
117
|
-
interfaceName: 'IUserService', // Duplicate
|
|
118
|
-
importPath: './service2',
|
|
119
|
-
scope: 'singleton'
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
name: 'OrderService1',
|
|
123
|
-
filePath: '/test/src/service3.ts',
|
|
124
|
-
dependencies: [],
|
|
125
|
-
constructorParams: [],
|
|
126
|
-
interfaceName: 'IOrderService',
|
|
127
|
-
importPath: './service3',
|
|
128
|
-
scope: 'singleton'
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
name: 'OrderService2',
|
|
132
|
-
filePath: '/test/src/service3.ts',
|
|
133
|
-
dependencies: [],
|
|
134
|
-
constructorParams: [],
|
|
135
|
-
interfaceName: 'IOrderService', // Duplicate
|
|
136
|
-
importPath: './service3',
|
|
137
|
-
scope: 'singleton'
|
|
138
|
-
}
|
|
139
|
-
];
|
|
140
|
-
mockFileDiscovery.findTypeScriptFiles.mockResolvedValue(mockFiles);
|
|
141
|
-
mockClassAnalyzer.analyzeFile
|
|
142
|
-
.mockResolvedValueOnce([mockClasses[0]])
|
|
143
|
-
.mockResolvedValueOnce([mockClasses[1]])
|
|
144
|
-
.mockResolvedValueOnce([mockClasses[2], mockClasses[3]]);
|
|
145
|
-
// Mock console.error to avoid output during tests
|
|
146
|
-
const consoleSpy = vitest_1.vi.spyOn(console, 'error').mockImplementation(() => { });
|
|
147
|
-
await (0, vitest_1.expect)(projectAnalyzer.analyzeProject()).rejects.toThrow('Multiple classes implement the same interface(s): IUserService, IOrderService. Each interface should only be implemented by one class for proper dependency injection.');
|
|
148
|
-
consoleSpy.mockRestore();
|
|
149
|
-
});
|
|
150
|
-
(0, vitest_1.it)('should filter out classes that are not used as dependencies and have no interfaces', async () => {
|
|
151
|
-
const mockFiles = ['/test/src/service1.ts'];
|
|
152
|
-
const mockClasses = [
|
|
153
|
-
{
|
|
154
|
-
name: 'UserService',
|
|
155
|
-
filePath: '/test/src/service1.ts',
|
|
156
|
-
dependencies: ['UnusedClass'],
|
|
157
|
-
constructorParams: [],
|
|
158
|
-
interfaceName: 'IUserService',
|
|
159
|
-
importPath: './service1',
|
|
160
|
-
scope: 'singleton'
|
|
161
|
-
},
|
|
162
|
-
{
|
|
163
|
-
name: 'UnusedClass',
|
|
164
|
-
filePath: '/test/src/service1.ts',
|
|
165
|
-
dependencies: [],
|
|
166
|
-
constructorParams: [],
|
|
167
|
-
interfaceName: undefined, // No interface
|
|
168
|
-
importPath: './service1',
|
|
169
|
-
scope: 'singleton'
|
|
170
|
-
},
|
|
171
|
-
{
|
|
172
|
-
name: 'AnotherUnusedClass',
|
|
173
|
-
filePath: '/test/src/service1.ts',
|
|
174
|
-
dependencies: [],
|
|
175
|
-
constructorParams: [],
|
|
176
|
-
interfaceName: undefined, // No interface and not used as dependency
|
|
177
|
-
importPath: './service1',
|
|
178
|
-
scope: 'singleton'
|
|
179
|
-
}
|
|
180
|
-
];
|
|
181
|
-
mockFileDiscovery.findTypeScriptFiles.mockResolvedValue(mockFiles);
|
|
182
|
-
mockClassAnalyzer.analyzeFile.mockResolvedValueOnce(mockClasses);
|
|
183
|
-
const result = await projectAnalyzer.analyzeProject();
|
|
184
|
-
// Should include UserService (has interface) and UnusedClass (used as dependency)
|
|
185
|
-
// Should exclude AnotherUnusedClass (no interface and not used as dependency)
|
|
186
|
-
(0, vitest_1.expect)(result).toHaveLength(2);
|
|
187
|
-
(0, vitest_1.expect)(result.map(c => c.name)).toEqual(['UserService', 'UnusedClass']);
|
|
188
|
-
});
|
|
189
|
-
});
|
|
190
|
-
});
|
|
191
|
-
//# sourceMappingURL=project-analyzer.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project-analyzer.test.js","sourceRoot":"","sources":["../../../src/__tests__/analyser/project-analyzer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"container-generator.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/generator/container-generator.test.ts"],"names":[],"mappings":""}
|