@notjustcoders/ioc-arise 1.0.10 → 1.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/dist/analyser/ast-parser.d.ts +1 -0
  2. package/dist/analyser/ast-parser.d.ts.map +1 -1
  3. package/dist/analyser/ast-parser.js +53 -0
  4. package/dist/analyser/ast-parser.js.map +1 -1
  5. package/dist/analyser/class-analyzer.d.ts.map +1 -1
  6. package/dist/analyser/class-analyzer.js +23 -8
  7. package/dist/analyser/class-analyzer.js.map +1 -1
  8. package/dist/analyser/dependency-resolver.js +4 -4
  9. package/dist/analyser/dependency-resolver.js.map +1 -1
  10. package/dist/analyser/module-dependency-resolver.js +1 -1
  11. package/dist/analyser/module-dependency-resolver.js.map +1 -1
  12. package/dist/commands/analyze.js +1 -1
  13. package/dist/commands/analyze.js.map +1 -1
  14. package/dist/commands/generate.d.ts.map +1 -1
  15. package/dist/commands/generate.js +2 -2
  16. package/dist/commands/generate.js.map +1 -1
  17. package/dist/container.gen.d.ts +20 -12
  18. package/dist/container.gen.d.ts.map +1 -1
  19. package/dist/container.gen.js +114 -80
  20. package/dist/container.gen.js.map +1 -1
  21. package/dist/generator/file-writer.d.ts +1 -0
  22. package/dist/generator/file-writer.d.ts.map +1 -1
  23. package/dist/generator/file-writer.js +3 -0
  24. package/dist/generator/file-writer.js.map +1 -1
  25. package/dist/generator/import-generator.js +2 -2
  26. package/dist/generator/import-generator.js.map +1 -1
  27. package/dist/generator/modular/modular-container-generator.d.ts +5 -0
  28. package/dist/generator/modular/modular-container-generator.d.ts.map +1 -1
  29. package/dist/generator/modular/modular-container-generator.js +17 -2
  30. package/dist/generator/modular/modular-container-generator.js.map +1 -1
  31. package/dist/generator/modular/module-dependency-resolver.js +1 -1
  32. package/dist/generator/modular/module-dependency-resolver.js.map +1 -1
  33. package/dist/generator/modular/split-file-writer.d.ts +46 -0
  34. package/dist/generator/modular/split-file-writer.d.ts.map +1 -0
  35. package/dist/generator/modular/split-file-writer.js +133 -0
  36. package/dist/generator/modular/split-file-writer.js.map +1 -0
  37. package/dist/generator/shared/instantiation-utils.d.ts.map +1 -1
  38. package/dist/generator/shared/instantiation-utils.js +17 -5
  39. package/dist/generator/shared/instantiation-utils.js.map +1 -1
  40. package/dist/index.d.ts +0 -1
  41. package/dist/index.js +0 -1
  42. package/dist/index.js.map +1 -1
  43. package/dist/renderer/console-analysis-renderer.js +1 -1
  44. package/dist/renderer/console-analysis-renderer.js.map +1 -1
  45. package/dist/types.d.ts +5 -1
  46. package/dist/types.d.ts.map +1 -1
  47. package/package.json +1 -1
  48. package/dist/__tests__/analyser/ast-parser.test.d.ts +0 -2
  49. package/dist/__tests__/analyser/ast-parser.test.d.ts.map +0 -1
  50. package/dist/__tests__/analyser/ast-parser.test.js +0 -309
  51. package/dist/__tests__/analyser/ast-parser.test.js.map +0 -1
  52. package/dist/__tests__/analyser/class-analyzer.test.d.ts +0 -2
  53. package/dist/__tests__/analyser/class-analyzer.test.d.ts.map +0 -1
  54. package/dist/__tests__/analyser/class-analyzer.test.js +0 -323
  55. package/dist/__tests__/analyser/class-analyzer.test.js.map +0 -1
  56. package/dist/__tests__/analyser/dependency-resolver.test.d.ts +0 -2
  57. package/dist/__tests__/analyser/dependency-resolver.test.d.ts.map +0 -1
  58. package/dist/__tests__/analyser/dependency-resolver.test.js +0 -128
  59. package/dist/__tests__/analyser/dependency-resolver.test.js.map +0 -1
  60. package/dist/__tests__/analyser/fixtures/ast-parser-fixtures.d.ts +0 -28
  61. package/dist/__tests__/analyser/fixtures/ast-parser-fixtures.d.ts.map +0 -1
  62. package/dist/__tests__/analyser/fixtures/ast-parser-fixtures.js +0 -222
  63. package/dist/__tests__/analyser/fixtures/ast-parser-fixtures.js.map +0 -1
  64. package/dist/__tests__/analyser/fixtures/class-analyzer-fixtures.d.ts +0 -54
  65. package/dist/__tests__/analyser/fixtures/class-analyzer-fixtures.d.ts.map +0 -1
  66. package/dist/__tests__/analyser/fixtures/class-analyzer-fixtures.js +0 -285
  67. package/dist/__tests__/analyser/fixtures/class-analyzer-fixtures.js.map +0 -1
  68. package/dist/__tests__/analyser/fixtures/dependency-resolver-fixtures.d.ts +0 -13
  69. package/dist/__tests__/analyser/fixtures/dependency-resolver-fixtures.d.ts.map +0 -1
  70. package/dist/__tests__/analyser/fixtures/dependency-resolver-fixtures.js +0 -266
  71. package/dist/__tests__/analyser/fixtures/dependency-resolver-fixtures.js.map +0 -1
  72. package/dist/__tests__/analyser/project-analyzer.test.d.ts +0 -2
  73. package/dist/__tests__/analyser/project-analyzer.test.d.ts.map +0 -1
  74. package/dist/__tests__/analyser/project-analyzer.test.js +0 -191
  75. package/dist/__tests__/analyser/project-analyzer.test.js.map +0 -1
  76. package/dist/__tests__/generator/container-generator.test.d.ts +0 -2
  77. package/dist/__tests__/generator/container-generator.test.d.ts.map +0 -1
  78. package/dist/__tests__/generator/container-generator.test.js +0 -185
  79. package/dist/__tests__/generator/container-generator.test.js.map +0 -1
  80. package/dist/__tests__/generator/dependency-resolver.test.d.ts +0 -2
  81. package/dist/__tests__/generator/dependency-resolver.test.d.ts.map +0 -1
  82. package/dist/__tests__/generator/dependency-resolver.test.js +0 -330
  83. package/dist/__tests__/generator/dependency-resolver.test.js.map +0 -1
  84. package/dist/__tests__/generator/fixtures/dependency-resolver.fixtures.d.ts +0 -23
  85. package/dist/__tests__/generator/fixtures/dependency-resolver.fixtures.d.ts.map +0 -1
  86. package/dist/__tests__/generator/fixtures/dependency-resolver.fixtures.js +0 -254
  87. package/dist/__tests__/generator/fixtures/dependency-resolver.fixtures.js.map +0 -1
  88. package/dist/__tests__/generator/fixtures/import-generator.fixtures.d.ts +0 -10
  89. package/dist/__tests__/generator/fixtures/import-generator.fixtures.d.ts.map +0 -1
  90. package/dist/__tests__/generator/fixtures/import-generator.fixtures.js +0 -194
  91. package/dist/__tests__/generator/fixtures/import-generator.fixtures.js.map +0 -1
  92. package/dist/__tests__/generator/import-generator.test.d.ts +0 -2
  93. package/dist/__tests__/generator/import-generator.test.d.ts.map +0 -1
  94. package/dist/__tests__/generator/import-generator.test.js +0 -121
  95. package/dist/__tests__/generator/import-generator.test.js.map +0 -1
  96. package/dist/__tests__/generator/instantiation-generator.test.d.ts +0 -2
  97. package/dist/__tests__/generator/instantiation-generator.test.d.ts.map +0 -1
  98. package/dist/__tests__/generator/instantiation-generator.test.js +0 -251
  99. package/dist/__tests__/generator/instantiation-generator.test.js.map +0 -1
  100. package/dist/generator/Container-file-generator.d.ts +0 -20
  101. package/dist/generator/Container-file-generator.d.ts.map +0 -1
  102. package/dist/generator/Container-file-generator.js +0 -255
  103. package/dist/generator/Container-file-generator.js.map +0 -1
  104. package/dist/generator/base-container-code-generator.d.ts +0 -15
  105. package/dist/generator/base-container-code-generator.d.ts.map +0 -1
  106. package/dist/generator/base-container-code-generator.js +0 -23
  107. package/dist/generator/base-container-code-generator.js.map +0 -1
  108. package/dist/generator/base-dependency-resolver.d.ts +0 -26
  109. package/dist/generator/base-dependency-resolver.d.ts.map +0 -1
  110. package/dist/generator/base-dependency-resolver.js +0 -72
  111. package/dist/generator/base-dependency-resolver.js.map +0 -1
  112. package/dist/generator/base-instantiation-generator.d.ts +0 -55
  113. package/dist/generator/base-instantiation-generator.d.ts.map +0 -1
  114. package/dist/generator/base-instantiation-generator.js +0 -117
  115. package/dist/generator/base-instantiation-generator.js.map +0 -1
  116. package/dist/generator/container-generator.d.ts +0 -8
  117. package/dist/generator/container-generator.d.ts.map +0 -1
  118. package/dist/generator/container-generator.js +0 -35
  119. package/dist/generator/container-generator.js.map +0 -1
  120. package/dist/generator/dependency-resolver.d.ts +0 -11
  121. package/dist/generator/dependency-resolver.d.ts.map +0 -1
  122. package/dist/generator/dependency-resolver.js +0 -83
  123. package/dist/generator/dependency-resolver.js.map +0 -1
  124. package/dist/generator/duplicate-import-resolver.d.ts +0 -44
  125. package/dist/generator/duplicate-import-resolver.d.ts.map +0 -1
  126. package/dist/generator/duplicate-import-resolver.js +0 -162
  127. package/dist/generator/duplicate-import-resolver.js.map +0 -1
  128. package/dist/generator/flat/container-generator.d.ts +0 -8
  129. package/dist/generator/flat/container-generator.d.ts.map +0 -1
  130. package/dist/generator/flat/container-generator.js +0 -17
  131. package/dist/generator/flat/container-generator.js.map +0 -1
  132. package/dist/generator/flat/dependency-resolver.d.ts +0 -8
  133. package/dist/generator/flat/dependency-resolver.d.ts.map +0 -1
  134. package/dist/generator/flat/dependency-resolver.js +0 -43
  135. package/dist/generator/flat/dependency-resolver.js.map +0 -1
  136. package/dist/generator/flat/flat-container-generator.d.ts +0 -25
  137. package/dist/generator/flat/flat-container-generator.d.ts.map +0 -1
  138. package/dist/generator/flat/flat-container-generator.js +0 -44
  139. package/dist/generator/flat/flat-container-generator.js.map +0 -1
  140. package/dist/generator/flat/instantiation-generator.d.ts +0 -24
  141. package/dist/generator/flat/instantiation-generator.d.ts.map +0 -1
  142. package/dist/generator/flat/instantiation-generator.js +0 -125
  143. package/dist/generator/flat/instantiation-generator.js.map +0 -1
  144. package/dist/generator/flat-container-generator.d.ts +0 -25
  145. package/dist/generator/flat-container-generator.d.ts.map +0 -1
  146. package/dist/generator/flat-container-generator.js +0 -44
  147. package/dist/generator/flat-container-generator.js.map +0 -1
  148. package/dist/generator/instantiation-generator.d.ts +0 -21
  149. package/dist/generator/instantiation-generator.d.ts.map +0 -1
  150. package/dist/generator/instantiation-generator.js +0 -116
  151. package/dist/generator/instantiation-generator.js.map +0 -1
  152. package/dist/generator/modular/class-sorter.d.ts +0 -17
  153. package/dist/generator/modular/class-sorter.d.ts.map +0 -1
  154. package/dist/generator/modular/class-sorter.js +0 -40
  155. package/dist/generator/modular/class-sorter.js.map +0 -1
  156. package/dist/generator/modular/modular-container-code-generator.d.ts +0 -65
  157. package/dist/generator/modular/modular-container-code-generator.d.ts.map +0 -1
  158. package/dist/generator/modular/modular-container-code-generator.js +0 -157
  159. package/dist/generator/modular/modular-container-code-generator.js.map +0 -1
  160. package/dist/generator/modular/module-export-generator.d.ts +0 -42
  161. package/dist/generator/modular/module-export-generator.d.ts.map +0 -1
  162. package/dist/generator/modular/module-export-generator.js +0 -82
  163. package/dist/generator/modular/module-export-generator.js.map +0 -1
  164. package/dist/generator/modular/module-scope-generator.d.ts +0 -47
  165. package/dist/generator/modular/module-scope-generator.d.ts.map +0 -1
  166. package/dist/generator/modular/module-scope-generator.js +0 -111
  167. package/dist/generator/modular/module-scope-generator.js.map +0 -1
  168. package/dist/generator/modular/refactored-modular-container-generator.d.ts +0 -38
  169. package/dist/generator/modular/refactored-modular-container-generator.d.ts.map +0 -1
  170. package/dist/generator/modular/refactored-modular-container-generator.js +0 -73
  171. package/dist/generator/modular/refactored-modular-container-generator.js.map +0 -1
  172. package/dist/generator/modular-container-generator.d.ts +0 -21
  173. package/dist/generator/modular-container-generator.d.ts.map +0 -1
  174. package/dist/generator/modular-container-generator.js +0 -57
  175. package/dist/generator/modular-container-generator.js.map +0 -1
  176. package/dist/generator/module-container-function-generator.d.ts +0 -30
  177. package/dist/generator/module-container-function-generator.d.ts.map +0 -1
  178. package/dist/generator/module-container-function-generator.js +0 -199
  179. package/dist/generator/module-container-function-generator.js.map +0 -1
  180. package/dist/generator/shared/dependency-resolver-utils.d.ts +0 -28
  181. package/dist/generator/shared/dependency-resolver-utils.d.ts.map +0 -1
  182. package/dist/generator/shared/dependency-resolver-utils.js +0 -67
  183. package/dist/generator/shared/dependency-resolver-utils.js.map +0 -1
@@ -1,254 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.expectedResults = exports.testClassForResolution = exports.circularDependencyClasses = exports.classesWithoutInterfaces = exports.unmanagedClassesWithParams = exports.mixedDependencyClasses = exports.transientClasses = exports.basicManagedClasses = void 0;
4
- // Basic managed classes for testing
5
- exports.basicManagedClasses = [
6
- {
7
- name: 'UserService',
8
- filePath: '/src/services/user.service.ts',
9
- dependencies: ['IUserRepository'],
10
- constructorParams: [
11
- {
12
- name: 'userRepository',
13
- type: 'IUserRepository',
14
- isOptional: false,
15
- accessModifier: 'private'
16
- }
17
- ],
18
- interfaceName: 'IUserService',
19
- importPath: './services/user.service',
20
- scope: 'singleton'
21
- },
22
- {
23
- name: 'UserRepository',
24
- filePath: '/src/repositories/user.repository.ts',
25
- dependencies: [],
26
- constructorParams: [],
27
- interfaceName: 'IUserRepository',
28
- importPath: './repositories/user.repository',
29
- scope: 'singleton'
30
- }
31
- ];
32
- // Classes with transient scope
33
- exports.transientClasses = [
34
- {
35
- name: 'EmailService',
36
- filePath: '/src/services/email.service.ts',
37
- dependencies: ['IEmailProvider'],
38
- constructorParams: [
39
- {
40
- name: 'emailProvider',
41
- type: 'IEmailProvider',
42
- isOptional: false,
43
- accessModifier: 'private'
44
- }
45
- ],
46
- interfaceName: 'IEmailService',
47
- importPath: './services/email.service',
48
- scope: 'transient'
49
- },
50
- {
51
- name: 'EmailProvider',
52
- filePath: '/src/providers/email.provider.ts',
53
- dependencies: [],
54
- constructorParams: [],
55
- interfaceName: 'IEmailProvider',
56
- importPath: './providers/email.provider',
57
- scope: 'transient'
58
- }
59
- ];
60
- // Classes with mixed dependencies (managed and unmanaged)
61
- exports.mixedDependencyClasses = [
62
- {
63
- name: 'OrderService',
64
- filePath: '/src/services/order.service.ts',
65
- dependencies: ['IUserService', 'PaymentGateway', 'Logger'],
66
- constructorParams: [
67
- {
68
- name: 'userService',
69
- type: 'IUserService',
70
- isOptional: false,
71
- accessModifier: 'private'
72
- },
73
- {
74
- name: 'paymentGateway',
75
- type: 'PaymentGateway',
76
- isOptional: false,
77
- accessModifier: 'private'
78
- },
79
- {
80
- name: 'logger',
81
- type: 'Logger',
82
- isOptional: false,
83
- accessModifier: 'private'
84
- }
85
- ],
86
- interfaceName: 'IOrderService',
87
- importPath: './services/order.service',
88
- scope: 'singleton'
89
- },
90
- ...exports.basicManagedClasses
91
- ];
92
- // Unmanaged classes with constructor parameters
93
- exports.unmanagedClassesWithParams = [
94
- {
95
- name: 'DatabaseConnection',
96
- filePath: '/src/database/connection.ts',
97
- dependencies: [],
98
- constructorParams: [
99
- {
100
- name: 'host',
101
- type: 'string',
102
- isOptional: false,
103
- accessModifier: 'private'
104
- },
105
- {
106
- name: 'port',
107
- type: 'number',
108
- isOptional: false,
109
- accessModifier: 'private'
110
- },
111
- {
112
- name: 'ssl',
113
- type: 'boolean',
114
- isOptional: true,
115
- accessModifier: 'private'
116
- }
117
- ],
118
- importPath: './database/connection',
119
- scope: 'singleton'
120
- },
121
- {
122
- name: 'ConfigService',
123
- filePath: '/src/config/config.service.ts',
124
- dependencies: [],
125
- constructorParams: [
126
- {
127
- name: 'config',
128
- type: 'Config',
129
- isOptional: false,
130
- accessModifier: 'private'
131
- },
132
- {
133
- name: 'env',
134
- type: 'Environment',
135
- isOptional: true,
136
- accessModifier: 'private'
137
- }
138
- ],
139
- importPath: './config/config.service',
140
- scope: 'singleton'
141
- }
142
- ];
143
- // Classes without interface names
144
- exports.classesWithoutInterfaces = [
145
- {
146
- name: 'UtilityService',
147
- filePath: '/src/utils/utility.service.ts',
148
- dependencies: [],
149
- constructorParams: [],
150
- importPath: './utils/utility.service',
151
- scope: 'singleton'
152
- },
153
- {
154
- name: 'HelperService',
155
- filePath: '/src/helpers/helper.service.ts',
156
- dependencies: ['UtilityService'],
157
- constructorParams: [
158
- {
159
- name: 'utilityService',
160
- type: 'UtilityService',
161
- isOptional: false,
162
- accessModifier: 'private'
163
- }
164
- ],
165
- importPath: './helpers/helper.service',
166
- scope: 'singleton'
167
- }
168
- ];
169
- // Complex scenario with circular dependencies
170
- exports.circularDependencyClasses = [
171
- {
172
- name: 'ServiceA',
173
- filePath: '/src/services/service-a.ts',
174
- dependencies: ['IServiceB'],
175
- constructorParams: [
176
- {
177
- name: 'serviceB',
178
- type: 'IServiceB',
179
- isOptional: false,
180
- accessModifier: 'private'
181
- }
182
- ],
183
- interfaceName: 'IServiceA',
184
- importPath: './services/service-a',
185
- scope: 'singleton'
186
- },
187
- {
188
- name: 'ServiceB',
189
- filePath: '/src/services/service-b.ts',
190
- dependencies: ['IServiceA'],
191
- constructorParams: [
192
- {
193
- name: 'serviceA',
194
- type: 'IServiceA',
195
- isOptional: false,
196
- accessModifier: 'private'
197
- }
198
- ],
199
- interfaceName: 'IServiceB',
200
- importPath: './services/service-b',
201
- scope: 'singleton'
202
- }
203
- ];
204
- // Test class for dependency resolution
205
- exports.testClassForResolution = {
206
- name: 'TestService',
207
- filePath: '/src/services/test.service.ts',
208
- dependencies: ['IUserService', 'IEmailService', 'UnmanagedClass'],
209
- constructorParams: [
210
- {
211
- name: 'userService',
212
- type: 'IUserService',
213
- isOptional: false,
214
- accessModifier: 'private'
215
- },
216
- {
217
- name: 'emailService',
218
- type: 'IEmailService',
219
- isOptional: false,
220
- accessModifier: 'private'
221
- },
222
- {
223
- name: 'unmanagedClass',
224
- type: 'UnmanagedClass',
225
- isOptional: false,
226
- accessModifier: 'private'
227
- }
228
- ],
229
- interfaceName: 'ITestService',
230
- importPath: './services/test.service',
231
- scope: 'singleton'
232
- };
233
- // Expected results for various test scenarios
234
- exports.expectedResults = {
235
- basicInterfaceToClassMap: new Map([
236
- ['IUserService', 'UserService'],
237
- ['IUserRepository', 'UserRepository']
238
- ]),
239
- transientInterfaceToClassMap: new Map([
240
- ['IEmailService', 'EmailService'],
241
- ['IEmailProvider', 'EmailProvider']
242
- ]),
243
- mixedDependenciesResolution: 'userService, new PaymentGateway(), new Logger()',
244
- transientDependenciesResolution: 'emailProviderFactory()',
245
- singletonDependenciesResolution: 'userRepository',
246
- unmanagedWithParamsResolution: 'new DatabaseConnection("default", 0, undefined)',
247
- primitiveTypesDefaults: {
248
- string: '"default"',
249
- number: '0',
250
- boolean: 'false',
251
- date: 'new Date()'
252
- }
253
- };
254
- //# sourceMappingURL=dependency-resolver.fixtures.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependency-resolver.fixtures.js","sourceRoot":"","sources":["../../../../src/__tests__/generator/fixtures/dependency-resolver.fixtures.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { ClassInfo } from '../../../types';
2
- export declare const mockClassInfos: ClassInfo[];
3
- export declare const mockClassInfoWithNoDependencies: ClassInfo;
4
- export declare const mockClassInfoWithUnmanagedDependencies: ClassInfo;
5
- export declare const expectedImportsForMockClasses: string;
6
- export declare const expectedImportsWithUnmanagedDependencies: string;
7
- export declare const duplicateClassesFixture: ClassInfo[];
8
- export declare const circularClassesFixture: ClassInfo[];
9
- export declare const mixedClassesFixture: ClassInfo[];
10
- //# sourceMappingURL=import-generator.fixtures.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import-generator.fixtures.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/generator/fixtures/import-generator.fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAkB,MAAM,gBAAgB,CAAC;AAE3D,eAAO,MAAM,cAAc,EAAE,SAAS,EA6DrC,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,SAQ7C,CAAC;AAEF,eAAO,MAAM,sCAAsC,EAAE,SAqBpD,CAAC;AAEF,eAAO,MAAM,6BAA6B,QAI9B,CAAC;AAEb,eAAO,MAAM,wCAAwC,QAMzC,CAAC;AAEb,eAAO,MAAM,uBAAuB,EAAE,SAAS,EA2B9C,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,SAAS,EA2B7C,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,SAAS,EA4B1C,CAAC"}
@@ -1,194 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mixedClassesFixture = exports.circularClassesFixture = exports.duplicateClassesFixture = exports.expectedImportsWithUnmanagedDependencies = exports.expectedImportsForMockClasses = exports.mockClassInfoWithUnmanagedDependencies = exports.mockClassInfoWithNoDependencies = exports.mockClassInfos = void 0;
4
- exports.mockClassInfos = [
5
- {
6
- name: 'UserService',
7
- filePath: '/src/services/user.service.ts',
8
- dependencies: ['IUserRepository', 'EmailService'],
9
- constructorParams: [
10
- {
11
- name: 'userRepository',
12
- type: 'IUserRepository',
13
- isOptional: false,
14
- accessModifier: 'private'
15
- },
16
- {
17
- name: 'emailService',
18
- type: 'EmailService',
19
- isOptional: false,
20
- accessModifier: 'private'
21
- }
22
- ],
23
- interfaceName: 'IUserService',
24
- importPath: './services/user.service',
25
- scope: 'singleton'
26
- },
27
- {
28
- name: 'EmailService',
29
- filePath: '/src/services/email.service.ts',
30
- dependencies: ['IEmailProvider'],
31
- constructorParams: [
32
- {
33
- name: 'emailProvider',
34
- type: 'IEmailProvider',
35
- isOptional: false,
36
- accessModifier: 'private'
37
- }
38
- ],
39
- interfaceName: 'IEmailService',
40
- importPath: './services/email.service',
41
- scope: 'transient'
42
- },
43
- {
44
- name: 'ProductService',
45
- filePath: '/src/services/product.service.ts',
46
- dependencies: ['IProductRepository', 'UserService'],
47
- constructorParams: [
48
- {
49
- name: 'productRepository',
50
- type: 'IProductRepository',
51
- isOptional: false,
52
- accessModifier: 'private'
53
- },
54
- {
55
- name: 'userService',
56
- type: 'UserService',
57
- isOptional: false,
58
- accessModifier: 'private'
59
- }
60
- ],
61
- interfaceName: 'IProductService',
62
- importPath: './services/product.service',
63
- scope: 'singleton'
64
- }
65
- ];
66
- exports.mockClassInfoWithNoDependencies = {
67
- name: 'LoggerService',
68
- filePath: '/src/services/logger.service.ts',
69
- dependencies: [],
70
- constructorParams: [],
71
- interfaceName: 'ILoggerService',
72
- importPath: './services/logger.service',
73
- scope: 'singleton'
74
- };
75
- exports.mockClassInfoWithUnmanagedDependencies = {
76
- name: 'DatabaseService',
77
- filePath: '/src/services/database.service.ts',
78
- dependencies: ['Connection', 'IConfig'],
79
- constructorParams: [
80
- {
81
- name: 'connection',
82
- type: 'Connection',
83
- isOptional: false,
84
- accessModifier: 'private'
85
- },
86
- {
87
- name: 'config',
88
- type: 'IConfig',
89
- isOptional: false,
90
- accessModifier: 'private'
91
- }
92
- ],
93
- interfaceName: 'IDatabaseService',
94
- importPath: './services/database.service',
95
- scope: 'singleton'
96
- };
97
- exports.expectedImportsForMockClasses = [
98
- "import { UserService } from './services/user.service';",
99
- "import { EmailService } from './services/email.service';",
100
- "import { ProductService } from './services/product.service';"
101
- ].join('\n');
102
- exports.expectedImportsWithUnmanagedDependencies = [
103
- "import { UserService } from './services/user.service';",
104
- "import { EmailService } from './services/email.service';",
105
- "import { ProductService } from './services/product.service';",
106
- "import { DatabaseService } from './services/database.service';",
107
- "import { Connection } from './services/database.service';"
108
- ].join('\n');
109
- exports.duplicateClassesFixture = [
110
- {
111
- name: 'ServiceA',
112
- filePath: '/src/services/shared.service.ts',
113
- dependencies: ['SharedDependency'],
114
- constructorParams: [{
115
- name: 'sharedDep',
116
- type: 'SharedDependency',
117
- isOptional: false,
118
- accessModifier: 'private'
119
- }],
120
- importPath: './services/shared.service',
121
- scope: 'singleton'
122
- },
123
- {
124
- name: 'ServiceB',
125
- filePath: '/src/services/shared.service.ts',
126
- dependencies: ['SharedDependency'],
127
- constructorParams: [{
128
- name: 'sharedDep',
129
- type: 'SharedDependency',
130
- isOptional: false,
131
- accessModifier: 'private'
132
- }],
133
- importPath: './services/shared.service',
134
- scope: 'singleton'
135
- }
136
- ];
137
- exports.circularClassesFixture = [
138
- {
139
- name: 'ServiceA',
140
- filePath: '/src/services/service-a.ts',
141
- dependencies: ['ServiceB'],
142
- constructorParams: [{
143
- name: 'serviceB',
144
- type: 'ServiceB',
145
- isOptional: false,
146
- accessModifier: 'private'
147
- }],
148
- importPath: './services/service-a',
149
- scope: 'singleton'
150
- },
151
- {
152
- name: 'ServiceB',
153
- filePath: '/src/services/service-b.ts',
154
- dependencies: ['ServiceA'],
155
- constructorParams: [{
156
- name: 'serviceA',
157
- type: 'ServiceA',
158
- isOptional: false,
159
- accessModifier: 'private'
160
- }],
161
- importPath: './services/service-b',
162
- scope: 'singleton'
163
- }
164
- ];
165
- exports.mixedClassesFixture = [
166
- {
167
- name: 'MixedService',
168
- filePath: '/src/services/mixed.service.ts',
169
- dependencies: ['UserService', 'ExternalLibrary', 'IConfig'],
170
- constructorParams: [
171
- {
172
- name: 'userService',
173
- type: 'UserService',
174
- isOptional: false,
175
- accessModifier: 'private'
176
- },
177
- {
178
- name: 'externalLibrary',
179
- type: 'ExternalLibrary',
180
- isOptional: false,
181
- accessModifier: 'private'
182
- },
183
- {
184
- name: 'config',
185
- type: 'IConfig',
186
- isOptional: false,
187
- accessModifier: 'private'
188
- }
189
- ],
190
- importPath: './services/mixed.service',
191
- scope: 'singleton'
192
- }
193
- ];
194
- //# sourceMappingURL=import-generator.fixtures.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import-generator.fixtures.js","sourceRoot":"","sources":["../../../../src/__tests__/generator/fixtures/import-generator.fixtures.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=import-generator.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import-generator.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/generator/import-generator.test.ts"],"names":[],"mappings":""}
@@ -1,121 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const import_generator_1 = require("../../generator/import-generator");
5
- const import_generator_fixtures_1 = require("./fixtures/import-generator.fixtures");
6
- (0, vitest_1.describe)('ImportGenerator', () => {
7
- let importGenerator;
8
- (0, vitest_1.describe)('constructor', () => {
9
- (0, vitest_1.it)('should create an instance with provided classes', () => {
10
- importGenerator = new import_generator_1.ImportGenerator(import_generator_fixtures_1.mockClassInfos);
11
- (0, vitest_1.expect)(importGenerator).toBeInstanceOf(import_generator_1.ImportGenerator);
12
- });
13
- (0, vitest_1.it)('should handle empty classes array', () => {
14
- importGenerator = new import_generator_1.ImportGenerator([]);
15
- (0, vitest_1.expect)(importGenerator).toBeInstanceOf(import_generator_1.ImportGenerator);
16
- });
17
- });
18
- (0, vitest_1.describe)('generateImports', () => {
19
- (0, vitest_1.describe)('with managed classes only', () => {
20
- (0, vitest_1.beforeEach)(() => {
21
- importGenerator = new import_generator_1.ImportGenerator(import_generator_fixtures_1.mockClassInfos);
22
- });
23
- (0, vitest_1.it)('should generate imports for all managed classes', () => {
24
- const result = importGenerator.generateImports();
25
- (0, vitest_1.expect)(result).toContain("import { UserService } from './services/user.service';");
26
- (0, vitest_1.expect)(result).toContain("import { EmailService } from './services/email.service';");
27
- (0, vitest_1.expect)(result).toContain("import { ProductService } from './services/product.service';");
28
- });
29
- (0, vitest_1.it)('should not duplicate imports for the same class', () => {
30
- const result = importGenerator.generateImports();
31
- const userServiceImports = result.split('\n').filter(line => line.includes('UserService'));
32
- (0, vitest_1.expect)(userServiceImports).toHaveLength(1);
33
- });
34
- (0, vitest_1.it)('should not generate imports for interfaces (starting with I)', () => {
35
- const result = importGenerator.generateImports();
36
- (0, vitest_1.expect)(result).not.toContain('IUserRepository');
37
- (0, vitest_1.expect)(result).not.toContain('IEmailProvider');
38
- (0, vitest_1.expect)(result).not.toContain('IProductRepository');
39
- });
40
- (0, vitest_1.it)('should generate imports for managed dependencies', () => {
41
- const result = importGenerator.generateImports();
42
- // UserService depends on EmailService, and EmailService is a managed class
43
- // So EmailService should be imported
44
- (0, vitest_1.expect)(result).toContain("import { EmailService } from './services/email.service';");
45
- });
46
- });
47
- (0, vitest_1.describe)('with no dependencies', () => {
48
- (0, vitest_1.beforeEach)(() => {
49
- importGenerator = new import_generator_1.ImportGenerator([import_generator_fixtures_1.mockClassInfoWithNoDependencies]);
50
- });
51
- (0, vitest_1.it)('should generate import only for the class itself', () => {
52
- const result = importGenerator.generateImports();
53
- (0, vitest_1.expect)(result).toBe("import { LoggerService } from './services/logger.service';");
54
- });
55
- });
56
- (0, vitest_1.describe)('with unmanaged dependencies', () => {
57
- (0, vitest_1.beforeEach)(() => {
58
- const classesWithUnmanaged = [...import_generator_fixtures_1.mockClassInfos, import_generator_fixtures_1.mockClassInfoWithUnmanagedDependencies];
59
- importGenerator = new import_generator_1.ImportGenerator(classesWithUnmanaged);
60
- });
61
- (0, vitest_1.it)('should generate imports for unmanaged dependencies that are not interfaces', () => {
62
- const result = importGenerator.generateImports();
63
- // Connection is an unmanaged dependency and doesn't start with 'I'
64
- (0, vitest_1.expect)(result).toContain("import { Connection } from './services/database.service';");
65
- // IConfig is an interface (starts with 'I') so should not be imported
66
- (0, vitest_1.expect)(result).not.toContain('IConfig');
67
- });
68
- (0, vitest_1.it)('should include imports for all managed classes', () => {
69
- const result = importGenerator.generateImports();
70
- (0, vitest_1.expect)(result).toContain("import { UserService } from './services/user.service';");
71
- (0, vitest_1.expect)(result).toContain("import { EmailService } from './services/email.service';");
72
- (0, vitest_1.expect)(result).toContain("import { ProductService } from './services/product.service';");
73
- (0, vitest_1.expect)(result).toContain("import { DatabaseService } from './services/database.service';");
74
- });
75
- });
76
- (0, vitest_1.describe)('with empty classes array', () => {
77
- (0, vitest_1.beforeEach)(() => {
78
- importGenerator = new import_generator_1.ImportGenerator([]);
79
- });
80
- (0, vitest_1.it)('should return empty string', () => {
81
- const result = importGenerator.generateImports();
82
- (0, vitest_1.expect)(result).toBe('');
83
- });
84
- });
85
- (0, vitest_1.describe)('with complex dependency scenarios', () => {
86
- (0, vitest_1.it)('should handle circular dependencies correctly', () => {
87
- importGenerator = new import_generator_1.ImportGenerator(import_generator_fixtures_1.circularClassesFixture);
88
- const result = importGenerator.generateImports();
89
- (0, vitest_1.expect)(result).toContain("import { ServiceA } from './services/service-a';");
90
- (0, vitest_1.expect)(result).toContain("import { ServiceB } from './services/service-b';");
91
- });
92
- (0, vitest_1.it)('should handle mixed managed and unmanaged dependencies', () => {
93
- const mixedClasses = [...import_generator_fixtures_1.mixedClassesFixture, import_generator_fixtures_1.mockClassInfos[0]]; // UserService - non-null assertion since we know the array has items
94
- importGenerator = new import_generator_1.ImportGenerator(mixedClasses);
95
- const result = importGenerator.generateImports();
96
- // Should import the managed class
97
- (0, vitest_1.expect)(result).toContain("import { UserService } from './services/user.service';");
98
- // Should import the unmanaged non-interface dependency
99
- (0, vitest_1.expect)(result).toContain("import { ExternalLibrary } from './services/mixed.service';");
100
- // Should NOT import the interface
101
- (0, vitest_1.expect)(result).not.toContain('IConfig');
102
- // Should import the MixedService itself
103
- (0, vitest_1.expect)(result).toContain("import { MixedService } from './services/mixed.service';");
104
- });
105
- });
106
- (0, vitest_1.describe)('import deduplication', () => {
107
- (0, vitest_1.it)('should deduplicate imports from the same path', () => {
108
- importGenerator = new import_generator_1.ImportGenerator(import_generator_fixtures_1.duplicateClassesFixture);
109
- const result = importGenerator.generateImports();
110
- const lines = result.split('\n');
111
- // Should have imports for both services
112
- (0, vitest_1.expect)(result).toContain("import { ServiceA } from './services/shared.service';");
113
- (0, vitest_1.expect)(result).toContain("import { ServiceB } from './services/shared.service';");
114
- // Should only have one import for SharedDependency
115
- const sharedDepImports = lines.filter(line => line.includes('SharedDependency'));
116
- (0, vitest_1.expect)(sharedDepImports).toHaveLength(1);
117
- });
118
- });
119
- });
120
- });
121
- //# sourceMappingURL=import-generator.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import-generator.test.js","sourceRoot":"","sources":["../../../src/__tests__/generator/import-generator.test.ts"],"names":[],"mappings":";;AAAA,mCAA0D;AAC1D,uEAAmE;AACnE,oFAO8C;AAE9C,IAAA,iBAAQ,EAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,eAAgC,CAAC;IAErC,IAAA,iBAAQ,EAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,IAAA,WAAE,EAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,eAAe,GAAG,IAAI,kCAAe,CAAC,0CAAc,CAAC,CAAC;YACtD,IAAA,eAAM,EAAC,eAAe,CAAC,CAAC,cAAc,CAAC,kCAAe,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,eAAe,GAAG,IAAI,kCAAe,CAAC,EAAE,CAAC,CAAC;YAC1C,IAAA,eAAM,EAAC,eAAe,CAAC,CAAC,cAAc,CAAC,kCAAe,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,IAAA,iBAAQ,EAAC,2BAA2B,EAAE,GAAG,EAAE;YACzC,IAAA,mBAAU,EAAC,GAAG,EAAE;gBACd,eAAe,GAAG,IAAI,kCAAe,CAAC,0CAAc,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;YAEH,IAAA,WAAE,EAAC,iDAAiD,EAAE,GAAG,EAAE;gBACzD,MAAM,MAAM,GAAG,eAAe,CAAC,eAAe,EAAE,CAAC;gBAEjD,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wDAAwD,CAAC,CAAC;gBACnF,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,0DAA0D,CAAC,CAAC;gBACrF,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,8DAA8D,CAAC,CAAC;YAC3F,CAAC,CAAC,CAAC;YAEH,IAAA,WAAE,EAAC,iDAAiD,EAAE,GAAG,EAAE;gBACzD,MAAM,MAAM,GAAG,eAAe,CAAC,eAAe,EAAE,CAAC;gBACjD,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAC1D,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAC7B,CAAC;gBAEF,IAAA,eAAM,EAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;YAEH,IAAA,WAAE,EAAC,8DAA8D,EAAE,GAAG,EAAE;gBACtE,MAAM,MAAM,GAAG,eAAe,CAAC,eAAe,EAAE,CAAC;gBAEjD,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;gBAChD,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;gBAC/C,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;YAEH,IAAA,WAAE,EAAC,kDAAkD,EAAE,GAAG,EAAE;gBAC1D,MAAM,MAAM,GAAG,eAAe,CAAC,eAAe,EAAE,CAAC;gBAEjD,2EAA2E;gBAC3E,qCAAqC;gBACrC,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,0DAA0D,CAAC,CAAC;YACvF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,iBAAQ,EAAC,sBAAsB,EAAE,GAAG,EAAE;YACpC,IAAA,mBAAU,EAAC,GAAG,EAAE;gBACd,eAAe,GAAG,IAAI,kCAAe,CAAC,CAAC,2DAA+B,CAAC,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;YAEH,IAAA,WAAE,EAAC,kDAAkD,EAAE,GAAG,EAAE;gBAC1D,MAAM,MAAM,GAAG,eAAe,CAAC,eAAe,EAAE,CAAC;gBAEjD,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;YACpF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,iBAAQ,EAAC,6BAA6B,EAAE,GAAG,EAAE;YAC3C,IAAA,mBAAU,EAAC,GAAG,EAAE;gBACd,MAAM,oBAAoB,GAAG,CAAC,GAAG,0CAAc,EAAE,kEAAsC,CAAC,CAAC;gBACzF,eAAe,GAAG,IAAI,kCAAe,CAAC,oBAAoB,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;YAEH,IAAA,WAAE,EAAC,4EAA4E,EAAE,GAAG,EAAE;gBACpF,MAAM,MAAM,GAAG,eAAe,CAAC,eAAe,EAAE,CAAC;gBAEjD,mEAAmE;gBACnE,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,2DAA2D,CAAC,CAAC;gBAEtF,sEAAsE;gBACtE,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;YAEH,IAAA,WAAE,EAAC,gDAAgD,EAAE,GAAG,EAAE;gBACxD,MAAM,MAAM,GAAG,eAAe,CAAC,eAAe,EAAE,CAAC;gBAEjD,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wDAAwD,CAAC,CAAC;gBACnF,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,0DAA0D,CAAC,CAAC;gBACrF,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,8DAA8D,CAAC,CAAC;gBACzF,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gEAAgE,CAAC,CAAC;YAC7F,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,iBAAQ,EAAC,0BAA0B,EAAE,GAAG,EAAE;YACxC,IAAA,mBAAU,EAAC,GAAG,EAAE;gBACd,eAAe,GAAG,IAAI,kCAAe,CAAC,EAAE,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,IAAA,WAAE,EAAC,4BAA4B,EAAE,GAAG,EAAE;gBACpC,MAAM,MAAM,GAAG,eAAe,CAAC,eAAe,EAAE,CAAC;gBAEjD,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,iBAAQ,EAAC,mCAAmC,EAAE,GAAG,EAAE;YACjD,IAAA,WAAE,EAAC,+CAA+C,EAAE,GAAG,EAAE;gBACvD,eAAe,GAAG,IAAI,kCAAe,CAAC,kDAAsB,CAAC,CAAC;gBAC9D,MAAM,MAAM,GAAG,eAAe,CAAC,eAAe,EAAE,CAAC;gBAEjD,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kDAAkD,CAAC,CAAC;gBAC7E,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kDAAkD,CAAC,CAAC;YAC/E,CAAC,CAAC,CAAC;YAEH,IAAA,WAAE,EAAC,wDAAwD,EAAE,GAAG,EAAE;gBAChE,MAAM,YAAY,GAAG,CAAC,GAAG,+CAAmB,EAAE,0CAAc,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,qEAAqE;gBAExI,eAAe,GAAG,IAAI,kCAAe,CAAC,YAAY,CAAC,CAAC;gBACpD,MAAM,MAAM,GAAG,eAAe,CAAC,eAAe,EAAE,CAAC;gBAEjD,kCAAkC;gBAClC,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wDAAwD,CAAC,CAAC;gBACnF,uDAAuD;gBACvD,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,6DAA6D,CAAC,CAAC;gBACxF,kCAAkC;gBAClC,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBACxC,wCAAwC;gBACxC,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,0DAA0D,CAAC,CAAC;YACvF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,iBAAQ,EAAC,sBAAsB,EAAE,GAAG,EAAE;YACpC,IAAA,WAAE,EAAC,+CAA+C,EAAE,GAAG,EAAE;gBACvD,eAAe,GAAG,IAAI,kCAAe,CAAC,mDAAuB,CAAC,CAAC;gBAC/D,MAAM,MAAM,GAAG,eAAe,CAAC,eAAe,EAAE,CAAC;gBACjD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAEjC,wCAAwC;gBACxC,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uDAAuD,CAAC,CAAC;gBAClF,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uDAAuD,CAAC,CAAC;gBAElF,mDAAmD;gBACnD,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAC3C,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAClC,CAAC;gBACF,IAAA,eAAM,EAAC,gBAAgB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=instantiation-generator.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"instantiation-generator.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/generator/instantiation-generator.test.ts"],"names":[],"mappings":""}