@nestia/sdk 12.0.0-dev.20260612.2 → 12.0.0-dev.20260619.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 (93) hide show
  1. package/assets/bundle/distribute/package.json +1 -1
  2. package/lib/factories/ExpressionFactory.d.ts +9 -0
  3. package/lib/factories/ExpressionFactory.js +16 -0
  4. package/lib/factories/ExpressionFactory.js.map +1 -0
  5. package/lib/factories/IdentifierFactory.d.ts +22 -0
  6. package/lib/factories/IdentifierFactory.js +50 -0
  7. package/lib/factories/IdentifierFactory.js.map +1 -0
  8. package/lib/factories/LiteralFactory.d.ts +9 -0
  9. package/lib/factories/LiteralFactory.js +48 -0
  10. package/lib/factories/LiteralFactory.js.map +1 -0
  11. package/lib/factories/StatementFactory.d.ts +14 -0
  12. package/lib/factories/StatementFactory.js +20 -0
  13. package/lib/factories/StatementFactory.js.map +1 -0
  14. package/lib/factories/TypeFactory.d.ts +24 -0
  15. package/lib/factories/TypeFactory.js +27 -0
  16. package/lib/factories/TypeFactory.js.map +1 -0
  17. package/lib/generates/CloneGenerator.js +2 -2
  18. package/lib/generates/CloneGenerator.js.map +1 -1
  19. package/lib/generates/internal/E2eFileProgrammer.js +30 -29
  20. package/lib/generates/internal/E2eFileProgrammer.js.map +1 -1
  21. package/lib/generates/internal/FilePrinter.d.ts +2 -2
  22. package/lib/generates/internal/FilePrinter.js +14 -25
  23. package/lib/generates/internal/FilePrinter.js.map +1 -1
  24. package/lib/generates/internal/ImportDictionary.d.ts +1 -1
  25. package/lib/generates/internal/ImportDictionary.js +10 -9
  26. package/lib/generates/internal/ImportDictionary.js.map +1 -1
  27. package/lib/generates/internal/SdkAliasCollection.d.ts +12 -12
  28. package/lib/generates/internal/SdkAliasCollection.js +23 -25
  29. package/lib/generates/internal/SdkAliasCollection.js.map +1 -1
  30. package/lib/generates/internal/SdkFileProgrammer.js +2 -2
  31. package/lib/generates/internal/SdkFileProgrammer.js.map +1 -1
  32. package/lib/generates/internal/SdkHttpCloneProgrammer.d.ts +1 -1
  33. package/lib/generates/internal/SdkHttpCloneProgrammer.js +3 -3
  34. package/lib/generates/internal/SdkHttpCloneProgrammer.js.map +1 -1
  35. package/lib/generates/internal/SdkHttpFunctionProgrammer.d.ts +1 -1
  36. package/lib/generates/internal/SdkHttpFunctionProgrammer.js +45 -48
  37. package/lib/generates/internal/SdkHttpFunctionProgrammer.js.map +1 -1
  38. package/lib/generates/internal/SdkHttpNamespaceProgrammer.d.ts +1 -1
  39. package/lib/generates/internal/SdkHttpNamespaceProgrammer.js +61 -60
  40. package/lib/generates/internal/SdkHttpNamespaceProgrammer.js.map +1 -1
  41. package/lib/generates/internal/SdkHttpParameterProgrammer.d.ts +2 -2
  42. package/lib/generates/internal/SdkHttpParameterProgrammer.js +11 -13
  43. package/lib/generates/internal/SdkHttpParameterProgrammer.js.map +1 -1
  44. package/lib/generates/internal/SdkHttpRouteProgrammer.d.ts +1 -1
  45. package/lib/generates/internal/SdkHttpSimulationProgrammer.d.ts +1 -1
  46. package/lib/generates/internal/SdkHttpSimulationProgrammer.js +50 -48
  47. package/lib/generates/internal/SdkHttpSimulationProgrammer.js.map +1 -1
  48. package/lib/generates/internal/SdkMcpRouteProgrammer.d.ts +1 -1
  49. package/lib/generates/internal/SdkMcpRouteProgrammer.js +54 -53
  50. package/lib/generates/internal/SdkMcpRouteProgrammer.js.map +1 -1
  51. package/lib/generates/internal/SdkTypeProgrammer.d.ts +3 -3
  52. package/lib/generates/internal/SdkTypeProgrammer.js +42 -43
  53. package/lib/generates/internal/SdkTypeProgrammer.js.map +1 -1
  54. package/lib/generates/internal/SdkTypeTagProgrammer.d.ts +2 -1
  55. package/lib/generates/internal/SdkTypeTagProgrammer.js +7 -9
  56. package/lib/generates/internal/SdkTypeTagProgrammer.js.map +1 -1
  57. package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.d.ts +2 -2
  58. package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js +45 -47
  59. package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js.map +1 -1
  60. package/lib/generates/internal/SdkWebSocketParameterProgrammer.d.ts +3 -3
  61. package/lib/generates/internal/SdkWebSocketParameterProgrammer.js +9 -9
  62. package/lib/generates/internal/SdkWebSocketParameterProgrammer.js.map +1 -1
  63. package/lib/generates/internal/SdkWebSocketRouteProgrammer.d.ts +2 -2
  64. package/lib/generates/internal/SdkWebSocketRouteProgrammer.js +34 -40
  65. package/lib/generates/internal/SdkWebSocketRouteProgrammer.js.map +1 -1
  66. package/lib/transform.d.ts +5 -9
  67. package/lib/transform.js +8 -31
  68. package/lib/transform.js.map +1 -1
  69. package/package.json +11 -11
  70. package/src/factories/ExpressionFactory.ts +23 -0
  71. package/src/factories/IdentifierFactory.ts +84 -0
  72. package/src/factories/LiteralFactory.ts +54 -0
  73. package/src/factories/StatementFactory.ts +56 -0
  74. package/src/factories/TypeFactory.ts +27 -0
  75. package/src/generates/CloneGenerator.ts +8 -7
  76. package/src/generates/internal/E2eFileProgrammer.ts +59 -53
  77. package/src/generates/internal/FilePrinter.ts +28 -36
  78. package/src/generates/internal/ImportDictionary.ts +19 -21
  79. package/src/generates/internal/SdkAliasCollection.ts +55 -49
  80. package/src/generates/internal/SdkFileProgrammer.ts +4 -7
  81. package/src/generates/internal/SdkHttpCloneProgrammer.ts +11 -13
  82. package/src/generates/internal/SdkHttpFunctionProgrammer.ts +90 -101
  83. package/src/generates/internal/SdkHttpNamespaceProgrammer.ts +153 -166
  84. package/src/generates/internal/SdkHttpParameterProgrammer.ts +15 -17
  85. package/src/generates/internal/SdkHttpRouteProgrammer.ts +1 -1
  86. package/src/generates/internal/SdkHttpSimulationProgrammer.ts +121 -130
  87. package/src/generates/internal/SdkMcpRouteProgrammer.ts +135 -140
  88. package/src/generates/internal/SdkTypeProgrammer.ts +389 -382
  89. package/src/generates/internal/SdkTypeTagProgrammer.ts +13 -17
  90. package/src/generates/internal/SdkWebSocketNamespaceProgrammer.ts +124 -130
  91. package/src/generates/internal/SdkWebSocketParameterProgrammer.ts +17 -15
  92. package/src/generates/internal/SdkWebSocketRouteProgrammer.ts +112 -139
  93. package/src/transform.ts +14 -45
@@ -1,11 +1,17 @@
1
1
  import {
2
- Node,
2
+ type EntityName,
3
+ type Expression,
4
+ type Node,
3
5
  NodeFlags,
6
+ type ParameterDeclaration,
7
+ type Statement,
4
8
  SyntaxKind,
5
- TypeScriptFactory,
6
- } from "@nestia/factory";
7
- import { IdentifierFactory, TypeFactory } from "@nestia/factory";
9
+ type TypeNode,
10
+ factory,
11
+ } from "@ttsc/factory";
8
12
 
13
+ import { IdentifierFactory } from "../../factories/IdentifierFactory";
14
+ import { TypeFactory } from "../../factories/TypeFactory";
9
15
  import { sizeOf } from "../../internal/legacy";
10
16
  import { INestiaProject } from "../../structures/INestiaProject";
11
17
  import { ITypedHttpRoute } from "../../structures/ITypedHttpRoute";
@@ -20,10 +26,10 @@ export namespace SdkHttpFunctionProgrammer {
20
26
  (project: INestiaProject) =>
21
27
  (importer: ImportDictionary) =>
22
28
  (route: ITypedHttpRoute): Node => {
23
- return TypeScriptFactory.createFunctionDeclaration(
29
+ return factory.createFunctionDeclaration(
24
30
  [
25
- TypeScriptFactory.createModifier(SyntaxKind.ExportKeyword),
26
- TypeScriptFactory.createModifier(SyntaxKind.AsyncKeyword),
31
+ factory.createModifier(SyntaxKind.ExportKeyword),
32
+ factory.createModifier(SyntaxKind.AsyncKeyword),
27
33
  ],
28
34
  undefined,
29
35
  route.name,
@@ -31,54 +37,47 @@ export namespace SdkHttpFunctionProgrammer {
31
37
  [
32
38
  IdentifierFactory.parameter(
33
39
  "connection",
34
- TypeScriptFactory.createTypeReferenceNode(
40
+ factory.createTypeReferenceNode(
35
41
  SdkImportWizard.IConnection(importer),
36
42
  route.headerObject !== null
37
- ? [
38
- TypeScriptFactory.createTypeReferenceNode(
39
- `${route.name}.Headers`,
40
- ),
41
- ]
43
+ ? [factory.createTypeReferenceNode(`${route.name}.Headers`)]
42
44
  : undefined,
43
45
  ),
44
46
  ),
45
- ...SdkHttpParameterProgrammer.getParameterDeclarations({
47
+ ...(SdkHttpParameterProgrammer.getParameterDeclarations({
46
48
  project,
47
49
  importer,
48
50
  route,
49
51
  body: true,
50
52
  prefix: true,
51
- }),
53
+ }) as ParameterDeclaration[]),
52
54
  ],
53
- TypeScriptFactory.createTypeReferenceNode("Promise", [
55
+ factory.createTypeReferenceNode("Promise", [
54
56
  project.config.propagate === true ||
55
57
  route.success.binary === true ||
56
58
  sizeOf(route.success.metadata) !== 0
57
- ? TypeScriptFactory.createTypeReferenceNode(`${route.name}.Output`)
58
- : TypeScriptFactory.createTypeReferenceNode("void"),
59
+ ? factory.createTypeReferenceNode(`${route.name}.Output`)
60
+ : factory.createTypeReferenceNode("void"),
59
61
  ]),
60
- TypeScriptFactory.createBlock(
61
- writeBody(project)(importer)(route),
62
- true,
63
- ),
62
+ factory.createBlock(writeBody(project)(importer)(route), true),
64
63
  );
65
64
  };
66
65
 
67
66
  const writeBody =
68
67
  (project: INestiaProject) =>
69
68
  (importer: ImportDictionary) =>
70
- (route: ITypedHttpRoute): Node[] => {
71
- const access = (name: string): Node =>
69
+ (route: ITypedHttpRoute): Statement[] => {
70
+ const access = (name: string): Expression =>
72
71
  project.config.keyword === true
73
- ? TypeScriptFactory.createPropertyAccessExpression(
74
- TypeScriptFactory.createIdentifier("props"),
72
+ ? factory.createPropertyAccessExpression(
73
+ factory.createIdentifier("props"),
75
74
  name,
76
75
  )
77
- : TypeScriptFactory.createIdentifier(name);
76
+ : factory.createIdentifier(name);
78
77
  const fetch = () =>
79
- TypeScriptFactory.createCallExpression(
78
+ factory.createCallExpression(
80
79
  IdentifierFactory.access(
81
- TypeScriptFactory.createIdentifier(
80
+ factory.createIdentifier(
82
81
  SdkImportWizard.Fetcher(
83
82
  !!route.body?.encrypted || route.success.encrypted,
84
83
  )(importer),
@@ -93,26 +92,24 @@ export namespace SdkHttpFunctionProgrammer {
93
92
  : undefined,
94
93
  [
95
94
  route.body && route.body.contentType !== "multipart/form-data"
96
- ? TypeScriptFactory.createObjectLiteralExpression(
95
+ ? factory.createObjectLiteralExpression(
97
96
  [
98
- TypeScriptFactory.createSpreadAssignment(
99
- TypeScriptFactory.createIdentifier("connection"),
97
+ factory.createSpreadAssignment(
98
+ factory.createIdentifier("connection"),
100
99
  ),
101
- TypeScriptFactory.createPropertyAssignment(
100
+ factory.createPropertyAssignment(
102
101
  "headers",
103
- TypeScriptFactory.createObjectLiteralExpression(
102
+ factory.createObjectLiteralExpression(
104
103
  [
105
- TypeScriptFactory.createSpreadAssignment(
104
+ factory.createSpreadAssignment(
106
105
  IdentifierFactory.access(
107
- TypeScriptFactory.createIdentifier("connection"),
106
+ factory.createIdentifier("connection"),
108
107
  "headers",
109
108
  ),
110
109
  ),
111
- TypeScriptFactory.createPropertyAssignment(
112
- TypeScriptFactory.createStringLiteral(
113
- "Content-Type",
114
- ),
115
- TypeScriptFactory.createStringLiteral(
110
+ factory.createPropertyAssignment(
111
+ factory.createStringLiteral("Content-Type"),
112
+ factory.createStringLiteral(
116
113
  route.body?.contentType ?? "application/json",
117
114
  ),
118
115
  ),
@@ -123,30 +120,30 @@ export namespace SdkHttpFunctionProgrammer {
123
120
  ],
124
121
  true,
125
122
  )
126
- : TypeScriptFactory.createIdentifier("connection"),
127
- TypeScriptFactory.createObjectLiteralExpression(
123
+ : factory.createIdentifier("connection"),
124
+ factory.createObjectLiteralExpression(
128
125
  [
129
- TypeScriptFactory.createSpreadAssignment(
126
+ factory.createSpreadAssignment(
130
127
  IdentifierFactory.access(
131
- TypeScriptFactory.createIdentifier(route.name),
128
+ factory.createIdentifier(route.name),
132
129
  "METADATA",
133
130
  ),
134
131
  ),
135
- TypeScriptFactory.createPropertyAssignment(
132
+ factory.createPropertyAssignment(
136
133
  "template",
137
134
  IdentifierFactory.access(
138
135
  IdentifierFactory.access(
139
- TypeScriptFactory.createIdentifier(route.name),
136
+ factory.createIdentifier(route.name),
140
137
  "METADATA",
141
138
  ),
142
139
  "path",
143
140
  ),
144
141
  ),
145
- TypeScriptFactory.createPropertyAssignment(
142
+ factory.createPropertyAssignment(
146
143
  "path",
147
- TypeScriptFactory.createCallExpression(
144
+ factory.createCallExpression(
148
145
  IdentifierFactory.access(
149
- TypeScriptFactory.createIdentifier(route.name),
146
+ factory.createIdentifier(route.name),
150
147
  "path",
151
148
  ),
152
149
  undefined,
@@ -154,7 +151,7 @@ export namespace SdkHttpFunctionProgrammer {
154
151
  project,
155
152
  route,
156
153
  body: false,
157
- }),
154
+ }) as Expression[],
158
155
  ),
159
156
  ),
160
157
  ],
@@ -165,57 +162,53 @@ export namespace SdkHttpFunctionProgrammer {
165
162
  route.body !== null &&
166
163
  (route.body.contentType === "application/json" ||
167
164
  route.body.encrypted === true)
168
- ? [TypeScriptFactory.createIdentifier(`${route.name}.stringify`)]
165
+ ? [factory.createIdentifier(`${route.name}.stringify`)]
169
166
  : []),
170
167
  ],
171
168
  );
172
169
  const output = (awaiter: boolean) =>
173
170
  project.config.simulate
174
- ? TypeScriptFactory.createConditionalExpression(
175
- TypeScriptFactory.createStrictEquality(
176
- TypeScriptFactory.createTrue(),
177
- TypeScriptFactory.createIdentifier("connection.simulate"),
171
+ ? factory.createConditionalExpression(
172
+ factory.createStrictEquality(
173
+ factory.createTrue(),
174
+ factory.createIdentifier("connection.simulate"),
178
175
  ),
179
176
  undefined,
180
- TypeScriptFactory.createCallExpression(
181
- TypeScriptFactory.createIdentifier(`${route.name}.simulate`),
177
+ factory.createCallExpression(
178
+ factory.createIdentifier(`${route.name}.simulate`),
182
179
  [],
183
180
  [
184
- TypeScriptFactory.createIdentifier("connection"),
185
- ...SdkHttpParameterProgrammer.getArguments({
181
+ factory.createIdentifier("connection"),
182
+ ...(SdkHttpParameterProgrammer.getArguments({
186
183
  project,
187
184
  route,
188
185
  body: true,
189
- }),
186
+ }) as Expression[]),
190
187
  ],
191
188
  ),
192
189
  undefined,
193
- awaiter
194
- ? TypeScriptFactory.createAwaitExpression(fetch())
195
- : fetch(),
190
+ awaiter ? factory.createAwaitExpression(fetch()) : fetch(),
196
191
  )
197
192
  : awaiter
198
- ? TypeScriptFactory.createAwaitExpression(fetch())
193
+ ? factory.createAwaitExpression(fetch())
199
194
  : fetch();
200
195
  return [
201
196
  ...(project.config.assert
202
197
  ? SdkHttpParameterProgrammer.getSignificant(route, true).map((p) =>
203
- TypeScriptFactory.createExpressionStatement(
204
- TypeScriptFactory.createCallExpression(
198
+ factory.createExpressionStatement(
199
+ factory.createCallExpression(
205
200
  IdentifierFactory.access(
206
- TypeScriptFactory.createIdentifier(
207
- SdkImportWizard.typia(importer),
208
- ),
201
+ factory.createIdentifier(SdkImportWizard.typia(importer)),
209
202
  "assert",
210
203
  ),
211
- [TypeScriptFactory.createTypeQueryNode(access(p.name))],
204
+ [factory.createTypeQueryNode(access(p.name) as EntityName)],
212
205
  [access(p.name)],
213
206
  ),
214
207
  ),
215
208
  )
216
209
  : []),
217
210
  ...(route.success.setHeaders.length === 0
218
- ? [TypeScriptFactory.createReturnStatement(output(false))]
211
+ ? [factory.createReturnStatement(output(false))]
219
212
  : writeSetHeaders(project)(importer)(route)(output(true))),
220
213
  ];
221
214
  };
@@ -224,7 +217,7 @@ export namespace SdkHttpFunctionProgrammer {
224
217
  (project: INestiaProject) =>
225
218
  (importer: ImportDictionary) =>
226
219
  (route: ITypedHttpRoute) =>
227
- (condition: Node): Node[] => {
220
+ (condition: Expression): Statement[] => {
228
221
  const accessor = (x: string) => (y: string) =>
229
222
  x[0] === "[" ? `${x}${y}` : `${x}.${y}`;
230
223
  const output: string = StringUtil.escapeDuplicate([
@@ -238,44 +231,42 @@ export namespace SdkHttpFunctionProgrammer {
238
231
  ? accessor(output)("data")
239
232
  : output;
240
233
 
241
- const assigners: Node[] = [
242
- TypeScriptFactory.createBinaryExpression(
243
- TypeScriptFactory.createIdentifier(headers),
244
- TypeScriptFactory.createToken(SyntaxKind.QuestionQuestionEqualsToken),
245
- TypeScriptFactory.createObjectLiteralExpression([]),
234
+ const assigners: Statement[] = [
235
+ factory.createBinaryExpression(
236
+ factory.createIdentifier(headers),
237
+ factory.createToken(SyntaxKind.QuestionQuestionEqualsToken),
238
+ factory.createObjectLiteralExpression([]),
246
239
  ),
247
240
  ...route.success.setHeaders.map((tuple) =>
248
241
  tuple.type === "assigner"
249
- ? TypeScriptFactory.createCallExpression(
250
- TypeScriptFactory.createIdentifier("Object.assign"),
242
+ ? factory.createCallExpression(
243
+ factory.createIdentifier("Object.assign"),
251
244
  [],
252
245
  [
253
- TypeScriptFactory.createIdentifier(headers),
254
- TypeScriptFactory.createIdentifier(
255
- accessor(data)(tuple.source),
256
- ),
246
+ factory.createIdentifier(headers),
247
+ factory.createIdentifier(accessor(data)(tuple.source)),
257
248
  ],
258
249
  )
259
- : TypeScriptFactory.createBinaryExpression(
260
- TypeScriptFactory.createIdentifier(
250
+ : factory.createBinaryExpression(
251
+ factory.createIdentifier(
261
252
  accessor(headers)(tuple.target ?? tuple.source),
262
253
  ),
263
- TypeScriptFactory.createToken(SyntaxKind.EqualsToken),
264
- TypeScriptFactory.createIdentifier(
265
- accessor(data)(tuple.source),
266
- ),
254
+ factory.createToken(SyntaxKind.EqualsToken),
255
+ factory.createIdentifier(accessor(data)(tuple.source)),
267
256
  ),
268
257
  ),
269
- ].map(TypeScriptFactory.createExpressionStatement);
258
+ ].map(factory.createExpressionStatement);
270
259
  return [
271
- TypeScriptFactory.createVariableStatement(
260
+ factory.createVariableStatement(
272
261
  [],
273
- TypeScriptFactory.createVariableDeclarationList(
262
+ factory.createVariableDeclarationList(
274
263
  [
275
- TypeScriptFactory.createVariableDeclaration(
264
+ factory.createVariableDeclaration(
276
265
  output,
277
266
  undefined,
278
- SdkAliasCollection.response(project)(importer)(route),
267
+ SdkAliasCollection.response(project)(importer)(
268
+ route,
269
+ ) as TypeNode,
279
270
  condition,
280
271
  ),
281
272
  ],
@@ -284,18 +275,16 @@ export namespace SdkHttpFunctionProgrammer {
284
275
  ),
285
276
  ...(project.config.propagate
286
277
  ? [
287
- TypeScriptFactory.createIfStatement(
288
- TypeScriptFactory.createIdentifier(accessor(output)("success")),
278
+ factory.createIfStatement(
279
+ factory.createIdentifier(accessor(output)("success")),
289
280
  assigners.length === 1
290
281
  ? assigners[0]!
291
- : TypeScriptFactory.createBlock(assigners, true),
282
+ : factory.createBlock(assigners, true),
292
283
  undefined,
293
284
  ),
294
285
  ]
295
286
  : assigners),
296
- TypeScriptFactory.createReturnStatement(
297
- TypeScriptFactory.createIdentifier(output),
298
- ),
287
+ factory.createReturnStatement(factory.createIdentifier(output)),
299
288
  ];
300
289
  };
301
290
  }