@nestia/sdk 3.10.0 → 3.11.0-dev.20240812

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 (279) hide show
  1. package/lib/NestiaSdkApplication.d.ts +1 -3
  2. package/lib/NestiaSdkApplication.js +138 -136
  3. package/lib/NestiaSdkApplication.js.map +1 -1
  4. package/lib/analyses/ConfigAnalyzer.d.ts +2 -2
  5. package/lib/analyses/ConfigAnalyzer.js +39 -80
  6. package/lib/analyses/ConfigAnalyzer.js.map +1 -1
  7. package/lib/analyses/ExceptionAnalyzer.d.ts +0 -16
  8. package/lib/analyses/ExceptionAnalyzer.js +142 -105
  9. package/lib/analyses/ExceptionAnalyzer.js.map +1 -1
  10. package/lib/analyses/GenericAnalyzer.d.ts +1 -2
  11. package/lib/analyses/GenericAnalyzer.js.map +1 -1
  12. package/lib/analyses/ImportAnalyzer.d.ts +6 -11
  13. package/lib/analyses/ImportAnalyzer.js +70 -42
  14. package/lib/analyses/ImportAnalyzer.js.map +1 -1
  15. package/lib/analyses/ReflectControllerAnalyzer.d.ts +7 -1
  16. package/lib/analyses/ReflectControllerAnalyzer.js +28 -99
  17. package/lib/analyses/ReflectControllerAnalyzer.js.map +1 -1
  18. package/lib/analyses/ReflectHttpOperationAnalyzer.d.ts +6 -2
  19. package/lib/analyses/ReflectHttpOperationAnalyzer.js +72 -152
  20. package/lib/analyses/ReflectHttpOperationAnalyzer.js.map +1 -1
  21. package/lib/analyses/ReflectHttpOperationParameterAnalyzer.d.ts +15 -0
  22. package/lib/analyses/ReflectHttpOperationParameterAnalyzer.js +215 -0
  23. package/lib/analyses/ReflectHttpOperationParameterAnalyzer.js.map +1 -0
  24. package/lib/analyses/ReflectHttpOperationResponseAnalyzer.d.ts +15 -0
  25. package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js +81 -0
  26. package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js.map +1 -0
  27. package/lib/analyses/ReflectMetadataAnalyzer.d.ts +1 -3
  28. package/lib/analyses/ReflectMetadataAnalyzer.js +0 -4
  29. package/lib/analyses/ReflectMetadataAnalyzer.js.map +1 -1
  30. package/lib/analyses/ReflectWebSocketOperationAnalyzer.d.ts +6 -2
  31. package/lib/analyses/ReflectWebSocketOperationAnalyzer.js +72 -48
  32. package/lib/analyses/ReflectWebSocketOperationAnalyzer.js.map +1 -1
  33. package/lib/analyses/TypedHttpRouteAnalyzer.d.ts +15 -0
  34. package/lib/analyses/TypedHttpRouteAnalyzer.js +111 -0
  35. package/lib/analyses/TypedHttpRouteAnalyzer.js.map +1 -0
  36. package/lib/analyses/TypedWebSocketRouteAnalyzer.d.ts +10 -0
  37. package/lib/analyses/TypedWebSocketRouteAnalyzer.js +9 -0
  38. package/lib/analyses/TypedWebSocketRouteAnalyzer.js.map +1 -0
  39. package/lib/decorators/OperationMetadata.d.ts +2 -0
  40. package/lib/decorators/OperationMetadata.js +10 -0
  41. package/lib/decorators/OperationMetadata.js.map +1 -0
  42. package/lib/executable/internal/NestiaConfigLoader.d.ts +1 -1
  43. package/lib/executable/internal/NestiaConfigLoader.js +33 -3
  44. package/lib/executable/internal/NestiaConfigLoader.js.map +1 -1
  45. package/lib/executable/internal/NestiaSdkCommand.js +1 -1
  46. package/lib/executable/internal/NestiaSdkCommand.js.map +1 -1
  47. package/lib/generates/CloneGenerator.d.ts +0 -5
  48. package/lib/generates/CloneGenerator.js +60 -60
  49. package/lib/generates/CloneGenerator.js.map +1 -1
  50. package/lib/generates/E2eGenerator.d.ts +2 -3
  51. package/lib/generates/E2eGenerator.js +9 -8
  52. package/lib/generates/E2eGenerator.js.map +1 -1
  53. package/lib/generates/OpenAiGenerator.d.ts +2 -4
  54. package/lib/generates/OpenAiGenerator.js +13 -3
  55. package/lib/generates/OpenAiGenerator.js.map +1 -1
  56. package/lib/generates/SdkGenerator.d.ts +4 -4
  57. package/lib/generates/SdkGenerator.js +63 -73
  58. package/lib/generates/SdkGenerator.js.map +1 -1
  59. package/lib/generates/SwaggerGenerator.d.ts +6 -18
  60. package/lib/generates/SwaggerGenerator.js +60 -235
  61. package/lib/generates/SwaggerGenerator.js.map +1 -1
  62. package/lib/generates/internal/E2eFileProgrammer.js +5 -9
  63. package/lib/generates/internal/E2eFileProgrammer.js.map +1 -1
  64. package/lib/generates/internal/SdkAliasCollection.d.ts +6 -4
  65. package/lib/generates/internal/SdkAliasCollection.js +33 -31
  66. package/lib/generates/internal/SdkAliasCollection.js.map +1 -1
  67. package/lib/generates/internal/SdkDistributionComposer.d.ts +4 -1
  68. package/lib/generates/internal/SdkDistributionComposer.js +6 -6
  69. package/lib/generates/internal/SdkDistributionComposer.js.map +1 -1
  70. package/lib/generates/internal/SdkFileProgrammer.d.ts +2 -4
  71. package/lib/generates/internal/SdkFileProgrammer.js +6 -6
  72. package/lib/generates/internal/SdkFileProgrammer.js.map +1 -1
  73. package/lib/generates/internal/SdkHttpCloneProgrammer.d.ts +0 -12
  74. package/lib/generates/internal/SdkHttpCloneProgrammer.js +142 -97
  75. package/lib/generates/internal/SdkHttpCloneProgrammer.js.map +1 -1
  76. package/lib/generates/internal/SdkHttpFunctionProgrammer.d.ts +4 -3
  77. package/lib/generates/internal/SdkHttpFunctionProgrammer.js +37 -59
  78. package/lib/generates/internal/SdkHttpFunctionProgrammer.js.map +1 -1
  79. package/lib/generates/internal/SdkHttpNamespaceProgrammer.d.ts +4 -3
  80. package/lib/generates/internal/SdkHttpNamespaceProgrammer.js +31 -48
  81. package/lib/generates/internal/SdkHttpNamespaceProgrammer.js.map +1 -1
  82. package/lib/generates/internal/SdkHttpRouteProgrammer.js +7 -3
  83. package/lib/generates/internal/SdkHttpRouteProgrammer.js.map +1 -1
  84. package/lib/generates/internal/SdkHttpSimulationProgrammer.d.ts +4 -3
  85. package/lib/generates/internal/SdkHttpSimulationProgrammer.js +7 -13
  86. package/lib/generates/internal/SdkHttpSimulationProgrammer.js.map +1 -1
  87. package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.d.ts +1 -2
  88. package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js +11 -16
  89. package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js.map +1 -1
  90. package/lib/generates/internal/SdkWebSocketRouteProgrammer.d.ts +1 -2
  91. package/lib/generates/internal/SdkWebSocketRouteProgrammer.js +7 -10
  92. package/lib/generates/internal/SdkWebSocketRouteProgrammer.js.map +1 -1
  93. package/lib/generates/internal/SwaggerDescriptionComposer.d.ts +23 -0
  94. package/lib/generates/internal/SwaggerDescriptionComposer.js +44 -0
  95. package/lib/generates/internal/SwaggerDescriptionComposer.js.map +1 -0
  96. package/lib/generates/internal/SwaggerOperationComposer.d.ts +12 -0
  97. package/lib/generates/internal/SwaggerOperationComposer.js +68 -0
  98. package/lib/generates/internal/SwaggerOperationComposer.js.map +1 -0
  99. package/lib/generates/internal/SwaggerOperationParameterComposer.d.ts +18 -0
  100. package/lib/generates/internal/SwaggerOperationParameterComposer.js +99 -0
  101. package/lib/generates/internal/SwaggerOperationParameterComposer.js.map +1 -0
  102. package/lib/generates/internal/SwaggerOperationResponseComposer.d.ts +9 -0
  103. package/lib/generates/internal/SwaggerOperationResponseComposer.js +91 -0
  104. package/lib/generates/internal/SwaggerOperationResponseComposer.js.map +1 -0
  105. package/lib/structures/INestiaProject.d.ts +5 -5
  106. package/lib/structures/INestiaSdkInput.d.ts +20 -0
  107. package/lib/structures/{ISwaggerError.js → INestiaSdkInput.js} +1 -1
  108. package/lib/structures/INestiaSdkInput.js.map +1 -0
  109. package/lib/structures/IReflectApplication.d.ts +6 -0
  110. package/lib/structures/IReflectApplication.js +3 -0
  111. package/lib/structures/IReflectApplication.js.map +1 -0
  112. package/lib/structures/IReflectController.d.ts +3 -5
  113. package/lib/structures/IReflectHttpOperation.d.ts +13 -65
  114. package/lib/structures/IReflectHttpOperationException.d.ts +14 -0
  115. package/lib/structures/IReflectHttpOperationException.js +3 -0
  116. package/lib/structures/IReflectHttpOperationException.js.map +1 -0
  117. package/lib/structures/IReflectHttpOperationParameter.d.ts +35 -0
  118. package/lib/structures/IReflectHttpOperationParameter.js +3 -0
  119. package/lib/structures/IReflectHttpOperationParameter.js.map +1 -0
  120. package/lib/structures/IReflectHttpOperationSuccess.d.ts +15 -0
  121. package/lib/structures/IReflectHttpOperationSuccess.js +3 -0
  122. package/lib/structures/IReflectHttpOperationSuccess.js.map +1 -0
  123. package/lib/structures/IReflectOperationError.d.ts +16 -0
  124. package/lib/structures/IReflectOperationError.js +23 -0
  125. package/lib/structures/IReflectOperationError.js.map +1 -0
  126. package/lib/structures/IReflectType.d.ts +4 -0
  127. package/lib/structures/{IErrorReport.js → IReflectType.js} +1 -1
  128. package/lib/structures/IReflectType.js.map +1 -0
  129. package/lib/structures/IReflectTypeImport.d.ts +4 -0
  130. package/lib/structures/{ISwaggerLazySchema.js → IReflectTypeImport.js} +1 -1
  131. package/lib/structures/IReflectTypeImport.js.map +1 -0
  132. package/lib/structures/IReflectWebSocketOperation.d.ts +8 -9
  133. package/lib/structures/IReflectWebSocketOperationParameter.d.ts +23 -0
  134. package/lib/structures/IReflectWebSocketOperationParameter.js +3 -0
  135. package/lib/structures/IReflectWebSocketOperationParameter.js.map +1 -0
  136. package/lib/structures/ITypedApplication.d.ts +7 -0
  137. package/lib/structures/{INormalizedInput.js → ITypedApplication.js} +1 -1
  138. package/lib/structures/ITypedApplication.js.map +1 -0
  139. package/lib/structures/ITypedHttpRoute.d.ts +14 -42
  140. package/lib/structures/ITypedHttpRouteException.d.ts +10 -0
  141. package/lib/structures/ITypedHttpRouteException.js +3 -0
  142. package/lib/structures/ITypedHttpRouteException.js.map +1 -0
  143. package/lib/structures/ITypedHttpRouteParameter.d.ts +31 -0
  144. package/lib/structures/ITypedHttpRouteParameter.js +3 -0
  145. package/lib/structures/ITypedHttpRouteParameter.js.map +1 -0
  146. package/lib/structures/ITypedHttpRouteSuccess.d.ts +19 -0
  147. package/lib/structures/{ISwaggerLazyProperty.js → ITypedHttpRouteSuccess.js} +1 -1
  148. package/lib/structures/ITypedHttpRouteSuccess.js.map +1 -0
  149. package/lib/structures/ITypedWebSocketRoute.d.ts +8 -44
  150. package/lib/structures/ITypedWebSocketRouteParameter.d.ts +2 -0
  151. package/lib/structures/ITypedWebSocketRouteParameter.js +3 -0
  152. package/lib/structures/ITypedWebSocketRouteParameter.js.map +1 -0
  153. package/lib/transform.d.ts +3 -0
  154. package/lib/transform.js +8 -0
  155. package/lib/transform.js.map +1 -0
  156. package/lib/transformers/IOperationMetadata.d.ts +36 -0
  157. package/lib/transformers/IOperationMetadata.js +3 -0
  158. package/lib/transformers/IOperationMetadata.js.map +1 -0
  159. package/lib/transformers/ISdkTransformerContext.d.ts +7 -0
  160. package/lib/transformers/ISdkTransformerContext.js +3 -0
  161. package/lib/transformers/ISdkTransformerContext.js.map +1 -0
  162. package/lib/transformers/SdkMetadataProgrammer.d.ts +11 -0
  163. package/lib/transformers/SdkMetadataProgrammer.js +159 -0
  164. package/lib/transformers/SdkMetadataProgrammer.js.map +1 -0
  165. package/lib/transformers/SdkTransformer.d.ts +4 -0
  166. package/lib/transformers/SdkTransformer.js +88 -0
  167. package/lib/transformers/SdkTransformer.js.map +1 -0
  168. package/lib/transformers/TextPlainValidator.d.ts +4 -0
  169. package/lib/transformers/TextPlainValidator.js +19 -0
  170. package/lib/transformers/TextPlainValidator.js.map +1 -0
  171. package/lib/utils/StringUtil.d.ts +1 -0
  172. package/lib/utils/StringUtil.js +1 -0
  173. package/lib/utils/StringUtil.js.map +1 -1
  174. package/package.json +8 -8
  175. package/src/NestiaSdkApplication.ts +173 -160
  176. package/src/analyses/ConfigAnalyzer.ts +50 -98
  177. package/src/analyses/ExceptionAnalyzer.ts +142 -142
  178. package/src/analyses/GenericAnalyzer.ts +3 -5
  179. package/src/analyses/ImportAnalyzer.ts +130 -115
  180. package/src/analyses/ReflectControllerAnalyzer.ts +63 -115
  181. package/src/analyses/ReflectHttpOperationAnalyzer.ts +142 -278
  182. package/src/analyses/ReflectHttpOperationParameterAnalyzer.ts +319 -0
  183. package/src/analyses/ReflectHttpOperationResponseAnalyzer.ts +117 -0
  184. package/src/analyses/ReflectMetadataAnalyzer.ts +1 -18
  185. package/src/analyses/ReflectWebSocketOperationAnalyzer.ts +143 -78
  186. package/src/analyses/TypedHttpRouteAnalyzer.ts +178 -0
  187. package/src/analyses/TypedWebSocketRouteAnalyzer.ts +18 -0
  188. package/src/decorators/OperationMetadata.ts +15 -0
  189. package/src/executable/internal/NestiaConfigLoader.ts +17 -3
  190. package/src/executable/internal/NestiaSdkCommand.ts +1 -4
  191. package/src/generates/CloneGenerator.ts +60 -59
  192. package/src/generates/E2eGenerator.ts +20 -21
  193. package/src/generates/OpenAiGenerator.ts +44 -45
  194. package/src/generates/SdkGenerator.ts +97 -125
  195. package/src/generates/SwaggerGenerator.ts +114 -416
  196. package/src/generates/internal/E2eFileProgrammer.ts +5 -14
  197. package/src/generates/internal/SdkAliasCollection.ts +33 -41
  198. package/src/generates/internal/SdkDistributionComposer.ts +9 -6
  199. package/src/generates/internal/SdkFileProgrammer.ts +11 -14
  200. package/src/generates/internal/SdkHttpCloneProgrammer.ts +142 -142
  201. package/src/generates/internal/SdkHttpFunctionProgrammer.ts +20 -47
  202. package/src/generates/internal/SdkHttpNamespaceProgrammer.ts +245 -275
  203. package/src/generates/internal/SdkHttpRouteProgrammer.ts +7 -7
  204. package/src/generates/internal/SdkHttpSimulationProgrammer.ts +11 -23
  205. package/src/generates/internal/SdkWebSocketNamespaceProgrammer.ts +197 -233
  206. package/src/generates/internal/SdkWebSocketRouteProgrammer.ts +5 -15
  207. package/src/generates/internal/{SwaggerDescriptionGenerator.ts → SwaggerDescriptionComposer.ts} +25 -5
  208. package/src/generates/internal/SwaggerOperationComposer.ts +90 -0
  209. package/src/generates/internal/SwaggerOperationParameterComposer.ts +173 -0
  210. package/src/generates/internal/SwaggerOperationResponseComposer.ts +110 -0
  211. package/src/structures/INestiaProject.ts +5 -5
  212. package/src/structures/INestiaSdkInput.ts +25 -0
  213. package/src/structures/IReflectApplication.ts +8 -0
  214. package/src/structures/IReflectController.ts +3 -5
  215. package/src/structures/IReflectHttpOperation.ts +14 -76
  216. package/src/structures/IReflectHttpOperationException.ts +19 -0
  217. package/src/structures/IReflectHttpOperationParameter.ts +81 -0
  218. package/src/structures/IReflectHttpOperationSuccess.ts +22 -0
  219. package/src/structures/IReflectOperationError.ts +26 -0
  220. package/src/structures/IReflectType.ts +4 -0
  221. package/src/structures/IReflectTypeImport.ts +4 -0
  222. package/src/structures/IReflectWebSocketOperation.ts +9 -9
  223. package/src/structures/IReflectWebSocketOperationParameter.ts +38 -0
  224. package/src/structures/ITypedApplication.ts +8 -0
  225. package/src/structures/ITypedHttpRoute.ts +15 -45
  226. package/src/structures/ITypedHttpRouteException.ts +15 -0
  227. package/src/structures/ITypedHttpRouteParameter.ts +41 -0
  228. package/src/structures/ITypedHttpRouteSuccess.ts +22 -0
  229. package/src/structures/ITypedWebSocketRoute.ts +8 -56
  230. package/src/structures/ITypedWebSocketRouteParameter.ts +3 -0
  231. package/src/transform.ts +9 -0
  232. package/src/transformers/IOperationMetadata.ts +38 -0
  233. package/src/transformers/ISdkTransformerContext.ts +8 -0
  234. package/src/transformers/SdkMetadataProgrammer.ts +227 -0
  235. package/src/transformers/SdkTransformer.ts +168 -0
  236. package/src/transformers/TextPlainValidator.ts +17 -0
  237. package/src/utils/StringUtil.ts +3 -0
  238. package/lib/analyses/TypedControllerAnalyzer.d.ts +0 -8
  239. package/lib/analyses/TypedControllerAnalyzer.js +0 -77
  240. package/lib/analyses/TypedControllerAnalyzer.js.map +0 -1
  241. package/lib/analyses/TypedHttpOperationAnalyzer.d.ts +0 -15
  242. package/lib/analyses/TypedHttpOperationAnalyzer.js +0 -263
  243. package/lib/analyses/TypedHttpOperationAnalyzer.js.map +0 -1
  244. package/lib/analyses/TypedWebSocketOperationAnalyzer.d.ts +0 -15
  245. package/lib/analyses/TypedWebSocketOperationAnalyzer.js +0 -226
  246. package/lib/analyses/TypedWebSocketOperationAnalyzer.js.map +0 -1
  247. package/lib/generates/internal/SwaggerDescriptionGenerator.d.ts +0 -14
  248. package/lib/generates/internal/SwaggerDescriptionGenerator.js +0 -33
  249. package/lib/generates/internal/SwaggerDescriptionGenerator.js.map +0 -1
  250. package/lib/generates/internal/SwaggerSchemaGenerator.d.ts +0 -21
  251. package/lib/generates/internal/SwaggerSchemaGenerator.js +0 -289
  252. package/lib/generates/internal/SwaggerSchemaGenerator.js.map +0 -1
  253. package/lib/generates/internal/SwaggerSchemaValidator.d.ts +0 -7
  254. package/lib/generates/internal/SwaggerSchemaValidator.js +0 -191
  255. package/lib/generates/internal/SwaggerSchemaValidator.js.map +0 -1
  256. package/lib/structures/IErrorReport.d.ts +0 -6
  257. package/lib/structures/IErrorReport.js.map +0 -1
  258. package/lib/structures/INormalizedInput.d.ts +0 -19
  259. package/lib/structures/INormalizedInput.js.map +0 -1
  260. package/lib/structures/ISwaggerError.d.ts +0 -6
  261. package/lib/structures/ISwaggerError.js.map +0 -1
  262. package/lib/structures/ISwaggerLazyProperty.d.ts +0 -6
  263. package/lib/structures/ISwaggerLazyProperty.js.map +0 -1
  264. package/lib/structures/ISwaggerLazySchema.d.ts +0 -6
  265. package/lib/structures/ISwaggerLazySchema.js.map +0 -1
  266. package/lib/structures/ITypeTuple.d.ts +0 -5
  267. package/lib/structures/ITypeTuple.js +0 -3
  268. package/lib/structures/ITypeTuple.js.map +0 -1
  269. package/src/analyses/TypedControllerAnalyzer.ts +0 -92
  270. package/src/analyses/TypedHttpOperationAnalyzer.ts +0 -365
  271. package/src/analyses/TypedWebSocketOperationAnalyzer.ts +0 -375
  272. package/src/generates/internal/SwaggerSchemaGenerator.ts +0 -473
  273. package/src/generates/internal/SwaggerSchemaValidator.ts +0 -206
  274. package/src/structures/IErrorReport.ts +0 -6
  275. package/src/structures/INormalizedInput.ts +0 -20
  276. package/src/structures/ISwaggerError.ts +0 -8
  277. package/src/structures/ISwaggerLazyProperty.ts +0 -7
  278. package/src/structures/ISwaggerLazySchema.ts +0 -7
  279. package/src/structures/ITypeTuple.ts +0 -6
@@ -1,16 +0,0 @@
1
- import ts from "typescript";
2
- import { INestiaProject } from "../structures/INestiaProject";
3
- import { IReflectController } from "../structures/IReflectController";
4
- import { IReflectHttpOperation } from "../structures/IReflectHttpOperation";
5
- import { ITypedHttpRoute } from "../structures/ITypedHttpRoute";
6
- import { GenericAnalyzer } from "./GenericAnalyzer";
7
- import { ImportAnalyzer } from "./ImportAnalyzer";
8
- export declare namespace ExceptionAnalyzer {
9
- const analyze: (project: INestiaProject) => (props: {
10
- generics: GenericAnalyzer.Dictionary;
11
- imports: ImportAnalyzer.Dictionary;
12
- controller: IReflectController;
13
- operation: IReflectHttpOperation;
14
- declaration: ts.MethodDeclaration;
15
- }) => Record<number | "2XX" | "3XX" | "4XX" | "5XX", ITypedHttpRoute.IOutput>;
16
- }
@@ -1,107 +1,144 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ExceptionAnalyzer = void 0;
7
- const path_1 = __importDefault(require("path"));
8
- const typescript_1 = __importDefault(require("typescript"));
9
- const MetadataCollection_1 = require("typia/lib/factories/MetadataCollection");
10
- const MetadataFactory_1 = require("typia/lib/factories/MetadataFactory");
11
- const ImportAnalyzer_1 = require("./ImportAnalyzer");
12
- var ExceptionAnalyzer;
13
- (function (ExceptionAnalyzer) {
14
- ExceptionAnalyzer.analyze = (project) => (props) => {
15
- var _a;
16
- const output = {};
17
- for (const decorator of (_a = props.declaration.modifiers) !== null && _a !== void 0 ? _a : [])
18
- if (typescript_1.default.isDecorator(decorator))
19
- analyzeTyped(project)(Object.assign(Object.assign({}, props), { output,
20
- decorator }));
21
- return output;
22
- };
23
- const analyzeTyped = (project) => (props) => {
24
- var _a, _b;
25
- // CHECK DECORATOR
26
- if (!typescript_1.default.isCallExpression(props.decorator.expression))
27
- return false;
28
- else if (((_a = props.decorator.expression.typeArguments) !== null && _a !== void 0 ? _a : []).length !== 1)
29
- return false;
30
- // CHECK SIGNATURE
31
- const signature = project.checker.getResolvedSignature(props.decorator.expression);
32
- if (!signature || !signature.declaration)
33
- return false;
34
- else if (path_1.default
35
- .resolve(signature.declaration.getSourceFile().fileName)
36
- .indexOf(TYPED_EXCEPTION_PATH) === -1)
37
- return false;
38
- // GET TYPE INFO
39
- const status = getStatus(project.checker)((_b = props.decorator.expression.arguments[0]) !== null && _b !== void 0 ? _b : null);
40
- if (status === null)
41
- return false;
42
- const node = props.decorator.expression.typeArguments[0];
43
- const type = project.checker.getTypeFromTypeNode(node);
44
- if (type.isTypeParameter()) {
45
- project.errors.push({
46
- file: props.controller.file,
47
- controller: props.controller.name,
48
- function: props.operation.name,
49
- message: "TypedException() without generic argument specification.",
50
- });
51
- return false;
52
- }
53
- const tuple = ImportAnalyzer_1.ImportAnalyzer.analyze(project.checker)({
54
- generics: props.generics,
55
- imports: props.imports,
56
- type,
57
- });
58
- if (tuple === null) {
59
- project.errors.push({
60
- file: props.controller.file,
61
- controller: props.controller.name,
62
- function: props.operation.name,
63
- message: `TypeException() with unknown type on ${status} status.`,
64
- });
65
- return false;
66
- }
67
- // DO ASSIGN
68
- const matched = Object.entries(props.operation.exceptions)
69
- .filter(([key]) => status === key)
70
- .map(([_key, value]) => value);
71
- for (const m of matched)
72
- props.output[m.status] = {
73
- type: tuple.type,
74
- typeName: tuple.typeName,
75
- contentType: "application/json",
76
- description: m.description,
77
- };
78
- return true;
79
- };
80
- const getStatus = (checker) => (expression) => {
81
- if (expression === null)
82
- return null;
83
- const type = checker.getTypeAtLocation(expression);
84
- const result = MetadataFactory_1.MetadataFactory.analyze(checker)({
85
- escape: true,
86
- constant: true,
87
- absorb: true,
88
- })(new MetadataCollection_1.MetadataCollection())(type);
89
- if (false === result.success)
90
- return null;
91
- const meta = result.data;
92
- if (meta.constants.length === 1)
93
- return meta.constants[0].values[0].value.toString();
94
- else if (meta.escaped && meta.escaped.returns.constants.length === 1)
95
- return meta.escaped.returns.constants[0].values[0].value.toString();
96
- else if (typescript_1.default.isStringLiteral(expression))
97
- return expression.text;
98
- else if (typescript_1.default.isNumericLiteral(expression)) {
99
- const value = Number(expression.text.split("_").join(""));
100
- if (false === isNaN(value))
101
- return value.toString();
102
- }
103
- return null;
104
- };
105
- })(ExceptionAnalyzer || (exports.ExceptionAnalyzer = ExceptionAnalyzer = {}));
106
- const TYPED_EXCEPTION_PATH = path_1.default.join("node_modules", "@nestia", "core", "lib", "decorators", "TypedException.d.ts");
2
+ // import path from "path";
3
+ // import ts from "typescript";
4
+ // import { MetadataCollection } from "typia/lib/factories/MetadataCollection";
5
+ // import { MetadataFactory } from "typia/lib/factories/MetadataFactory";
6
+ // import { Metadata } from "typia/lib/schemas/metadata/Metadata";
7
+ // import { INestiaProject } from "../structures/INestiaProject";
8
+ // import { IReflectController } from "../structures/IReflectController";
9
+ // import { IReflectHttpOperation } from "../structures/IReflectHttpOperation";
10
+ // import { ITypeTuple } from "../structures/ITypeTuple";
11
+ // import { ITypedHttpRoute } from "../structures/ITypedHttpRoute";
12
+ // import { GenericAnalyzer } from "./GenericAnalyzer";
13
+ // import { ImportAnalyzer } from "./ImportAnalyzer";
14
+ // export namespace ExceptionAnalyzer {
15
+ // export const analyze =
16
+ // (project: INestiaProject) =>
17
+ // (props: {
18
+ // generics: GenericAnalyzer.Dictionary;
19
+ // imports: ImportAnalyzer.Dictionary;
20
+ // controller: IReflectController;
21
+ // operation: IReflectHttpOperation;
22
+ // declaration: ts.MethodDeclaration;
23
+ // }): Record<
24
+ // number | "2XX" | "3XX" | "4XX" | "5XX",
25
+ // ITypedHttpRoute.IOutput
26
+ // > => {
27
+ // const output: Record<
28
+ // number | "2XX" | "3XX" | "4XX" | "5XX",
29
+ // ITypedHttpRoute.IOutput
30
+ // > = {} as any;
31
+ // for (const decorator of props.declaration.modifiers ?? [])
32
+ // if (ts.isDecorator(decorator))
33
+ // analyzeTyped(project)({
34
+ // ...props,
35
+ // output,
36
+ // decorator,
37
+ // });
38
+ // return output;
39
+ // };
40
+ // const analyzeTyped =
41
+ // (project: INestiaProject) =>
42
+ // (props: {
43
+ // generics: GenericAnalyzer.Dictionary;
44
+ // imports: ImportAnalyzer.Dictionary;
45
+ // controller: IReflectController;
46
+ // operation: IReflectHttpOperation;
47
+ // output: Record<
48
+ // number | "2XX" | "3XX" | "4XX" | "5XX",
49
+ // ITypedHttpRoute.IOutput
50
+ // >;
51
+ // decorator: ts.Decorator;
52
+ // }): boolean => {
53
+ // // CHECK DECORATOR
54
+ // if (!ts.isCallExpression(props.decorator.expression)) return false;
55
+ // else if ((props.decorator.expression.typeArguments ?? []).length !== 1)
56
+ // return false;
57
+ // // CHECK SIGNATURE
58
+ // const signature: ts.Signature | undefined =
59
+ // project.checker.getResolvedSignature(props.decorator.expression);
60
+ // if (!signature || !signature.declaration) return false;
61
+ // else if (
62
+ // path
63
+ // .resolve(signature.declaration.getSourceFile().fileName)
64
+ // .indexOf(TYPED_EXCEPTION_PATH) === -1
65
+ // )
66
+ // return false;
67
+ // // GET TYPE INFO
68
+ // const status: string | null = getStatus(project.checker)(
69
+ // props.decorator.expression.arguments[0] ?? null,
70
+ // );
71
+ // if (status === null) return false;
72
+ // const node: ts.TypeNode = props.decorator.expression.typeArguments![0];
73
+ // const type: ts.Type = project.checker.getTypeFromTypeNode(node);
74
+ // if (type.isTypeParameter()) {
75
+ // project.errors.push({
76
+ // file: props.controller.file,
77
+ // controller: props.controller.name,
78
+ // function: props.operation.name,
79
+ // message: "TypedException() without generic argument specification.",
80
+ // });
81
+ // return false;
82
+ // }
83
+ // const tuple: ITypeTuple | null = ImportAnalyzer.analyze(project.checker)({
84
+ // generics: props.generics,
85
+ // imports: props.imports,
86
+ // type,
87
+ // });
88
+ // if (tuple === null) {
89
+ // project.errors.push({
90
+ // file: props.controller.file,
91
+ // controller: props.controller.name,
92
+ // function: props.operation.name,
93
+ // message: `TypeException() with unknown type on ${status} status.`,
94
+ // });
95
+ // return false;
96
+ // }
97
+ // // DO ASSIGN
98
+ // const matched: IReflectHttpOperation.IException[] = Object.entries(
99
+ // props.operation.exceptions,
100
+ // )
101
+ // .filter(([key]) => status === key)
102
+ // .map(([_key, value]) => value);
103
+ // for (const m of matched)
104
+ // props.output[m.status] = {
105
+ // type: tuple.type,
106
+ // typeName: tuple.typeName,
107
+ // contentType: "application/json",
108
+ // description: m.description,
109
+ // };
110
+ // return true;
111
+ // };
112
+ // const getStatus =
113
+ // (checker: ts.TypeChecker) =>
114
+ // (expression: ts.Expression | null): string | null => {
115
+ // if (expression === null) return null;
116
+ // const type: ts.Type = checker.getTypeAtLocation(expression);
117
+ // const result = MetadataFactory.analyze(checker)({
118
+ // escape: true,
119
+ // constant: true,
120
+ // absorb: true,
121
+ // })(new MetadataCollection())(type);
122
+ // if (false === result.success) return null;
123
+ // const meta: Metadata = result.data;
124
+ // if (meta.constants.length === 1)
125
+ // return meta.constants[0].values[0].value.toString();
126
+ // else if (meta.escaped && meta.escaped.returns.constants.length === 1)
127
+ // return meta.escaped.returns.constants[0].values[0].value.toString();
128
+ // else if (ts.isStringLiteral(expression)) return expression.text;
129
+ // else if (ts.isNumericLiteral(expression)) {
130
+ // const value: number = Number(expression.text.split("_").join(""));
131
+ // if (false === isNaN(value)) return value.toString();
132
+ // }
133
+ // return null;
134
+ // };
135
+ // }
136
+ // const TYPED_EXCEPTION_PATH = path.join(
137
+ // "node_modules",
138
+ // "@nestia",
139
+ // "core",
140
+ // "lib",
141
+ // "decorators",
142
+ // "TypedException.d.ts",
143
+ // );
107
144
  //# sourceMappingURL=ExceptionAnalyzer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExceptionAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ExceptionAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExceptionAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ExceptionAnalyzer.ts"],"names":[],"mappings":";AAAA,2BAA2B;AAC3B,+BAA+B;AAC/B,+EAA+E;AAC/E,yEAAyE;AACzE,kEAAkE;AAElE,iEAAiE;AACjE,yEAAyE;AACzE,+EAA+E;AAC/E,yDAAyD;AACzD,mEAAmE;AACnE,uDAAuD;AACvD,qDAAqD;AAErD,uCAAuC;AACvC,2BAA2B;AAC3B,mCAAmC;AACnC,gBAAgB;AAChB,8CAA8C;AAC9C,4CAA4C;AAC5C,wCAAwC;AACxC,0CAA0C;AAC1C,2CAA2C;AAC3C,kBAAkB;AAClB,gDAAgD;AAChD,gCAAgC;AAChC,aAAa;AACb,8BAA8B;AAC9B,kDAAkD;AAClD,kCAAkC;AAClC,uBAAuB;AACvB,mEAAmE;AACnE,yCAAyC;AACzC,oCAAoC;AACpC,wBAAwB;AACxB,sBAAsB;AACtB,yBAAyB;AACzB,gBAAgB;AAChB,uBAAuB;AACvB,SAAS;AAET,yBAAyB;AACzB,mCAAmC;AACnC,gBAAgB;AAChB,8CAA8C;AAC9C,4CAA4C;AAC5C,wCAAwC;AACxC,0CAA0C;AAC1C,wBAAwB;AACxB,kDAAkD;AAClD,kCAAkC;AAClC,WAAW;AACX,iCAAiC;AACjC,uBAAuB;AACvB,2BAA2B;AAC3B,4EAA4E;AAC5E,gFAAgF;AAChF,wBAAwB;AAExB,2BAA2B;AAC3B,oDAAoD;AACpD,4EAA4E;AAC5E,gEAAgE;AAChE,kBAAkB;AAClB,eAAe;AACf,qEAAqE;AACrE,kDAAkD;AAClD,UAAU;AACV,wBAAwB;AAExB,yBAAyB;AACzB,kEAAkE;AAClE,2DAA2D;AAC3D,WAAW;AACX,2CAA2C;AAE3C,gFAAgF;AAChF,yEAAyE;AACzE,sCAAsC;AACtC,gCAAgC;AAChC,yCAAyC;AACzC,+CAA+C;AAC/C,4CAA4C;AAC5C,iFAAiF;AACjF,cAAc;AACd,wBAAwB;AACxB,UAAU;AAEV,mFAAmF;AACnF,oCAAoC;AACpC,kCAAkC;AAClC,gBAAgB;AAChB,YAAY;AACZ,8BAA8B;AAC9B,gCAAgC;AAChC,yCAAyC;AACzC,+CAA+C;AAC/C,4CAA4C;AAC5C,+EAA+E;AAC/E,cAAc;AACd,wBAAwB;AACxB,UAAU;AAEV,qBAAqB;AACrB,4EAA4E;AAC5E,sCAAsC;AACtC,UAAU;AACV,6CAA6C;AAC7C,0CAA0C;AAC1C,iCAAiC;AACjC,qCAAqC;AACrC,8BAA8B;AAC9B,sCAAsC;AACtC,6CAA6C;AAC7C,wCAAwC;AACxC,aAAa;AACb,qBAAqB;AACrB,SAAS;AAET,sBAAsB;AACtB,mCAAmC;AACnC,6DAA6D;AAC7D,8CAA8C;AAE9C,qEAAqE;AACrE,0DAA0D;AAC1D,wBAAwB;AACxB,0BAA0B;AAC1B,wBAAwB;AACxB,4CAA4C;AAC5C,mDAAmD;AAEnD,4CAA4C;AAC5C,yCAAyC;AACzC,+DAA+D;AAC/D,8EAA8E;AAC9E,+EAA+E;AAC/E,yEAAyE;AACzE,oDAAoD;AACpD,6EAA6E;AAC7E,+DAA+D;AAC/D,UAAU;AACV,qBAAqB;AACrB,SAAS;AACT,IAAI;AAEJ,0CAA0C;AAC1C,oBAAoB;AACpB,eAAe;AACf,YAAY;AACZ,WAAW;AACX,kBAAkB;AAClB,2BAA2B;AAC3B,KAAK"}
@@ -1,5 +1,4 @@
1
1
  import ts from "typescript";
2
2
  export declare namespace GenericAnalyzer {
3
- type Dictionary = WeakMap<ts.Type, ts.Type>;
4
- function analyze(checker: ts.TypeChecker, classNode: ts.ClassDeclaration): Dictionary;
3
+ function analyze(checker: ts.TypeChecker, classNode: ts.ClassDeclaration): WeakMap<ts.Type, ts.Type>;
5
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GenericAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/GenericAnalyzer.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA4B;AAE5B,IAAiB,eAAe,CAgD/B;AAhDD,WAAiB,eAAe;IAG9B,SAAgB,OAAO,CACrB,OAAuB,EACvB,SAA8B;QAE9B,MAAM,IAAI,GAAe,IAAI,OAAO,EAAE,CAAC;QACvC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAPe,uBAAO,UAOtB,CAAA;IAED,SAAS,OAAO,CACd,OAAuB,EACvB,IAAgB,EAChB,SAA8B;;QAE9B,IAAI,SAAS,CAAC,eAAe,KAAK,SAAS;YAAE,OAAO;QAEpD,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,eAAe;YAC9C,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnC,gBAAgB;gBAChB,MAAM,UAAU,GAAY,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACxE,MAAM,SAAS,GACb,MAAA,UAAU,CAAC,MAAM,CAAC,eAAe,EAAE,0CAAG,CAAC,CAAC,CAAC;gBAE3C,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,oBAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC;oBAC9D,SAAS;gBAEX,mBAAmB;gBACnB,MAAM,MAAM,GAA+B,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC;gBACrE,MAAM,UAAU,GACd,SAAS,CAAC,cAAc,IAAI,EAAE,CAAC;gBAEjC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;oBAClC,MAAM,SAAS,GAAY,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBAC5D,MAAM,SAAS,GACb,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS;wBACzB,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC1C,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAQ,CAAC,CAAC;oBAEhD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;gBAEH,wBAAwB;gBACxB,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACpC,CAAC;IACL,CAAC;AACH,CAAC,EAhDgB,eAAe,+BAAf,eAAe,QAgD/B"}
1
+ {"version":3,"file":"GenericAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/GenericAnalyzer.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA4B;AAE5B,IAAiB,eAAe,CA8C/B;AA9CD,WAAiB,eAAe;IAC9B,SAAgB,OAAO,CACrB,OAAuB,EACvB,SAA8B;QAE9B,MAAM,IAAI,GAA8B,IAAI,OAAO,EAAE,CAAC;QACtD,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAPe,uBAAO,UAOtB,CAAA;IAED,SAAS,OAAO,CACd,OAAuB,EACvB,IAA+B,EAC/B,SAA8B;;QAE9B,IAAI,SAAS,CAAC,eAAe,KAAK,SAAS;YAAE,OAAO;QAEpD,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,eAAe;YAC9C,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnC,gBAAgB;gBAChB,MAAM,UAAU,GAAY,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACxE,MAAM,SAAS,GACb,MAAA,UAAU,CAAC,MAAM,CAAC,eAAe,EAAE,0CAAG,CAAC,CAAC,CAAC;gBAE3C,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,oBAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC;oBAC9D,SAAS;gBAEX,mBAAmB;gBACnB,MAAM,MAAM,GAA+B,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC;gBACrE,MAAM,UAAU,GACd,SAAS,CAAC,cAAc,IAAI,EAAE,CAAC;gBAEjC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;oBAClC,MAAM,SAAS,GAAY,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBAC5D,MAAM,SAAS,GACb,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS;wBACzB,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC1C,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAQ,CAAC,CAAC;oBAEhD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;gBAEH,wBAAwB;gBACxB,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACpC,CAAC;IACL,CAAC;AACH,CAAC,EA9CgB,eAAe,+BAAf,eAAe,QA8C/B"}
@@ -1,16 +1,11 @@
1
- import { HashMap, HashSet } from "tstl";
2
1
  import ts from "typescript";
3
- import { ITypeTuple } from "../structures/ITypeTuple";
4
- import { GenericAnalyzer } from "./GenericAnalyzer";
2
+ import { IReflectType } from "../structures/IReflectType";
3
+ import { IReflectTypeImport } from "../structures/IReflectTypeImport";
5
4
  export declare namespace ImportAnalyzer {
6
5
  interface IOutput {
7
- features: [string, string[]][];
8
- alias: string;
6
+ imports: IReflectTypeImport[];
7
+ type: IReflectType | null;
9
8
  }
10
- type Dictionary = HashMap<string, HashSet<string>>;
11
- const analyze: (checker: ts.TypeChecker) => (props: {
12
- generics: GenericAnalyzer.Dictionary;
13
- imports: Dictionary;
14
- type: ts.Type;
15
- }) => ITypeTuple | null;
9
+ const analyze: (checker: ts.TypeChecker, generics: WeakMap<ts.Type, ts.Type>, type: ts.Type) => IOutput;
10
+ const unique: (imports: IReflectTypeImport[]) => IReflectTypeImport[];
16
11
  }
@@ -4,46 +4,65 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ImportAnalyzer = void 0;
7
- const tstl_1 = require("tstl");
8
7
  const typescript_1 = __importDefault(require("typescript"));
8
+ const MapUtil_1 = require("../utils/MapUtil");
9
9
  var ImportAnalyzer;
10
10
  (function (ImportAnalyzer) {
11
- ImportAnalyzer.analyze = (checker) => (props) => {
12
- const type = get_type(checker)(props.type);
13
- explore_escaped_name(checker)(Object.assign(Object.assign({}, props), { type }));
11
+ ImportAnalyzer.analyze = (checker, generics, type) => {
12
+ const imports = new Map();
14
13
  try {
14
+ type = escape(checker, type);
15
15
  return {
16
- type,
17
- typeName: explore_escaped_name(checker)(Object.assign(Object.assign({}, props), { type })),
16
+ type: explore({
17
+ checker,
18
+ generics,
19
+ imports,
20
+ type,
21
+ }),
22
+ imports: [...imports].map(([file, instances]) => ({
23
+ file,
24
+ instances: Array.from(instances),
25
+ })),
18
26
  };
19
27
  }
20
28
  catch (_a) {
21
- return null;
29
+ return {
30
+ imports: [],
31
+ type: null,
32
+ };
22
33
  }
23
34
  };
24
- /* ---------------------------------------------------------
25
- TYPE
26
- --------------------------------------------------------- */
27
- const get_type = (checker) => (type) => {
28
- const symbol = type.getSymbol();
29
- return symbol && get_name(symbol) === "Promise"
30
- ? escape_promise(checker)(type)
31
- : type;
35
+ ImportAnalyzer.unique = (imports) => {
36
+ const map = new Map();
37
+ imports.forEach(({ file, instances }) => {
38
+ const set = MapUtil_1.MapUtil.take(map, file, () => new Set());
39
+ instances.forEach((instance) => set.add(instance));
40
+ });
41
+ return [...map].map(([file, instances]) => ({
42
+ file,
43
+ instances: Array.from(instances),
44
+ }));
32
45
  };
33
- const escape_promise = (checker) => (type) => {
34
- const generic = checker.getTypeArguments(type);
35
- if (generic.length !== 1)
36
- throw new Error("Error on ImportAnalyzer.analyze(): invalid promise type.");
37
- return generic[0];
46
+ /* ---------------------------------------------------------
47
+ TYPE
48
+ --------------------------------------------------------- */
49
+ const escape = (checker, type) => {
50
+ if (type.symbol && getNameOfSymbol(type.symbol) === "Promise") {
51
+ const generic = checker.getTypeArguments(type);
52
+ if (generic.length !== 1)
53
+ throw new Error("Error on ImportAnalyzer.analyze(): invalid promise type.");
54
+ type = generic[0];
55
+ }
56
+ return type;
38
57
  };
39
- const get_name = (symbol) => {
58
+ const getNameOfSymbol = (symbol) => {
40
59
  var _a, _b;
41
- return explore_name(symbol.escapedName.toString(), (_b = (_a = symbol.getDeclarations()) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.parent);
60
+ return exploreName(symbol.escapedName.toString(), (_b = (_a = symbol.getDeclarations()) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.parent);
42
61
  };
43
62
  /* ---------------------------------------------------------
44
- ESCAPED TEXT WITH IMPORT STATEMENTS
45
- --------------------------------------------------------- */
46
- const explore_escaped_name = (checker) => (props) => {
63
+ ESCAPED TEXT WITH IMPORT STATEMENTS
64
+ --------------------------------------------------------- */
65
+ const explore = (props) => {
47
66
  var _a, _b, _c, _d;
48
67
  //----
49
68
  // CONDITIONAL BRANCHES
@@ -53,42 +72,51 @@ var ImportAnalyzer;
53
72
  while (props.generics.has(type) === true)
54
73
  type = props.generics.get(type);
55
74
  // PRIMITIVE
56
- const symbol = (_a = type.aliasSymbol) !== null && _a !== void 0 ? _a : type.getSymbol();
75
+ const symbol = (_a = type.aliasSymbol) !== null && _a !== void 0 ? _a : type.symbol;
57
76
  // UNION OR INTERSECT
58
77
  if (type.aliasSymbol === undefined && type.isUnionOrIntersection()) {
59
78
  const joiner = type.isIntersection() ? " & " : " | ";
60
- return type.types
61
- .map((child) => explore_escaped_name(checker)(Object.assign(Object.assign({}, props), { type: child })))
62
- .join(joiner);
79
+ return {
80
+ name: type.types
81
+ .map((child) => explore(Object.assign(Object.assign({}, props), { type: child })))
82
+ .map(getEscapedText)
83
+ .join(joiner),
84
+ };
63
85
  }
64
86
  // NO SYMBOL
65
87
  else if (symbol === undefined)
66
- return checker.typeToString(type, undefined, typescript_1.default.TypeFormatFlags.NoTruncation);
88
+ return {
89
+ name: props.checker.typeToString(type, undefined, typescript_1.default.TypeFormatFlags.NoTruncation),
90
+ };
67
91
  //----
68
92
  // SPECIALIZATION
69
93
  //----
70
- const name = get_name(symbol);
94
+ const name = getNameOfSymbol(symbol);
71
95
  const sourceFile = (_c = (_b = symbol.declarations) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.getSourceFile();
72
96
  if (sourceFile === undefined)
73
- return name;
97
+ return { name };
74
98
  else if (sourceFile.fileName.indexOf("typescript/lib") === -1) {
75
- const set = props.imports.take(sourceFile.fileName, () => new tstl_1.HashSet());
76
- set.insert(name.split(".")[0]);
99
+ const set = MapUtil_1.MapUtil.take(props.imports, sourceFile.fileName, () => new Set());
100
+ set.add(name.split(".")[0]);
77
101
  }
78
102
  // CHECK GENERIC
79
103
  const generic = type.aliasSymbol
80
104
  ? (_d = type.aliasTypeArguments) !== null && _d !== void 0 ? _d : []
81
- : checker.getTypeArguments(type);
105
+ : props.checker.getTypeArguments(type);
82
106
  return generic.length
83
107
  ? name === "Promise"
84
- ? explore_escaped_name(checker)(Object.assign(Object.assign({}, props), { type: generic[0] }))
85
- : `${name}<${generic
86
- .map((child) => explore_escaped_name(checker)(Object.assign(Object.assign({}, props), { type: child })))
87
- .join(", ")}>`
88
- : name;
108
+ ? explore(Object.assign(Object.assign({}, props), { type: generic[0] }))
109
+ : {
110
+ name,
111
+ typeArguments: generic.map((child) => explore(Object.assign(Object.assign({}, props), { type: child }))),
112
+ }
113
+ : { name };
89
114
  };
90
- const explore_name = (name, decl) => decl && typescript_1.default.isModuleBlock(decl)
91
- ? explore_name(`${decl.parent.name.getFullText().trim()}.${name}`, decl.parent.parent)
115
+ const exploreName = (name, decl) => decl && typescript_1.default.isModuleBlock(decl)
116
+ ? exploreName(`${decl.parent.name.getFullText().trim()}.${name}`, decl.parent.parent)
92
117
  : name;
118
+ const getEscapedText = (type) => type.typeArguments
119
+ ? `${type.name}<${type.typeArguments.map(getEscapedText).join(", ")}>`
120
+ : type.name;
93
121
  })(ImportAnalyzer || (exports.ImportAnalyzer = ImportAnalyzer = {}));
94
122
  //# sourceMappingURL=ImportAnalyzer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ImportAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ImportAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImportAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ImportAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  import { INestiaProject } from "../structures/INestiaProject";
2
+ import { INestiaSdkInput } from "../structures/INestiaSdkInput";
2
3
  import { IReflectController } from "../structures/IReflectController";
3
4
  export declare namespace ReflectControllerAnalyzer {
4
- const analyze: (project: INestiaProject) => (unique: WeakSet<any>, file: string, prefixes: string[], target?: Function) => Promise<IReflectController[]>;
5
+ interface IProps {
6
+ project: INestiaProject;
7
+ controller: INestiaSdkInput.IController;
8
+ unique: WeakSet<Function>;
9
+ }
10
+ const analyze: (props: IProps) => IReflectController | null;
5
11
  }