@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.
- package/assets/bundle/distribute/package.json +1 -1
- package/lib/factories/ExpressionFactory.d.ts +9 -0
- package/lib/factories/ExpressionFactory.js +16 -0
- package/lib/factories/ExpressionFactory.js.map +1 -0
- package/lib/factories/IdentifierFactory.d.ts +22 -0
- package/lib/factories/IdentifierFactory.js +50 -0
- package/lib/factories/IdentifierFactory.js.map +1 -0
- package/lib/factories/LiteralFactory.d.ts +9 -0
- package/lib/factories/LiteralFactory.js +48 -0
- package/lib/factories/LiteralFactory.js.map +1 -0
- package/lib/factories/StatementFactory.d.ts +14 -0
- package/lib/factories/StatementFactory.js +20 -0
- package/lib/factories/StatementFactory.js.map +1 -0
- package/lib/factories/TypeFactory.d.ts +24 -0
- package/lib/factories/TypeFactory.js +27 -0
- package/lib/factories/TypeFactory.js.map +1 -0
- package/lib/generates/CloneGenerator.js +2 -2
- package/lib/generates/CloneGenerator.js.map +1 -1
- package/lib/generates/internal/E2eFileProgrammer.js +30 -29
- package/lib/generates/internal/E2eFileProgrammer.js.map +1 -1
- package/lib/generates/internal/FilePrinter.d.ts +2 -2
- package/lib/generates/internal/FilePrinter.js +14 -25
- package/lib/generates/internal/FilePrinter.js.map +1 -1
- package/lib/generates/internal/ImportDictionary.d.ts +1 -1
- package/lib/generates/internal/ImportDictionary.js +10 -9
- package/lib/generates/internal/ImportDictionary.js.map +1 -1
- package/lib/generates/internal/SdkAliasCollection.d.ts +12 -12
- package/lib/generates/internal/SdkAliasCollection.js +23 -25
- package/lib/generates/internal/SdkAliasCollection.js.map +1 -1
- package/lib/generates/internal/SdkFileProgrammer.js +2 -2
- package/lib/generates/internal/SdkFileProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpCloneProgrammer.d.ts +1 -1
- package/lib/generates/internal/SdkHttpCloneProgrammer.js +3 -3
- package/lib/generates/internal/SdkHttpCloneProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpFunctionProgrammer.d.ts +1 -1
- package/lib/generates/internal/SdkHttpFunctionProgrammer.js +45 -48
- package/lib/generates/internal/SdkHttpFunctionProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.d.ts +1 -1
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.js +61 -60
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpParameterProgrammer.d.ts +2 -2
- package/lib/generates/internal/SdkHttpParameterProgrammer.js +11 -13
- package/lib/generates/internal/SdkHttpParameterProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpRouteProgrammer.d.ts +1 -1
- package/lib/generates/internal/SdkHttpSimulationProgrammer.d.ts +1 -1
- package/lib/generates/internal/SdkHttpSimulationProgrammer.js +50 -48
- package/lib/generates/internal/SdkHttpSimulationProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkMcpRouteProgrammer.d.ts +1 -1
- package/lib/generates/internal/SdkMcpRouteProgrammer.js +54 -53
- package/lib/generates/internal/SdkMcpRouteProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkTypeProgrammer.d.ts +3 -3
- package/lib/generates/internal/SdkTypeProgrammer.js +42 -43
- package/lib/generates/internal/SdkTypeProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkTypeTagProgrammer.d.ts +2 -1
- package/lib/generates/internal/SdkTypeTagProgrammer.js +7 -9
- package/lib/generates/internal/SdkTypeTagProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.d.ts +2 -2
- package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js +45 -47
- package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketParameterProgrammer.d.ts +3 -3
- package/lib/generates/internal/SdkWebSocketParameterProgrammer.js +9 -9
- package/lib/generates/internal/SdkWebSocketParameterProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.d.ts +2 -2
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.js +34 -40
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.js.map +1 -1
- package/lib/transform.d.ts +5 -9
- package/lib/transform.js +8 -31
- package/lib/transform.js.map +1 -1
- package/package.json +11 -11
- package/src/factories/ExpressionFactory.ts +23 -0
- package/src/factories/IdentifierFactory.ts +84 -0
- package/src/factories/LiteralFactory.ts +54 -0
- package/src/factories/StatementFactory.ts +56 -0
- package/src/factories/TypeFactory.ts +27 -0
- package/src/generates/CloneGenerator.ts +8 -7
- package/src/generates/internal/E2eFileProgrammer.ts +59 -53
- package/src/generates/internal/FilePrinter.ts +28 -36
- package/src/generates/internal/ImportDictionary.ts +19 -21
- package/src/generates/internal/SdkAliasCollection.ts +55 -49
- package/src/generates/internal/SdkFileProgrammer.ts +4 -7
- package/src/generates/internal/SdkHttpCloneProgrammer.ts +11 -13
- package/src/generates/internal/SdkHttpFunctionProgrammer.ts +90 -101
- package/src/generates/internal/SdkHttpNamespaceProgrammer.ts +153 -166
- package/src/generates/internal/SdkHttpParameterProgrammer.ts +15 -17
- package/src/generates/internal/SdkHttpRouteProgrammer.ts +1 -1
- package/src/generates/internal/SdkHttpSimulationProgrammer.ts +121 -130
- package/src/generates/internal/SdkMcpRouteProgrammer.ts +135 -140
- package/src/generates/internal/SdkTypeProgrammer.ts +389 -382
- package/src/generates/internal/SdkTypeTagProgrammer.ts +13 -17
- package/src/generates/internal/SdkWebSocketNamespaceProgrammer.ts +124 -130
- package/src/generates/internal/SdkWebSocketParameterProgrammer.ts +17 -15
- package/src/generates/internal/SdkWebSocketRouteProgrammer.ts +112 -139
- package/src/transform.ts +14 -45
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
2
|
+
type EntityName,
|
|
3
|
+
type Expression,
|
|
4
|
+
type Node,
|
|
3
5
|
NodeFlags,
|
|
6
|
+
type ParameterDeclaration,
|
|
7
|
+
type Statement,
|
|
4
8
|
SyntaxKind,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
|
29
|
+
return factory.createFunctionDeclaration(
|
|
24
30
|
[
|
|
25
|
-
|
|
26
|
-
|
|
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
|
-
|
|
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
|
-
|
|
55
|
+
factory.createTypeReferenceNode("Promise", [
|
|
54
56
|
project.config.propagate === true ||
|
|
55
57
|
route.success.binary === true ||
|
|
56
58
|
sizeOf(route.success.metadata) !== 0
|
|
57
|
-
?
|
|
58
|
-
:
|
|
59
|
+
? factory.createTypeReferenceNode(`${route.name}.Output`)
|
|
60
|
+
: factory.createTypeReferenceNode("void"),
|
|
59
61
|
]),
|
|
60
|
-
|
|
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):
|
|
71
|
-
const access = (name: string):
|
|
69
|
+
(route: ITypedHttpRoute): Statement[] => {
|
|
70
|
+
const access = (name: string): Expression =>
|
|
72
71
|
project.config.keyword === true
|
|
73
|
-
?
|
|
74
|
-
|
|
72
|
+
? factory.createPropertyAccessExpression(
|
|
73
|
+
factory.createIdentifier("props"),
|
|
75
74
|
name,
|
|
76
75
|
)
|
|
77
|
-
:
|
|
76
|
+
: factory.createIdentifier(name);
|
|
78
77
|
const fetch = () =>
|
|
79
|
-
|
|
78
|
+
factory.createCallExpression(
|
|
80
79
|
IdentifierFactory.access(
|
|
81
|
-
|
|
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
|
-
?
|
|
95
|
+
? factory.createObjectLiteralExpression(
|
|
97
96
|
[
|
|
98
|
-
|
|
99
|
-
|
|
97
|
+
factory.createSpreadAssignment(
|
|
98
|
+
factory.createIdentifier("connection"),
|
|
100
99
|
),
|
|
101
|
-
|
|
100
|
+
factory.createPropertyAssignment(
|
|
102
101
|
"headers",
|
|
103
|
-
|
|
102
|
+
factory.createObjectLiteralExpression(
|
|
104
103
|
[
|
|
105
|
-
|
|
104
|
+
factory.createSpreadAssignment(
|
|
106
105
|
IdentifierFactory.access(
|
|
107
|
-
|
|
106
|
+
factory.createIdentifier("connection"),
|
|
108
107
|
"headers",
|
|
109
108
|
),
|
|
110
109
|
),
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
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
|
-
:
|
|
127
|
-
|
|
123
|
+
: factory.createIdentifier("connection"),
|
|
124
|
+
factory.createObjectLiteralExpression(
|
|
128
125
|
[
|
|
129
|
-
|
|
126
|
+
factory.createSpreadAssignment(
|
|
130
127
|
IdentifierFactory.access(
|
|
131
|
-
|
|
128
|
+
factory.createIdentifier(route.name),
|
|
132
129
|
"METADATA",
|
|
133
130
|
),
|
|
134
131
|
),
|
|
135
|
-
|
|
132
|
+
factory.createPropertyAssignment(
|
|
136
133
|
"template",
|
|
137
134
|
IdentifierFactory.access(
|
|
138
135
|
IdentifierFactory.access(
|
|
139
|
-
|
|
136
|
+
factory.createIdentifier(route.name),
|
|
140
137
|
"METADATA",
|
|
141
138
|
),
|
|
142
139
|
"path",
|
|
143
140
|
),
|
|
144
141
|
),
|
|
145
|
-
|
|
142
|
+
factory.createPropertyAssignment(
|
|
146
143
|
"path",
|
|
147
|
-
|
|
144
|
+
factory.createCallExpression(
|
|
148
145
|
IdentifierFactory.access(
|
|
149
|
-
|
|
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
|
-
? [
|
|
165
|
+
? [factory.createIdentifier(`${route.name}.stringify`)]
|
|
169
166
|
: []),
|
|
170
167
|
],
|
|
171
168
|
);
|
|
172
169
|
const output = (awaiter: boolean) =>
|
|
173
170
|
project.config.simulate
|
|
174
|
-
?
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
171
|
+
? factory.createConditionalExpression(
|
|
172
|
+
factory.createStrictEquality(
|
|
173
|
+
factory.createTrue(),
|
|
174
|
+
factory.createIdentifier("connection.simulate"),
|
|
178
175
|
),
|
|
179
176
|
undefined,
|
|
180
|
-
|
|
181
|
-
|
|
177
|
+
factory.createCallExpression(
|
|
178
|
+
factory.createIdentifier(`${route.name}.simulate`),
|
|
182
179
|
[],
|
|
183
180
|
[
|
|
184
|
-
|
|
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
|
-
?
|
|
193
|
+
? factory.createAwaitExpression(fetch())
|
|
199
194
|
: fetch();
|
|
200
195
|
return [
|
|
201
196
|
...(project.config.assert
|
|
202
197
|
? SdkHttpParameterProgrammer.getSignificant(route, true).map((p) =>
|
|
203
|
-
|
|
204
|
-
|
|
198
|
+
factory.createExpressionStatement(
|
|
199
|
+
factory.createCallExpression(
|
|
205
200
|
IdentifierFactory.access(
|
|
206
|
-
|
|
207
|
-
SdkImportWizard.typia(importer),
|
|
208
|
-
),
|
|
201
|
+
factory.createIdentifier(SdkImportWizard.typia(importer)),
|
|
209
202
|
"assert",
|
|
210
203
|
),
|
|
211
|
-
[
|
|
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
|
-
? [
|
|
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:
|
|
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:
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
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
|
-
?
|
|
250
|
-
|
|
242
|
+
? factory.createCallExpression(
|
|
243
|
+
factory.createIdentifier("Object.assign"),
|
|
251
244
|
[],
|
|
252
245
|
[
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
accessor(data)(tuple.source),
|
|
256
|
-
),
|
|
246
|
+
factory.createIdentifier(headers),
|
|
247
|
+
factory.createIdentifier(accessor(data)(tuple.source)),
|
|
257
248
|
],
|
|
258
249
|
)
|
|
259
|
-
:
|
|
260
|
-
|
|
250
|
+
: factory.createBinaryExpression(
|
|
251
|
+
factory.createIdentifier(
|
|
261
252
|
accessor(headers)(tuple.target ?? tuple.source),
|
|
262
253
|
),
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
accessor(data)(tuple.source),
|
|
266
|
-
),
|
|
254
|
+
factory.createToken(SyntaxKind.EqualsToken),
|
|
255
|
+
factory.createIdentifier(accessor(data)(tuple.source)),
|
|
267
256
|
),
|
|
268
257
|
),
|
|
269
|
-
].map(
|
|
258
|
+
].map(factory.createExpressionStatement);
|
|
270
259
|
return [
|
|
271
|
-
|
|
260
|
+
factory.createVariableStatement(
|
|
272
261
|
[],
|
|
273
|
-
|
|
262
|
+
factory.createVariableDeclarationList(
|
|
274
263
|
[
|
|
275
|
-
|
|
264
|
+
factory.createVariableDeclaration(
|
|
276
265
|
output,
|
|
277
266
|
undefined,
|
|
278
|
-
SdkAliasCollection.response(project)(importer)(
|
|
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
|
-
|
|
288
|
-
|
|
278
|
+
factory.createIfStatement(
|
|
279
|
+
factory.createIdentifier(accessor(output)("success")),
|
|
289
280
|
assigners.length === 1
|
|
290
281
|
? assigners[0]!
|
|
291
|
-
:
|
|
282
|
+
: factory.createBlock(assigners, true),
|
|
292
283
|
undefined,
|
|
293
284
|
),
|
|
294
285
|
]
|
|
295
286
|
: assigners),
|
|
296
|
-
|
|
297
|
-
TypeScriptFactory.createIdentifier(output),
|
|
298
|
-
),
|
|
287
|
+
factory.createReturnStatement(factory.createIdentifier(output)),
|
|
299
288
|
];
|
|
300
289
|
};
|
|
301
290
|
}
|