@nestia/sdk 11.2.1 → 12.0.0-dev.20260521.1

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 (277) hide show
  1. package/assets/bundle/distribute/package.json +1 -1
  2. package/lib/NestiaSdkApplication.js +5 -4
  3. package/lib/NestiaSdkApplication.js.map +1 -1
  4. package/lib/NestiaSwaggerComposer.js +2 -2
  5. package/lib/NestiaSwaggerComposer.js.map +1 -1
  6. package/lib/analyses/AccessorAnalyzer.js.map +1 -1
  7. package/lib/analyses/ConfigAnalyzer.js +133 -7
  8. package/lib/analyses/ConfigAnalyzer.js.map +1 -1
  9. package/lib/analyses/ImportAnalyzer.d.ts +9 -2
  10. package/lib/analyses/ImportAnalyzer.js +13 -50
  11. package/lib/analyses/ImportAnalyzer.js.map +1 -1
  12. package/lib/analyses/PathAnalyzer.js.map +1 -1
  13. package/lib/analyses/ReflectControllerAnalyzer.js.map +1 -1
  14. package/lib/analyses/ReflectHttpOperationAnalyzer.d.ts +1 -1
  15. package/lib/analyses/ReflectHttpOperationAnalyzer.js +5 -4
  16. package/lib/analyses/ReflectHttpOperationAnalyzer.js.map +1 -1
  17. package/lib/analyses/ReflectHttpOperationExceptionAnalyzer.d.ts +1 -1
  18. package/lib/analyses/ReflectHttpOperationExceptionAnalyzer.js +22 -5
  19. package/lib/analyses/ReflectHttpOperationExceptionAnalyzer.js.map +1 -1
  20. package/lib/analyses/ReflectHttpOperationParameterAnalyzer.d.ts +1 -1
  21. package/lib/analyses/ReflectHttpOperationParameterAnalyzer.js +8 -8
  22. package/lib/analyses/ReflectHttpOperationParameterAnalyzer.js.map +1 -1
  23. package/lib/analyses/ReflectHttpOperationResponseAnalyzer.d.ts +1 -1
  24. package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js +15 -15
  25. package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js.map +1 -1
  26. package/lib/analyses/ReflectMetadataAnalyzer.js.map +1 -1
  27. package/lib/analyses/ReflectWebSocketOperationAnalyzer.d.ts +1 -1
  28. package/lib/analyses/ReflectWebSocketOperationAnalyzer.js +1 -1
  29. package/lib/analyses/ReflectWebSocketOperationAnalyzer.js.map +1 -1
  30. package/lib/analyses/SecurityAnalyzer.js.map +1 -1
  31. package/lib/analyses/TypedHttpRouteAnalyzer.d.ts +2 -1
  32. package/lib/analyses/TypedHttpRouteAnalyzer.js +296 -39
  33. package/lib/analyses/TypedHttpRouteAnalyzer.js.map +1 -1
  34. package/lib/analyses/TypedWebSocketRouteAnalyzer.js +1 -4
  35. package/lib/analyses/TypedWebSocketRouteAnalyzer.js.map +1 -1
  36. package/lib/decorators/OperationMetadata.d.ts +12 -2
  37. package/lib/decorators/OperationMetadata.js +14 -1
  38. package/lib/decorators/OperationMetadata.js.map +1 -1
  39. package/lib/executable/internal/CommandParser.js.map +1 -1
  40. package/lib/executable/internal/NestiaConfigLoader.d.ts +6 -2
  41. package/lib/executable/internal/NestiaConfigLoader.js +285 -793
  42. package/lib/executable/internal/NestiaConfigLoader.js.map +1 -1
  43. package/lib/executable/internal/NestiaSdkCommand.js +6 -4
  44. package/lib/executable/internal/NestiaSdkCommand.js.map +1 -1
  45. package/lib/executable/sdk.js +17 -5
  46. package/lib/executable/sdk.js.map +1 -1
  47. package/lib/generates/CloneGenerator.js +2 -2
  48. package/lib/generates/CloneGenerator.js.map +1 -1
  49. package/lib/generates/E2eGenerator.js.map +1 -1
  50. package/lib/generates/SdkGenerator.js +6 -9
  51. package/lib/generates/SdkGenerator.js.map +1 -1
  52. package/lib/generates/SwaggerGenerator.js +20 -107
  53. package/lib/generates/SwaggerGenerator.js.map +1 -1
  54. package/lib/generates/internal/E2eFileProgrammer.js +44 -28
  55. package/lib/generates/internal/E2eFileProgrammer.js.map +1 -1
  56. package/lib/generates/internal/FilePrinter.d.ts +4 -4
  57. package/lib/generates/internal/FilePrinter.js +25 -16
  58. package/lib/generates/internal/FilePrinter.js.map +1 -1
  59. package/lib/generates/internal/ImportDictionary.d.ts +2 -2
  60. package/lib/generates/internal/ImportDictionary.js +7 -5
  61. package/lib/generates/internal/ImportDictionary.js.map +1 -1
  62. package/lib/generates/internal/SdkAliasCollection.d.ts +11 -11
  63. package/lib/generates/internal/SdkAliasCollection.js +27 -31
  64. package/lib/generates/internal/SdkAliasCollection.js.map +1 -1
  65. package/lib/generates/internal/SdkDistributionComposer.js +15 -70
  66. package/lib/generates/internal/SdkDistributionComposer.js.map +1 -1
  67. package/lib/generates/internal/SdkFileProgrammer.js +2 -2
  68. package/lib/generates/internal/SdkFileProgrammer.js.map +1 -1
  69. package/lib/generates/internal/SdkHttpCloneProgrammer.d.ts +2 -2
  70. package/lib/generates/internal/SdkHttpCloneProgrammer.js +6 -12
  71. package/lib/generates/internal/SdkHttpCloneProgrammer.js.map +1 -1
  72. package/lib/generates/internal/SdkHttpCloneReferencer.js +2 -1
  73. package/lib/generates/internal/SdkHttpCloneReferencer.js.map +1 -1
  74. package/lib/generates/internal/SdkHttpFunctionProgrammer.d.ts +2 -2
  75. package/lib/generates/internal/SdkHttpFunctionProgrammer.js +73 -77
  76. package/lib/generates/internal/SdkHttpFunctionProgrammer.js.map +1 -1
  77. package/lib/generates/internal/SdkHttpNamespaceProgrammer.d.ts +2 -2
  78. package/lib/generates/internal/SdkHttpNamespaceProgrammer.js +64 -66
  79. package/lib/generates/internal/SdkHttpNamespaceProgrammer.js.map +1 -1
  80. package/lib/generates/internal/SdkHttpParameterProgrammer.d.ts +4 -10
  81. package/lib/generates/internal/SdkHttpParameterProgrammer.js +15 -22
  82. package/lib/generates/internal/SdkHttpParameterProgrammer.js.map +1 -1
  83. package/lib/generates/internal/SdkHttpRouteProgrammer.d.ts +2 -2
  84. package/lib/generates/internal/SdkHttpRouteProgrammer.js +18 -20
  85. package/lib/generates/internal/SdkHttpRouteProgrammer.js.map +1 -1
  86. package/lib/generates/internal/SdkHttpSimulationProgrammer.d.ts +3 -3
  87. package/lib/generates/internal/SdkHttpSimulationProgrammer.js +47 -49
  88. package/lib/generates/internal/SdkHttpSimulationProgrammer.js.map +1 -1
  89. package/lib/generates/internal/SdkImportWizard.js.map +1 -1
  90. package/lib/generates/internal/SdkRouteDirectory.js.map +1 -1
  91. package/lib/generates/internal/SdkTypeProgrammer.d.ts +4 -4
  92. package/lib/generates/internal/SdkTypeProgrammer.js +66 -67
  93. package/lib/generates/internal/SdkTypeProgrammer.js.map +1 -1
  94. package/lib/generates/internal/SdkTypeTagProgrammer.d.ts +1 -2
  95. package/lib/generates/internal/SdkTypeTagProgrammer.js +29 -11
  96. package/lib/generates/internal/SdkTypeTagProgrammer.js.map +1 -1
  97. package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.d.ts +2 -2
  98. package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js +55 -55
  99. package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js.map +1 -1
  100. package/lib/generates/internal/SdkWebSocketParameterProgrammer.d.ts +3 -3
  101. package/lib/generates/internal/SdkWebSocketParameterProgrammer.js +9 -12
  102. package/lib/generates/internal/SdkWebSocketParameterProgrammer.js.map +1 -1
  103. package/lib/generates/internal/SdkWebSocketRouteProgrammer.d.ts +2 -2
  104. package/lib/generates/internal/SdkWebSocketRouteProgrammer.js +43 -45
  105. package/lib/generates/internal/SdkWebSocketRouteProgrammer.js.map +1 -1
  106. package/lib/generates/internal/SwaggerDescriptionComposer.js.map +1 -1
  107. package/lib/generates/internal/SwaggerOperationComposer.d.ts +1 -1
  108. package/lib/generates/internal/SwaggerOperationComposer.js +5 -4
  109. package/lib/generates/internal/SwaggerOperationComposer.js.map +1 -1
  110. package/lib/generates/internal/SwaggerOperationParameterComposer.d.ts +0 -3
  111. package/lib/generates/internal/SwaggerOperationParameterComposer.js +19 -20
  112. package/lib/generates/internal/SwaggerOperationParameterComposer.js.map +1 -1
  113. package/lib/generates/internal/SwaggerOperationResponseComposer.d.ts +1 -1
  114. package/lib/generates/internal/SwaggerOperationResponseComposer.js +4 -3
  115. package/lib/generates/internal/SwaggerOperationResponseComposer.js.map +1 -1
  116. package/lib/index.js.map +1 -1
  117. package/lib/internal/legacy.d.ts +180 -0
  118. package/lib/internal/legacy.js +361 -0
  119. package/lib/internal/legacy.js.map +1 -0
  120. package/lib/structures/INestiaProject.d.ts +0 -2
  121. package/lib/{transformers → structures}/IOperationMetadata.d.ts +2 -7
  122. package/lib/structures/IOperationMetadata.js.map +1 -0
  123. package/lib/structures/IReflectHttpOperationException.d.ts +1 -1
  124. package/lib/structures/IReflectHttpOperationParameter.d.ts +1 -1
  125. package/lib/structures/IReflectHttpOperationSuccess.d.ts +1 -1
  126. package/lib/structures/IReflectOperationError.d.ts +1 -1
  127. package/lib/structures/IReflectOperationError.js.map +1 -1
  128. package/lib/structures/IReflectWebSocketOperation.d.ts +2 -2
  129. package/lib/structures/ITypedApplication.d.ts +1 -1
  130. package/lib/structures/ITypedHttpRouteException.d.ts +1 -1
  131. package/lib/structures/ITypedHttpRouteParameter.d.ts +1 -1
  132. package/lib/structures/ITypedHttpRouteSuccess.d.ts +1 -1
  133. package/lib/structures/ITypedWebSocketRoute.d.ts +2 -2
  134. package/lib/transform.d.ts +16 -3
  135. package/lib/transform.js +47 -5
  136. package/lib/transform.js.map +1 -1
  137. package/lib/utils/ArrayUtil.js.map +1 -1
  138. package/lib/utils/FileRetriever.js.map +1 -1
  139. package/lib/utils/MapUtil.js.map +1 -1
  140. package/lib/utils/PathUtil.js.map +1 -1
  141. package/lib/utils/SourceFinder.js.map +1 -1
  142. package/lib/utils/StringUtil.js.map +1 -1
  143. package/lib/utils/TsConfigReader.d.ts +7 -0
  144. package/lib/utils/TsConfigReader.js +102 -0
  145. package/lib/utils/TsConfigReader.js.map +1 -0
  146. package/lib/utils/TtscExecutor.d.ts +8 -0
  147. package/lib/utils/TtscExecutor.js +58 -0
  148. package/lib/utils/TtscExecutor.js.map +1 -0
  149. package/lib/utils/VersioningStrategy.js.map +1 -1
  150. package/lib/validators/HttpHeadersValidator.d.ts +8 -5
  151. package/lib/validators/HttpHeadersValidator.js +7 -26
  152. package/lib/validators/HttpHeadersValidator.js.map +1 -1
  153. package/lib/validators/HttpQueryValidator.d.ts +8 -5
  154. package/lib/validators/HttpQueryValidator.js +7 -26
  155. package/lib/validators/HttpQueryValidator.js.map +1 -1
  156. package/lib/{transformers → validators}/TextPlainValidator.d.ts +1 -1
  157. package/lib/{transformers → validators}/TextPlainValidator.js +2 -1
  158. package/lib/validators/TextPlainValidator.js.map +1 -0
  159. package/native/go.mod +52 -0
  160. package/native/go.sum +54 -0
  161. package/native/sdk/register.go +130 -0
  162. package/native/sdk/sdk.go +17 -0
  163. package/native/sdk/sdk_metadata_json.go +327 -0
  164. package/native/sdk/sdk_transform.go +1542 -0
  165. package/package.json +19 -19
  166. package/src/NestiaSdkApplication.ts +9 -5
  167. package/src/NestiaSwaggerComposer.ts +2 -3
  168. package/src/analyses/ConfigAnalyzer.ts +175 -1
  169. package/src/analyses/ImportAnalyzer.ts +15 -49
  170. package/src/analyses/ReflectControllerAnalyzer.ts +1 -1
  171. package/src/analyses/ReflectHttpOperationAnalyzer.ts +1 -1
  172. package/src/analyses/ReflectHttpOperationExceptionAnalyzer.ts +24 -6
  173. package/src/analyses/ReflectHttpOperationParameterAnalyzer.ts +3 -3
  174. package/src/analyses/ReflectHttpOperationResponseAnalyzer.ts +14 -10
  175. package/src/analyses/ReflectWebSocketOperationAnalyzer.ts +2 -2
  176. package/src/analyses/TypedHttpRouteAnalyzer.ts +354 -22
  177. package/src/decorators/OperationMetadata.ts +17 -3
  178. package/src/executable/internal/NestiaConfigLoader.ts +419 -53
  179. package/src/executable/internal/NestiaSdkCommand.ts +9 -10
  180. package/src/executable/sdk.ts +15 -4
  181. package/src/generates/CloneGenerator.ts +10 -10
  182. package/src/generates/SwaggerGenerator.ts +28 -9
  183. package/src/generates/internal/E2eFileProgrammer.ts +80 -43
  184. package/src/generates/internal/FilePrinter.ts +38 -37
  185. package/src/generates/internal/ImportDictionary.ts +18 -16
  186. package/src/generates/internal/SdkAliasCollection.ts +41 -40
  187. package/src/generates/internal/SdkDistributionComposer.ts +21 -8
  188. package/src/generates/internal/SdkFileProgrammer.ts +7 -5
  189. package/src/generates/internal/SdkHttpCloneProgrammer.ts +10 -10
  190. package/src/generates/internal/SdkHttpCloneReferencer.ts +6 -6
  191. package/src/generates/internal/SdkHttpFunctionProgrammer.ts +101 -78
  192. package/src/generates/internal/SdkHttpNamespaceProgrammer.ts +153 -145
  193. package/src/generates/internal/SdkHttpParameterProgrammer.ts +20 -33
  194. package/src/generates/internal/SdkHttpRouteProgrammer.ts +2 -2
  195. package/src/generates/internal/SdkHttpSimulationProgrammer.ts +88 -86
  196. package/src/generates/internal/SdkTypeProgrammer.ts +93 -99
  197. package/src/generates/internal/SdkTypeTagProgrammer.ts +12 -12
  198. package/src/generates/internal/SdkWebSocketNamespaceProgrammer.ts +128 -118
  199. package/src/generates/internal/SdkWebSocketParameterProgrammer.ts +15 -13
  200. package/src/generates/internal/SdkWebSocketRouteProgrammer.ts +133 -112
  201. package/src/generates/internal/SwaggerOperationComposer.ts +1 -1
  202. package/src/generates/internal/SwaggerOperationParameterComposer.ts +10 -9
  203. package/src/generates/internal/SwaggerOperationResponseComposer.ts +1 -1
  204. package/src/internal/legacy.ts +492 -0
  205. package/src/structures/INestiaProject.ts +0 -3
  206. package/src/{transformers → structures}/IOperationMetadata.ts +2 -7
  207. package/src/structures/IReflectHttpOperationException.ts +1 -1
  208. package/src/structures/IReflectHttpOperationParameter.ts +1 -1
  209. package/src/structures/IReflectHttpOperationSuccess.ts +1 -1
  210. package/src/structures/IReflectOperationError.ts +1 -1
  211. package/src/structures/IReflectWebSocketOperation.ts +2 -2
  212. package/src/structures/ITypedApplication.ts +1 -1
  213. package/src/structures/ITypedHttpRouteException.ts +1 -1
  214. package/src/structures/ITypedHttpRouteParameter.ts +1 -1
  215. package/src/structures/ITypedHttpRouteSuccess.ts +1 -1
  216. package/src/structures/ITypedWebSocketRoute.ts +2 -2
  217. package/src/transform.ts +57 -7
  218. package/src/utils/TsConfigReader.ts +108 -0
  219. package/src/utils/TtscExecutor.ts +63 -0
  220. package/src/validators/HttpHeadersValidator.ts +8 -37
  221. package/src/validators/HttpQueryValidator.ts +8 -37
  222. package/src/{transformers → validators}/TextPlainValidator.ts +2 -2
  223. package/lib/analyses/DtoAnalyzer.d.ts +0 -21
  224. package/lib/analyses/DtoAnalyzer.js +0 -219
  225. package/lib/analyses/DtoAnalyzer.js.map +0 -1
  226. package/lib/analyses/ExceptionAnalyzer.d.ts +0 -0
  227. package/lib/analyses/ExceptionAnalyzer.js +0 -2
  228. package/lib/analyses/ExceptionAnalyzer.js.map +0 -1
  229. package/lib/analyses/GenericAnalyzer.d.ts +0 -4
  230. package/lib/analyses/GenericAnalyzer.js +0 -42
  231. package/lib/analyses/GenericAnalyzer.js.map +0 -1
  232. package/lib/structures/IReflectApplication.d.ts +0 -6
  233. package/lib/structures/IReflectApplication.js +0 -3
  234. package/lib/structures/IReflectApplication.js.map +0 -1
  235. package/lib/structures/MethodType.d.ts +0 -4
  236. package/lib/structures/MethodType.js +0 -8
  237. package/lib/structures/MethodType.js.map +0 -1
  238. package/lib/structures/ParamCategory.d.ts +0 -1
  239. package/lib/structures/ParamCategory.js +0 -3
  240. package/lib/structures/ParamCategory.js.map +0 -1
  241. package/lib/structures/TypeEntry.d.ts +0 -9
  242. package/lib/structures/TypeEntry.js +0 -21
  243. package/lib/structures/TypeEntry.js.map +0 -1
  244. package/lib/transformers/IOperationMetadata.js.map +0 -1
  245. package/lib/transformers/ISdkOperationTransformerContext.d.ts +0 -7
  246. package/lib/transformers/ISdkOperationTransformerContext.js +0 -3
  247. package/lib/transformers/ISdkOperationTransformerContext.js.map +0 -1
  248. package/lib/transformers/SdkOperationProgrammer.d.ts +0 -15
  249. package/lib/transformers/SdkOperationProgrammer.js +0 -186
  250. package/lib/transformers/SdkOperationProgrammer.js.map +0 -1
  251. package/lib/transformers/SdkOperationTransformer.d.ts +0 -4
  252. package/lib/transformers/SdkOperationTransformer.js +0 -128
  253. package/lib/transformers/SdkOperationTransformer.js.map +0 -1
  254. package/lib/transformers/TextPlainValidator.js.map +0 -1
  255. package/lib/utils/MetadataUtil.d.ts +0 -4
  256. package/lib/utils/MetadataUtil.js +0 -34
  257. package/lib/utils/MetadataUtil.js.map +0 -1
  258. package/lib/utils/StripEnums.d.ts +0 -3
  259. package/lib/utils/StripEnums.js +0 -3
  260. package/lib/utils/StripEnums.js.map +0 -1
  261. package/lib/utils/TypeLiteralExpression.d.ts +0 -0
  262. package/lib/utils/TypeLiteralExpression.js +0 -2
  263. package/lib/utils/TypeLiteralExpression.js.map +0 -1
  264. package/src/analyses/DtoAnalyzer.ts +0 -260
  265. package/src/analyses/ExceptionAnalyzer.ts +0 -154
  266. package/src/analyses/GenericAnalyzer.ts +0 -49
  267. package/src/structures/IReflectApplication.ts +0 -8
  268. package/src/structures/MethodType.ts +0 -5
  269. package/src/structures/ParamCategory.ts +0 -1
  270. package/src/structures/TypeEntry.ts +0 -22
  271. package/src/transformers/ISdkOperationTransformerContext.ts +0 -8
  272. package/src/transformers/SdkOperationProgrammer.ts +0 -240
  273. package/src/transformers/SdkOperationTransformer.ts +0 -248
  274. package/src/utils/MetadataUtil.ts +0 -26
  275. package/src/utils/StripEnums.ts +0 -5
  276. package/src/utils/TypeLiteralExpression.ts +0 -0
  277. /package/lib/{transformers → structures}/IOperationMetadata.js +0 -0
@@ -1,11 +1,6 @@
1
- import {
2
- ExpressionFactory,
3
- IdentifierFactory,
4
- LiteralFactory,
5
- TypeFactory,
6
- } from "@typia/core";
1
+ import { Node, NodeFlags, SyntaxKind, TypeScriptFactory } from "@nestia/factory";
2
+ import { ExpressionFactory, IdentifierFactory, LiteralFactory, TypeFactory } from "@nestia/factory";
7
3
  import { NamingConvention } from "@typia/utils";
8
- import ts from "typescript";
9
4
 
10
5
  import { INestiaProject } from "../../structures/INestiaProject";
11
6
  import { ITypedHttpRoute } from "../../structures/ITypedHttpRoute";
@@ -15,18 +10,19 @@ import { SdkAliasCollection } from "./SdkAliasCollection";
15
10
  import { SdkHttpParameterProgrammer } from "./SdkHttpParameterProgrammer";
16
11
  import { SdkHttpSimulationProgrammer } from "./SdkHttpSimulationProgrammer";
17
12
  import { SdkImportWizard } from "./SdkImportWizard";
13
+ import { sizeOf } from "../../internal/legacy";
18
14
 
19
15
  export namespace SdkHttpNamespaceProgrammer {
20
16
  export const write =
21
17
  (project: INestiaProject) =>
22
18
  (importer: ImportDictionary) =>
23
- (route: ITypedHttpRoute): ts.ModuleDeclaration => {
24
- const types: ts.TypeAliasDeclaration[] =
19
+ (route: ITypedHttpRoute): Node => {
20
+ const types: Node[] =
25
21
  writeTypes(project)(importer)(route);
26
- return ts.factory.createModuleDeclaration(
27
- [ts.factory.createToken(ts.SyntaxKind.ExportKeyword)],
28
- ts.factory.createIdentifier(route.name),
29
- ts.factory.createModuleBlock([
22
+ return TypeScriptFactory.createModuleDeclaration(
23
+ [TypeScriptFactory.createToken(SyntaxKind.ExportKeyword)],
24
+ TypeScriptFactory.createIdentifier(route.name),
25
+ TypeScriptFactory.createModuleBlock([
30
26
  ...types,
31
27
  ...(types.length ? [FilePrinter.enter()] : []),
32
28
  writeMetadata(project)(importer)(route),
@@ -45,19 +41,19 @@ export namespace SdkHttpNamespaceProgrammer {
45
41
  ? [writeStringify(project)(importer)]
46
42
  : []),
47
43
  ]),
48
- ts.NodeFlags.Namespace,
44
+ NodeFlags.Namespace,
49
45
  );
50
46
  };
51
47
 
52
48
  const writeTypes =
53
49
  (project: INestiaProject) =>
54
50
  (importer: ImportDictionary) =>
55
- (route: ITypedHttpRoute): ts.TypeAliasDeclaration[] => {
56
- const array: ts.TypeAliasDeclaration[] = [];
57
- const declare = (name: string, type: ts.TypeNode) =>
51
+ (route: ITypedHttpRoute): Node[] => {
52
+ const array: Node[] = [];
53
+ const declare = (name: string, type: Node) =>
58
54
  array.push(
59
- ts.factory.createTypeAliasDeclaration(
60
- [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
55
+ TypeScriptFactory.createTypeAliasDeclaration(
56
+ [TypeScriptFactory.createModifier(SyntaxKind.ExportKeyword)],
61
57
  name,
62
58
  undefined,
63
59
  type,
@@ -85,7 +81,7 @@ export namespace SdkHttpNamespaceProgrammer {
85
81
  declare("Body", SdkAliasCollection.body(project)(importer)(route.body));
86
82
  if (
87
83
  project.config.propagate === true ||
88
- route.success.metadata.size() !== 0
84
+ sizeOf(route.success.metadata) !== 0
89
85
  )
90
86
  declare(
91
87
  "Output",
@@ -97,20 +93,20 @@ export namespace SdkHttpNamespaceProgrammer {
97
93
  const writeMetadata =
98
94
  (project: INestiaProject) =>
99
95
  (importer: ImportDictionary) =>
100
- (route: ITypedHttpRoute): ts.VariableStatement =>
96
+ (route: ITypedHttpRoute): Node =>
101
97
  constant("METADATA")(
102
- ts.factory.createAsExpression(
103
- ts.factory.createObjectLiteralExpression(
98
+ TypeScriptFactory.createAsExpression(
99
+ TypeScriptFactory.createObjectLiteralExpression(
104
100
  [
105
- ts.factory.createPropertyAssignment(
101
+ TypeScriptFactory.createPropertyAssignment(
106
102
  "method",
107
- ts.factory.createStringLiteral(route.method),
103
+ TypeScriptFactory.createStringLiteral(route.method),
108
104
  ),
109
- ts.factory.createPropertyAssignment(
105
+ TypeScriptFactory.createPropertyAssignment(
110
106
  "path",
111
- ts.factory.createStringLiteral(route.path),
107
+ TypeScriptFactory.createStringLiteral(route.path),
112
108
  ),
113
- ts.factory.createPropertyAssignment(
109
+ TypeScriptFactory.createPropertyAssignment(
114
110
  "request",
115
111
  route.body
116
112
  ? LiteralFactory.write(
@@ -124,30 +120,30 @@ export namespace SdkHttpNamespaceProgrammer {
124
120
  encrypted: false,
125
121
  },
126
122
  )
127
- : ts.factory.createNull(),
123
+ : TypeScriptFactory.createNull(),
128
124
  ),
129
- ts.factory.createPropertyAssignment(
125
+ TypeScriptFactory.createPropertyAssignment(
130
126
  "response",
131
127
  route.method !== "HEAD"
132
128
  ? LiteralFactory.write({
133
129
  type: route.success.contentType,
134
130
  encrypted: !!route.success.encrypted,
135
131
  })
136
- : ts.factory.createNull(),
132
+ : TypeScriptFactory.createNull(),
137
133
  ),
138
- ts.factory.createPropertyAssignment(
134
+ TypeScriptFactory.createPropertyAssignment(
139
135
  "status",
140
136
  route.success.status !== null
141
137
  ? ExpressionFactory.number(route.success.status)
142
- : ts.factory.createNull(),
138
+ : TypeScriptFactory.createNull(),
143
139
  ),
144
140
  ...(route.success.contentType ===
145
141
  "application/x-www-form-urlencoded"
146
142
  ? [
147
- ts.factory.createPropertyAssignment(
143
+ TypeScriptFactory.createPropertyAssignment(
148
144
  "parseQuery",
149
- ts.factory.createCallExpression(
150
- ts.factory.createIdentifier(
145
+ TypeScriptFactory.createCallExpression(
146
+ TypeScriptFactory.createIdentifier(
151
147
  `${SdkImportWizard.typia(importer)}.http.createAssertQuery`,
152
148
  ),
153
149
  [
@@ -165,8 +161,8 @@ export namespace SdkHttpNamespaceProgrammer {
165
161
  ],
166
162
  true,
167
163
  ),
168
- ts.factory.createTypeReferenceNode(
169
- ts.factory.createIdentifier("const"),
164
+ TypeScriptFactory.createTypeReferenceNode(
165
+ TypeScriptFactory.createIdentifier("const"),
170
166
  ),
171
167
  ),
172
168
  );
@@ -174,10 +170,10 @@ export namespace SdkHttpNamespaceProgrammer {
174
170
  const writePath =
175
171
  (project: INestiaProject) =>
176
172
  (importer: ImportDictionary) =>
177
- (route: ITypedHttpRoute): ts.VariableStatement => {
178
- const out = (body: ts.ConciseBody) =>
173
+ (route: ITypedHttpRoute): Node => {
174
+ const out = (body: Node) =>
179
175
  constant("path")(
180
- ts.factory.createArrowFunction(
176
+ TypeScriptFactory.createArrowFunction(
181
177
  [],
182
178
  [],
183
179
  SdkHttpParameterProgrammer.getParameterDeclarations({
@@ -197,47 +193,53 @@ export namespace SdkHttpNamespaceProgrammer {
197
193
  false,
198
194
  );
199
195
  if (parameters.length === 0)
200
- return out(ts.factory.createStringLiteral(route.path));
196
+ return out(TypeScriptFactory.createStringLiteral(route.path));
201
197
 
202
198
  const access = (name: string) =>
203
199
  project.config.keyword === true ? `props.${name}` : name;
204
200
  const template = () => {
205
201
  const split: string[] = route.path.split(":");
206
202
  if (split.length === 1)
207
- return ts.factory.createStringLiteral(route.path);
208
- return ts.factory.createTemplateExpression(
209
- ts.factory.createTemplateHead(split[0]!),
203
+ return TypeScriptFactory.createStringLiteral(route.path);
204
+ return TypeScriptFactory.createTemplateExpression(
205
+ TypeScriptFactory.createTemplateHead(split[0]!),
210
206
  split.slice(1).map((s, i, arr) => {
211
207
  const name: string = s.split("/")[0]!;
212
- return ts.factory.createTemplateSpan(
213
- ts.factory.createCallExpression(
214
- ts.factory.createIdentifier("encodeURIComponent"),
208
+ return TypeScriptFactory.createTemplateSpan(
209
+ TypeScriptFactory.createCallExpression(
210
+ TypeScriptFactory.createIdentifier("encodeURIComponent"),
215
211
  undefined,
216
212
  [
217
- ts.factory.createBinaryExpression(
218
- ts.factory.createCallChain(
219
- ts.factory.createPropertyAccessChain(
220
- ts.factory.createIdentifier(
213
+ TypeScriptFactory.createBinaryExpression(
214
+ TypeScriptFactory.createCallChain(
215
+ TypeScriptFactory.createPropertyAccessChain(
216
+ TypeScriptFactory.createIdentifier(
221
217
  access(
222
218
  route.pathParameters.find((p) => p.field === name)!
223
219
  .name,
224
220
  ),
225
221
  ),
226
- ts.factory.createToken(ts.SyntaxKind.QuestionDotToken),
222
+ TypeScriptFactory.createToken(
223
+ SyntaxKind.QuestionDotToken,
224
+ ),
227
225
  "toString",
228
226
  ),
229
227
  undefined,
230
228
  undefined,
231
229
  [],
232
230
  ),
233
- ts.factory.createToken(ts.SyntaxKind.QuestionQuestionToken),
234
- ts.factory.createStringLiteral("null"),
231
+ TypeScriptFactory.createToken(
232
+ SyntaxKind.QuestionQuestionToken,
233
+ ),
234
+ TypeScriptFactory.createStringLiteral("null"),
235
235
  ),
236
236
  ],
237
237
  ),
238
238
  (i !== arr.length - 1
239
- ? ts.factory.createTemplateMiddle
240
- : ts.factory.createTemplateTail)(s.substring(name.length)),
239
+ ? TypeScriptFactory.createTemplateMiddle
240
+ : TypeScriptFactory.createTemplateTail)(
241
+ s.substring(name.length),
242
+ ),
241
243
  );
242
244
  }),
243
245
  );
@@ -245,37 +247,37 @@ export namespace SdkHttpNamespaceProgrammer {
245
247
  if (route.queryObject === null && route.queryParameters.length === 0)
246
248
  return out(template());
247
249
 
248
- const block = (expr: ts.Expression) => {
250
+ const block = (expr: Node) => {
249
251
  const computeName = (str: string): string =>
250
252
  parameters.find((p) => p.name === str) !== undefined
251
253
  ? computeName("_" + str)
252
254
  : str;
253
255
  const variables: string = computeName("variables");
254
- return ts.factory.createBlock(
256
+ return TypeScriptFactory.createBlock(
255
257
  [
256
258
  local(variables)("URLSearchParams")(
257
- ts.factory.createNewExpression(
258
- ts.factory.createIdentifier("URLSearchParams"),
259
+ TypeScriptFactory.createNewExpression(
260
+ TypeScriptFactory.createIdentifier("URLSearchParams"),
259
261
  [],
260
262
  [],
261
263
  ),
262
264
  ),
263
- ts.factory.createForOfStatement(
265
+ TypeScriptFactory.createForOfStatement(
264
266
  undefined,
265
- ts.factory.createVariableDeclarationList(
267
+ TypeScriptFactory.createVariableDeclarationList(
266
268
  [
267
- ts.factory.createVariableDeclaration(
268
- ts.factory.createArrayBindingPattern([
269
- ts.factory.createBindingElement(
269
+ TypeScriptFactory.createVariableDeclaration(
270
+ TypeScriptFactory.createArrayBindingPattern([
271
+ TypeScriptFactory.createBindingElement(
270
272
  undefined,
271
273
  undefined,
272
- ts.factory.createIdentifier("key"),
274
+ TypeScriptFactory.createIdentifier("key"),
273
275
  undefined,
274
276
  ),
275
- ts.factory.createBindingElement(
277
+ TypeScriptFactory.createBindingElement(
276
278
  undefined,
277
279
  undefined,
278
- ts.factory.createIdentifier("value"),
280
+ TypeScriptFactory.createIdentifier("value"),
279
281
  undefined,
280
282
  ),
281
283
  ]),
@@ -284,56 +286,56 @@ export namespace SdkHttpNamespaceProgrammer {
284
286
  undefined,
285
287
  ),
286
288
  ],
287
- ts.NodeFlags.Const,
289
+ NodeFlags.Const,
288
290
  ),
289
- ts.factory.createCallExpression(
290
- ts.factory.createIdentifier("Object.entries"),
291
+ TypeScriptFactory.createCallExpression(
292
+ TypeScriptFactory.createIdentifier("Object.entries"),
291
293
  undefined,
292
294
  [
293
- ts.factory.createAsExpression(
295
+ TypeScriptFactory.createAsExpression(
294
296
  expr,
295
297
  TypeFactory.keyword("any"),
296
298
  ),
297
299
  ],
298
300
  ),
299
- ts.factory.createIfStatement(
300
- ts.factory.createStrictEquality(
301
- ts.factory.createIdentifier("undefined"),
302
- ts.factory.createIdentifier("value"),
301
+ TypeScriptFactory.createIfStatement(
302
+ TypeScriptFactory.createStrictEquality(
303
+ TypeScriptFactory.createIdentifier("undefined"),
304
+ TypeScriptFactory.createIdentifier("value"),
303
305
  ),
304
- ts.factory.createContinueStatement(),
305
- ts.factory.createIfStatement(
306
- ts.factory.createCallExpression(
307
- ts.factory.createIdentifier("Array.isArray"),
306
+ TypeScriptFactory.createContinueStatement(),
307
+ TypeScriptFactory.createIfStatement(
308
+ TypeScriptFactory.createCallExpression(
309
+ TypeScriptFactory.createIdentifier("Array.isArray"),
308
310
  undefined,
309
- [ts.factory.createIdentifier("value")],
311
+ [TypeScriptFactory.createIdentifier("value")],
310
312
  ),
311
- ts.factory.createExpressionStatement(
312
- ts.factory.createCallExpression(
313
- ts.factory.createPropertyAccessExpression(
314
- ts.factory.createIdentifier("value"),
315
- ts.factory.createIdentifier("forEach"),
313
+ TypeScriptFactory.createExpressionStatement(
314
+ TypeScriptFactory.createCallExpression(
315
+ TypeScriptFactory.createPropertyAccessExpression(
316
+ TypeScriptFactory.createIdentifier("value"),
317
+ TypeScriptFactory.createIdentifier("forEach"),
316
318
  ),
317
319
  undefined,
318
320
  [
319
- ts.factory.createArrowFunction(
321
+ TypeScriptFactory.createArrowFunction(
320
322
  undefined,
321
323
  undefined,
322
324
  [IdentifierFactory.parameter("elem")],
323
325
  undefined,
324
326
  undefined,
325
- ts.factory.createCallExpression(
327
+ TypeScriptFactory.createCallExpression(
326
328
  IdentifierFactory.access(
327
- ts.factory.createIdentifier(variables),
329
+ TypeScriptFactory.createIdentifier(variables),
328
330
  "append",
329
331
  ),
330
332
  undefined,
331
333
  [
332
- ts.factory.createIdentifier("key"),
333
- ts.factory.createCallExpression(
334
- ts.factory.createIdentifier("String"),
334
+ TypeScriptFactory.createIdentifier("key"),
335
+ TypeScriptFactory.createCallExpression(
336
+ TypeScriptFactory.createIdentifier("String"),
335
337
  undefined,
336
- [ts.factory.createIdentifier("elem")],
338
+ [TypeScriptFactory.createIdentifier("elem")],
337
339
  ),
338
340
  ],
339
341
  ),
@@ -341,19 +343,19 @@ export namespace SdkHttpNamespaceProgrammer {
341
343
  ],
342
344
  ),
343
345
  ),
344
- ts.factory.createExpressionStatement(
345
- ts.factory.createCallExpression(
346
+ TypeScriptFactory.createExpressionStatement(
347
+ TypeScriptFactory.createCallExpression(
346
348
  IdentifierFactory.access(
347
- ts.factory.createIdentifier(variables),
349
+ TypeScriptFactory.createIdentifier(variables),
348
350
  "set",
349
351
  ),
350
352
  undefined,
351
353
  [
352
- ts.factory.createIdentifier("key"),
353
- ts.factory.createCallExpression(
354
- ts.factory.createIdentifier("String"),
354
+ TypeScriptFactory.createIdentifier("key"),
355
+ TypeScriptFactory.createCallExpression(
356
+ TypeScriptFactory.createIdentifier("String"),
355
357
  undefined,
356
- [ts.factory.createIdentifier("value")],
358
+ [TypeScriptFactory.createIdentifier("value")],
357
359
  ),
358
360
  ],
359
361
  ),
@@ -362,35 +364,35 @@ export namespace SdkHttpNamespaceProgrammer {
362
364
  ),
363
365
  ),
364
366
  local("location")("string")(template()),
365
- ts.factory.createReturnStatement(
366
- ts.factory.createConditionalExpression(
367
- ts.factory.createStrictEquality(
367
+ TypeScriptFactory.createReturnStatement(
368
+ TypeScriptFactory.createConditionalExpression(
369
+ TypeScriptFactory.createStrictEquality(
368
370
  ExpressionFactory.number(0),
369
371
  IdentifierFactory.access(
370
- ts.factory.createIdentifier(variables),
372
+ TypeScriptFactory.createIdentifier(variables),
371
373
  "size",
372
374
  ),
373
375
  ),
374
376
  undefined,
375
- ts.factory.createIdentifier("location"),
377
+ TypeScriptFactory.createIdentifier("location"),
376
378
  undefined,
377
- ts.factory.createTemplateExpression(
378
- ts.factory.createTemplateHead(""),
379
+ TypeScriptFactory.createTemplateExpression(
380
+ TypeScriptFactory.createTemplateHead(""),
379
381
  [
380
- ts.factory.createTemplateSpan(
381
- ts.factory.createIdentifier("location"),
382
- ts.factory.createTemplateMiddle("?"),
382
+ TypeScriptFactory.createTemplateSpan(
383
+ TypeScriptFactory.createIdentifier("location"),
384
+ TypeScriptFactory.createTemplateMiddle("?"),
383
385
  ),
384
- ts.factory.createTemplateSpan(
385
- ts.factory.createCallExpression(
386
+ TypeScriptFactory.createTemplateSpan(
387
+ TypeScriptFactory.createCallExpression(
386
388
  IdentifierFactory.access(
387
- ts.factory.createIdentifier(variables),
389
+ TypeScriptFactory.createIdentifier(variables),
388
390
  "toString",
389
391
  ),
390
392
  undefined,
391
393
  undefined,
392
394
  ),
393
- ts.factory.createTemplateTail(""),
395
+ TypeScriptFactory.createTemplateTail(""),
394
396
  ),
395
397
  ],
396
398
  ),
@@ -403,34 +405,38 @@ export namespace SdkHttpNamespaceProgrammer {
403
405
  if (route.queryObject !== null && route.queryParameters.length === 0)
404
406
  return out(
405
407
  block(
406
- route.queryObject.metadata.isRequired() === false
407
- ? ts.factory.createBinaryExpression(
408
- ts.factory.createIdentifier(route.queryObject.name),
409
- ts.factory.createToken(ts.SyntaxKind.QuestionQuestionToken),
410
- ts.factory.createObjectLiteralExpression([], false),
408
+ route.queryObject.metadata.required === false
409
+ ? TypeScriptFactory.createBinaryExpression(
410
+ TypeScriptFactory.createIdentifier(route.queryObject.name),
411
+ TypeScriptFactory.createToken(
412
+ SyntaxKind.QuestionQuestionToken,
413
+ ),
414
+ TypeScriptFactory.createObjectLiteralExpression([], false),
411
415
  )
412
- : ts.factory.createIdentifier(access(route.queryObject.name)),
416
+ : TypeScriptFactory.createIdentifier(
417
+ access(route.queryObject.name),
418
+ ),
413
419
  ),
414
420
  );
415
421
  return out(
416
422
  block(
417
- ts.factory.createObjectLiteralExpression(
423
+ TypeScriptFactory.createObjectLiteralExpression(
418
424
  [
419
425
  ...(route.queryObject
420
426
  ? [
421
- ts.factory.createSpreadAssignment(
422
- ts.factory.createIdentifier(
427
+ TypeScriptFactory.createSpreadAssignment(
428
+ TypeScriptFactory.createIdentifier(
423
429
  access(route.queryObject.name),
424
430
  ),
425
431
  ),
426
432
  ]
427
433
  : []),
428
434
  ...route.queryParameters.map((q) =>
429
- ts.factory.createPropertyAssignment(
435
+ TypeScriptFactory.createPropertyAssignment(
430
436
  NamingConvention.variable(q.field!)
431
437
  ? q.field!
432
- : ts.factory.createStringLiteral(q.field!),
433
- ts.factory.createIdentifier(access(q.name)),
438
+ : TypeScriptFactory.createStringLiteral(q.field!),
439
+ TypeScriptFactory.createIdentifier(access(q.name)),
434
440
  ),
435
441
  ),
436
442
  ],
@@ -442,61 +448,63 @@ export namespace SdkHttpNamespaceProgrammer {
442
448
 
443
449
  const writeStringify =
444
450
  (project: INestiaProject) =>
445
- (importer: ImportDictionary): ts.VariableStatement =>
451
+ (importer: ImportDictionary): Node =>
446
452
  constant("stringify")(
447
- ts.factory.createArrowFunction(
453
+ TypeScriptFactory.createArrowFunction(
448
454
  [],
449
455
  undefined,
450
456
  [
451
457
  IdentifierFactory.parameter(
452
458
  "input",
453
- ts.factory.createTypeReferenceNode("Body"),
459
+ TypeScriptFactory.createTypeReferenceNode("Body"),
454
460
  ),
455
461
  ],
456
462
  undefined,
457
463
  undefined,
458
- ts.factory.createCallExpression(
464
+ TypeScriptFactory.createCallExpression(
459
465
  IdentifierFactory.access(
460
466
  IdentifierFactory.access(
461
- ts.factory.createIdentifier(SdkImportWizard.typia(importer)),
467
+ TypeScriptFactory.createIdentifier(
468
+ SdkImportWizard.typia(importer),
469
+ ),
462
470
  "json",
463
471
  ),
464
472
  project.config.assert ? "stringify" : "assertStringify",
465
473
  ),
466
474
  undefined,
467
- [ts.factory.createIdentifier("input")],
475
+ [TypeScriptFactory.createIdentifier("input")],
468
476
  ),
469
477
  ),
470
478
  );
471
479
  }
472
480
 
473
- const local = (name: string) => (type: string) => (expression: ts.Expression) =>
474
- ts.factory.createVariableStatement(
481
+ const local = (name: string) => (type: string) => (expression: Node) =>
482
+ TypeScriptFactory.createVariableStatement(
475
483
  [],
476
- ts.factory.createVariableDeclarationList(
484
+ TypeScriptFactory.createVariableDeclarationList(
477
485
  [
478
- ts.factory.createVariableDeclaration(
486
+ TypeScriptFactory.createVariableDeclaration(
479
487
  name,
480
488
  undefined,
481
- ts.factory.createTypeReferenceNode(type),
489
+ TypeScriptFactory.createTypeReferenceNode(type),
482
490
  expression,
483
491
  ),
484
492
  ],
485
- ts.NodeFlags.Const,
493
+ NodeFlags.Const,
486
494
  ),
487
495
  );
488
- const constant = (name: string) => (expression: ts.Expression) =>
489
- ts.factory.createVariableStatement(
490
- [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
491
- ts.factory.createVariableDeclarationList(
496
+ const constant = (name: string) => (expression: Node) =>
497
+ TypeScriptFactory.createVariableStatement(
498
+ [TypeScriptFactory.createModifier(SyntaxKind.ExportKeyword)],
499
+ TypeScriptFactory.createVariableDeclarationList(
492
500
  [
493
- ts.factory.createVariableDeclaration(
501
+ TypeScriptFactory.createVariableDeclaration(
494
502
  name,
495
503
  undefined,
496
504
  undefined,
497
505
  expression,
498
506
  ),
499
507
  ],
500
- ts.NodeFlags.Const,
508
+ NodeFlags.Const,
501
509
  ),
502
510
  );