@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,4 +1,4 @@
1
- import ts from "typescript";
1
+ import { Node, SyntaxKind, TypeScriptFactory } from "@nestia/factory";
2
2
 
3
3
  import { INestiaProject } from "../../structures/INestiaProject";
4
4
  import { ITypedHttpRoute } from "../../structures/ITypedHttpRoute";
@@ -10,7 +10,7 @@ export namespace SdkHttpParameterProgrammer {
10
10
  export interface IEntry {
11
11
  key: string;
12
12
  required: boolean;
13
- type: ts.TypeNode;
13
+ type: Node;
14
14
  parameter: ITypedHttpRouteParameter;
15
15
  }
16
16
 
@@ -57,7 +57,7 @@ export namespace SdkHttpParameterProgrammer {
57
57
  ...[...props.route.pathParameters, ...props.route.queryParameters].map(
58
58
  (p) => ({
59
59
  key: p.name,
60
- required: p.metadata.isRequired(),
60
+ required: p.metadata.required,
61
61
  type:
62
62
  props.project.config.clone === true
63
63
  ? SdkAliasCollection.from(props.project)(props.importer)(
@@ -71,7 +71,7 @@ export namespace SdkHttpParameterProgrammer {
71
71
  ? [
72
72
  {
73
73
  key: props.route.queryObject.name,
74
- required: props.route.queryObject.metadata.isRequired(),
74
+ required: props.route.queryObject.metadata.required,
75
75
  type:
76
76
  props.e2e === true
77
77
  ? props.project.config.clone === true
@@ -79,7 +79,7 @@ export namespace SdkHttpParameterProgrammer {
79
79
  props.route.queryObject.metadata,
80
80
  )
81
81
  : SdkAliasCollection.name(props.route.queryObject)
82
- : ts.factory.createTypeReferenceNode(`${prefix}Query`),
82
+ : TypeScriptFactory.createTypeReferenceNode(`${prefix}Query`),
83
83
  parameter: props.route.queryObject,
84
84
  },
85
85
  ]
@@ -88,7 +88,7 @@ export namespace SdkHttpParameterProgrammer {
88
88
  ? [
89
89
  {
90
90
  key: props.route.body.name,
91
- required: props.route.body.metadata.isRequired(),
91
+ required: props.route.body.metadata.required,
92
92
  type:
93
93
  props.e2e === true
94
94
  ? props.project.config.clone === true
@@ -96,7 +96,7 @@ export namespace SdkHttpParameterProgrammer {
96
96
  props.route.body.metadata,
97
97
  )
98
98
  : SdkAliasCollection.name(props.route.body)
99
- : ts.factory.createTypeReferenceNode(`${prefix}Body`),
99
+ : TypeScriptFactory.createTypeReferenceNode(`${prefix}Body`),
100
100
  parameter: props.route.body,
101
101
  },
102
102
  ]
@@ -110,24 +110,24 @@ export namespace SdkHttpParameterProgrammer {
110
110
  route: ITypedHttpRoute;
111
111
  body: boolean;
112
112
  prefix: boolean;
113
- }): ts.ParameterDeclaration[] => {
113
+ }): Node[] => {
114
114
  const entries: IEntry[] = getEntries(props);
115
115
  if (entries.length === 0) return [];
116
116
  else if (props.project.config.keyword === true) {
117
117
  const typeName: string = props.prefix
118
118
  ? `${props.route.name}.Props`
119
119
  : "Props";
120
- const node: ts.TypeReferenceNode =
120
+ const node: Node =
121
121
  props.body === false && props.route.body !== null
122
- ? ts.factory.createTypeReferenceNode("Omit", [
123
- ts.factory.createTypeReferenceNode(typeName),
124
- ts.factory.createLiteralTypeNode(
125
- ts.factory.createStringLiteral(props.route.body.name),
122
+ ? TypeScriptFactory.createTypeReferenceNode("Omit", [
123
+ TypeScriptFactory.createTypeReferenceNode(typeName),
124
+ TypeScriptFactory.createLiteralTypeNode(
125
+ TypeScriptFactory.createStringLiteral(props.route.body.name),
126
126
  ),
127
127
  ])
128
- : ts.factory.createTypeReferenceNode(typeName);
128
+ : TypeScriptFactory.createTypeReferenceNode(typeName);
129
129
  return [
130
- ts.factory.createParameterDeclaration(
130
+ TypeScriptFactory.createParameterDeclaration(
131
131
  undefined,
132
132
  undefined,
133
133
  "props",
@@ -138,13 +138,13 @@ export namespace SdkHttpParameterProgrammer {
138
138
  ];
139
139
  }
140
140
  return entries.map((e) =>
141
- ts.factory.createParameterDeclaration(
141
+ TypeScriptFactory.createParameterDeclaration(
142
142
  undefined,
143
143
  undefined,
144
144
  e.key,
145
145
  e.required
146
146
  ? undefined
147
- : ts.factory.createToken(ts.SyntaxKind.QuestionToken),
147
+ : TypeScriptFactory.createToken(SyntaxKind.QuestionToken),
148
148
  e.type,
149
149
  undefined,
150
150
  ),
@@ -155,24 +155,11 @@ export namespace SdkHttpParameterProgrammer {
155
155
  project: INestiaProject;
156
156
  route: ITypedHttpRoute;
157
157
  body: boolean;
158
- }): ts.Expression[] => {
158
+ }): Node[] => {
159
159
  const parameters = getSignificant(props.route, props.body);
160
160
  if (parameters.length === 0) return [];
161
161
  else if (props.project.config.keyword === true)
162
- return [ts.factory.createIdentifier("props")];
163
- return parameters.map((p) => ts.factory.createIdentifier(p.name));
164
- };
165
-
166
- export const getAccessors = (props: {
167
- project: INestiaProject;
168
- importer: ImportDictionary;
169
- route: ITypedHttpRoute;
170
- body: boolean;
171
- }): ts.Expression[] => {
172
- const prefix: string =
173
- props.project.config.keyword === true ? "props." : "";
174
- return getSignificant(props.route, props.body).map((p) =>
175
- ts.factory.createIdentifier(`${prefix}${p.name}`),
176
- );
162
+ return [TypeScriptFactory.createIdentifier("props")];
163
+ return parameters.map((p) => TypeScriptFactory.createIdentifier(p.name));
177
164
  };
178
165
  }
@@ -1,4 +1,4 @@
1
- import ts from "typescript";
1
+ import { Node } from "@nestia/factory";
2
2
  import { IJsDocTagInfo } from "typia";
3
3
 
4
4
  import { INestiaConfig } from "../../INestiaConfig";
@@ -14,7 +14,7 @@ export namespace SdkHttpRouteProgrammer {
14
14
  export const write =
15
15
  (project: INestiaProject) =>
16
16
  (importer: ImportDictionary) =>
17
- (route: ITypedHttpRoute): ts.Statement[] => [
17
+ (route: ITypedHttpRoute): Node[] => [
18
18
  FilePrinter.description(
19
19
  SdkHttpFunctionProgrammer.write(project)(importer)(route),
20
20
  describe(project.config, route),
@@ -1,11 +1,5 @@
1
- import {
2
- ExpressionFactory,
3
- IdentifierFactory,
4
- LiteralFactory,
5
- StatementFactory,
6
- TypeFactory,
7
- } from "@typia/core";
8
- import ts from "typescript";
1
+ import { Node, NodeFlags, SyntaxKind, TypeScriptFactory } from "@nestia/factory";
2
+ import { ExpressionFactory, IdentifierFactory, LiteralFactory, StatementFactory, TypeFactory } from "@nestia/factory";
9
3
 
10
4
  import { INestiaProject } from "../../structures/INestiaProject";
11
5
  import { ITypedHttpRoute } from "../../structures/ITypedHttpRoute";
@@ -13,28 +7,31 @@ import { ImportDictionary } from "./ImportDictionary";
13
7
  import { SdkAliasCollection } from "./SdkAliasCollection";
14
8
  import { SdkHttpParameterProgrammer } from "./SdkHttpParameterProgrammer";
15
9
  import { SdkImportWizard } from "./SdkImportWizard";
10
+ import { sizeOf } from "../../internal/legacy";
16
11
 
17
12
  export namespace SdkHttpSimulationProgrammer {
18
13
  export const random =
19
14
  (project: INestiaProject) =>
20
15
  (importer: ImportDictionary) =>
21
- (route: ITypedHttpRoute): ts.VariableStatement => {
16
+ (route: ITypedHttpRoute): Node => {
22
17
  const output = SdkAliasCollection.responseBody(project)(importer)(route);
23
18
  return constant("random")(
24
- ts.factory.createArrowFunction(
19
+ TypeScriptFactory.createArrowFunction(
25
20
  undefined,
26
21
  undefined,
27
22
  [],
28
23
  project.config.primitive === false
29
24
  ? output
30
- : ts.factory.createTypeReferenceNode(
25
+ : TypeScriptFactory.createTypeReferenceNode(
31
26
  SdkImportWizard.Resolved(importer),
32
27
  [output],
33
28
  ),
34
29
  undefined,
35
- ts.factory.createCallExpression(
30
+ TypeScriptFactory.createCallExpression(
36
31
  IdentifierFactory.access(
37
- ts.factory.createIdentifier(SdkImportWizard.typia(importer)),
32
+ TypeScriptFactory.createIdentifier(
33
+ SdkImportWizard.typia(importer),
34
+ ),
38
35
  "random",
39
36
  ),
40
37
  [output],
@@ -47,18 +44,18 @@ export namespace SdkHttpSimulationProgrammer {
47
44
  export const simulate =
48
45
  (project: INestiaProject) =>
49
46
  (importer: ImportDictionary) =>
50
- (route: ITypedHttpRoute): ts.VariableStatement => {
47
+ (route: ITypedHttpRoute): Node => {
51
48
  const output: boolean =
52
49
  project.config.propagate === true ||
53
- route.success.metadata.size() !== 0;
50
+ sizeOf(route.success.metadata) !== 0;
54
51
  const caller = () =>
55
- ts.factory.createCallExpression(
56
- ts.factory.createIdentifier("random"),
52
+ TypeScriptFactory.createCallExpression(
53
+ TypeScriptFactory.createIdentifier("random"),
57
54
  undefined,
58
55
  undefined,
59
56
  );
60
57
  return constant("simulate")(
61
- ts.factory.createArrowFunction(
58
+ TypeScriptFactory.createArrowFunction(
62
59
  undefined,
63
60
  undefined,
64
61
  [
@@ -67,11 +64,11 @@ export namespace SdkHttpSimulationProgrammer {
67
64
  0
68
65
  ? "connection"
69
66
  : "_connection",
70
- ts.factory.createTypeReferenceNode(
67
+ TypeScriptFactory.createTypeReferenceNode(
71
68
  SdkImportWizard.IConnection(importer),
72
69
  route.headerObject
73
70
  ? [
74
- ts.factory.createTypeReferenceNode(
71
+ TypeScriptFactory.createTypeReferenceNode(
75
72
  `${route.name}.Headers`,
76
73
  ),
77
74
  ]
@@ -86,38 +83,41 @@ export namespace SdkHttpSimulationProgrammer {
86
83
  prefix: false,
87
84
  }),
88
85
  ],
89
- ts.factory.createTypeReferenceNode(output ? "Output" : "void"),
86
+ TypeScriptFactory.createTypeReferenceNode(output ? "Output" : "void"),
90
87
  undefined,
91
- ts.factory.createBlock(
88
+ TypeScriptFactory.createBlock(
92
89
  [
93
90
  ...assert(project)(importer)(route),
94
- ts.factory.createReturnStatement(
91
+ TypeScriptFactory.createReturnStatement(
95
92
  project.config.propagate
96
- ? ts.factory.createAsExpression(
97
- ts.factory.createObjectLiteralExpression(
93
+ ? TypeScriptFactory.createAsExpression(
94
+ TypeScriptFactory.createObjectLiteralExpression(
98
95
  [
99
- ts.factory.createPropertyAssignment(
96
+ TypeScriptFactory.createPropertyAssignment(
100
97
  "success",
101
- ts.factory.createTrue(),
98
+ TypeScriptFactory.createTrue(),
102
99
  ),
103
- ts.factory.createPropertyAssignment(
100
+ TypeScriptFactory.createPropertyAssignment(
104
101
  "status",
105
102
  ExpressionFactory.number(
106
103
  route.success.status ??
107
104
  (route.method === "POST" ? 201 : 200),
108
105
  ),
109
106
  ),
110
- ts.factory.createPropertyAssignment(
107
+ TypeScriptFactory.createPropertyAssignment(
111
108
  "headers",
112
109
  LiteralFactory.write({
113
110
  "Content-Type": route.success.contentType,
114
111
  }),
115
112
  ),
116
- ts.factory.createPropertyAssignment("data", caller()),
113
+ TypeScriptFactory.createPropertyAssignment(
114
+ "data",
115
+ caller(),
116
+ ),
117
117
  ],
118
118
  true,
119
119
  ),
120
- ts.factory.createTypeReferenceNode("Output"),
120
+ TypeScriptFactory.createTypeReferenceNode("Output"),
121
121
  )
122
122
  : caller(),
123
123
  ),
@@ -131,16 +131,16 @@ export namespace SdkHttpSimulationProgrammer {
131
131
  const assert =
132
132
  (project: INestiaProject) =>
133
133
  (importer: ImportDictionary) =>
134
- (route: ITypedHttpRoute): ts.Statement[] => {
134
+ (route: ITypedHttpRoute): Node[] => {
135
135
  const parameters = SdkHttpParameterProgrammer.getSignificant(route, true);
136
136
  if (parameters.length === 0) return [];
137
137
 
138
138
  const typia = SdkImportWizard.typia(importer);
139
139
  const validator = StatementFactory.constant({
140
140
  name: "assert",
141
- value: ts.factory.createCallExpression(
141
+ value: TypeScriptFactory.createCallExpression(
142
142
  IdentifierFactory.access(
143
- ts.factory.createIdentifier(
143
+ TypeScriptFactory.createIdentifier(
144
144
  importer.external({
145
145
  file: `@nestia/fetcher`,
146
146
  declaration: false,
@@ -152,20 +152,20 @@ export namespace SdkHttpSimulationProgrammer {
152
152
  ),
153
153
  undefined,
154
154
  [
155
- ts.factory.createObjectLiteralExpression(
155
+ TypeScriptFactory.createObjectLiteralExpression(
156
156
  [
157
- ts.factory.createPropertyAssignment(
157
+ TypeScriptFactory.createPropertyAssignment(
158
158
  "method",
159
- ts.factory.createIdentifier("METADATA.method"),
159
+ TypeScriptFactory.createIdentifier("METADATA.method"),
160
160
  ),
161
- ts.factory.createPropertyAssignment(
161
+ TypeScriptFactory.createPropertyAssignment(
162
162
  "host",
163
- ts.factory.createIdentifier("connection.host"),
163
+ TypeScriptFactory.createIdentifier("connection.host"),
164
164
  ),
165
- ts.factory.createPropertyAssignment(
165
+ TypeScriptFactory.createPropertyAssignment(
166
166
  "path",
167
- ts.factory.createCallExpression(
168
- ts.factory.createIdentifier("path"),
167
+ TypeScriptFactory.createCallExpression(
168
+ TypeScriptFactory.createIdentifier("path"),
169
169
  undefined,
170
170
  SdkHttpParameterProgrammer.getArguments({
171
171
  project,
@@ -174,9 +174,9 @@ export namespace SdkHttpSimulationProgrammer {
174
174
  }),
175
175
  ),
176
176
  ),
177
- ts.factory.createPropertyAssignment(
177
+ TypeScriptFactory.createPropertyAssignment(
178
178
  "contentType",
179
- ts.factory.createIdentifier(
179
+ TypeScriptFactory.createIdentifier(
180
180
  JSON.stringify(route.success.contentType),
181
181
  ),
182
182
  ),
@@ -186,44 +186,44 @@ export namespace SdkHttpSimulationProgrammer {
186
186
  ],
187
187
  ),
188
188
  });
189
- const individual = parameters
189
+ const individual: Node[] = parameters
190
190
  .map((p) =>
191
- ts.factory.createCallExpression(
191
+ TypeScriptFactory.createCallExpression(
192
192
  (() => {
193
193
  const base = IdentifierFactory.access(
194
- ts.factory.createIdentifier("assert"),
194
+ TypeScriptFactory.createIdentifier("assert"),
195
195
  p.category,
196
196
  );
197
197
  if (p.category !== "param") return base;
198
- return ts.factory.createCallExpression(base, undefined, [
199
- ts.factory.createStringLiteral(p.name),
198
+ return TypeScriptFactory.createCallExpression(base, undefined, [
199
+ TypeScriptFactory.createStringLiteral(p.name),
200
200
  ]);
201
201
  })(),
202
202
  undefined,
203
203
  [
204
- ts.factory.createArrowFunction(
204
+ TypeScriptFactory.createArrowFunction(
205
205
  undefined,
206
206
  undefined,
207
207
  [],
208
208
  undefined,
209
209
  undefined,
210
- ts.factory.createCallExpression(
210
+ TypeScriptFactory.createCallExpression(
211
211
  IdentifierFactory.access(
212
- ts.factory.createIdentifier(typia),
212
+ TypeScriptFactory.createIdentifier(typia),
213
213
  "assert",
214
214
  ),
215
215
  undefined,
216
216
  [
217
217
  project.config.keyword === true
218
- ? ts.factory.createIdentifier(`props.${p.name}`)
219
- : ts.factory.createIdentifier(p.name),
218
+ ? TypeScriptFactory.createIdentifier(`props.${p.name}`)
219
+ : TypeScriptFactory.createIdentifier(p.name),
220
220
  ],
221
221
  ),
222
222
  ),
223
223
  ],
224
224
  ),
225
225
  )
226
- .map(ts.factory.createExpressionStatement);
226
+ .map(TypeScriptFactory.createExpressionStatement) as Node[];
227
227
  return [
228
228
  validator,
229
229
  ...(project.config.propagate !== true
@@ -233,53 +233,55 @@ export namespace SdkHttpSimulationProgrammer {
233
233
  };
234
234
 
235
235
  const tryAndCatch =
236
- (importer: ImportDictionary) => (individual: ts.Statement[]) =>
237
- ts.factory.createTryStatement(
238
- ts.factory.createBlock(individual, true),
239
- ts.factory.createCatchClause(
236
+ (importer: ImportDictionary) => (individual: Node[]) =>
237
+ TypeScriptFactory.createTryStatement(
238
+ TypeScriptFactory.createBlock(individual, true),
239
+ TypeScriptFactory.createCatchClause(
240
240
  "exp",
241
- ts.factory.createBlock(
241
+ TypeScriptFactory.createBlock(
242
242
  [
243
- ts.factory.createIfStatement(
244
- ts.factory.createLogicalNot(
245
- ts.factory.createCallExpression(
243
+ TypeScriptFactory.createIfStatement(
244
+ TypeScriptFactory.createLogicalNot(
245
+ TypeScriptFactory.createCallExpression(
246
246
  IdentifierFactory.access(
247
- ts.factory.createIdentifier(
247
+ TypeScriptFactory.createIdentifier(
248
248
  SdkImportWizard.typia(importer),
249
249
  ),
250
250
  "is",
251
251
  ),
252
252
  [
253
- ts.factory.createTypeReferenceNode(
253
+ TypeScriptFactory.createTypeReferenceNode(
254
254
  SdkImportWizard.HttpError(importer),
255
255
  ),
256
256
  ],
257
- [ts.factory.createIdentifier("exp")],
257
+ [TypeScriptFactory.createIdentifier("exp")],
258
258
  ),
259
259
  ),
260
- ts.factory.createThrowStatement(
261
- ts.factory.createIdentifier("exp"),
260
+ TypeScriptFactory.createThrowStatement(
261
+ TypeScriptFactory.createIdentifier("exp"),
262
262
  ),
263
263
  ),
264
- ts.factory.createReturnStatement(
265
- ts.factory.createAsExpression(
266
- ts.factory.createObjectLiteralExpression(
264
+ TypeScriptFactory.createReturnStatement(
265
+ TypeScriptFactory.createAsExpression(
266
+ TypeScriptFactory.createObjectLiteralExpression(
267
267
  [
268
- ts.factory.createPropertyAssignment(
268
+ TypeScriptFactory.createPropertyAssignment(
269
269
  "success",
270
- ts.factory.createFalse(),
270
+ TypeScriptFactory.createFalse(),
271
271
  ),
272
- ts.factory.createPropertyAssignment(
272
+ TypeScriptFactory.createPropertyAssignment(
273
273
  "status",
274
- ts.factory.createIdentifier("exp.status"),
274
+ TypeScriptFactory.createIdentifier("exp.status"),
275
275
  ),
276
- ts.factory.createPropertyAssignment(
276
+ TypeScriptFactory.createPropertyAssignment(
277
277
  "headers",
278
- ts.factory.createIdentifier("exp.headers"),
278
+ TypeScriptFactory.createIdentifier("exp.headers"),
279
279
  ),
280
- ts.factory.createPropertyAssignment(
280
+ TypeScriptFactory.createPropertyAssignment(
281
281
  "data",
282
- ts.factory.createIdentifier("exp.toJSON().message"),
282
+ TypeScriptFactory.createIdentifier(
283
+ "exp.toJSON().message",
284
+ ),
283
285
  ),
284
286
  ],
285
287
  true,
@@ -295,18 +297,18 @@ export namespace SdkHttpSimulationProgrammer {
295
297
  );
296
298
  }
297
299
 
298
- const constant = (name: string) => (expression: ts.Expression) =>
299
- ts.factory.createVariableStatement(
300
- [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
301
- ts.factory.createVariableDeclarationList(
300
+ const constant = (name: string) => (expression: Node) =>
301
+ TypeScriptFactory.createVariableStatement(
302
+ [TypeScriptFactory.createModifier(SyntaxKind.ExportKeyword)],
303
+ TypeScriptFactory.createVariableDeclarationList(
302
304
  [
303
- ts.factory.createVariableDeclaration(
304
- ts.factory.createIdentifier(name),
305
+ TypeScriptFactory.createVariableDeclaration(
306
+ TypeScriptFactory.createIdentifier(name),
305
307
  undefined,
306
308
  undefined,
307
309
  expression,
308
310
  ),
309
311
  ],
310
- ts.NodeFlags.Const,
312
+ NodeFlags.Const,
311
313
  ),
312
314
  );