@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,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { LiteralFactory } from "@nestia/factory";
|
|
1
|
+
import { type TypeNode, factory } from "@ttsc/factory";
|
|
3
2
|
import { IMetadataTypeTag } from "@typia/interface";
|
|
4
3
|
|
|
4
|
+
import { LiteralFactory } from "../../factories/LiteralFactory";
|
|
5
5
|
import { ImportDictionary } from "./ImportDictionary";
|
|
6
6
|
|
|
7
7
|
export namespace SdkTypeTagProgrammer {
|
|
@@ -9,12 +9,12 @@ export namespace SdkTypeTagProgrammer {
|
|
|
9
9
|
importer: ImportDictionary,
|
|
10
10
|
from: "object" | "array" | "boolean" | "number" | "bigint" | "string",
|
|
11
11
|
tag: IMetadataTypeTag,
|
|
12
|
-
) => {
|
|
12
|
+
): TypeNode => {
|
|
13
13
|
const name: string = tag.name.split("<")[0]!;
|
|
14
14
|
if (PREDEFINED[from]?.has(name) === true)
|
|
15
|
-
return
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
return factory.createTypeReferenceNode(
|
|
16
|
+
factory.createQualifiedName(
|
|
17
|
+
factory.createIdentifier(
|
|
18
18
|
importer.external({
|
|
19
19
|
declaration: true,
|
|
20
20
|
file: `typia`,
|
|
@@ -22,17 +22,13 @@ export namespace SdkTypeTagProgrammer {
|
|
|
22
22
|
name: "tags",
|
|
23
23
|
}),
|
|
24
24
|
),
|
|
25
|
-
|
|
25
|
+
factory.createIdentifier(name),
|
|
26
26
|
),
|
|
27
|
-
[
|
|
28
|
-
TypeScriptFactory.createLiteralTypeNode(
|
|
29
|
-
LiteralFactory.write(tag.value) as any,
|
|
30
|
-
),
|
|
31
|
-
],
|
|
27
|
+
[factory.createLiteralTypeNode(LiteralFactory.write(tag.value) as any)],
|
|
32
28
|
);
|
|
33
|
-
return
|
|
34
|
-
|
|
35
|
-
|
|
29
|
+
return factory.createTypeReferenceNode(
|
|
30
|
+
factory.createQualifiedName(
|
|
31
|
+
factory.createIdentifier(
|
|
36
32
|
importer.external({
|
|
37
33
|
declaration: true,
|
|
38
34
|
file: `typia`,
|
|
@@ -40,10 +36,10 @@ export namespace SdkTypeTagProgrammer {
|
|
|
40
36
|
name: "tags",
|
|
41
37
|
}),
|
|
42
38
|
),
|
|
43
|
-
|
|
39
|
+
factory.createIdentifier("TagBase"),
|
|
44
40
|
),
|
|
45
41
|
[
|
|
46
|
-
|
|
42
|
+
factory.createLiteralTypeNode(
|
|
47
43
|
LiteralFactory.write({
|
|
48
44
|
target: from,
|
|
49
45
|
kind: tag.kind,
|
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
type Block,
|
|
3
|
+
type Expression,
|
|
4
|
+
NodeFlags,
|
|
5
|
+
type Statement,
|
|
6
|
+
SyntaxKind,
|
|
7
|
+
type TypeNode,
|
|
8
|
+
factory,
|
|
9
|
+
} from "@ttsc/factory";
|
|
3
10
|
|
|
11
|
+
import { ExpressionFactory } from "../../factories/ExpressionFactory";
|
|
12
|
+
import { IdentifierFactory } from "../../factories/IdentifierFactory";
|
|
13
|
+
import { TypeFactory } from "../../factories/TypeFactory";
|
|
4
14
|
import { INestiaProject } from "../../structures/INestiaProject";
|
|
5
15
|
import { ITypedWebSocketRoute } from "../../structures/ITypedWebSocketRoute";
|
|
6
16
|
import { FilePrinter } from "./FilePrinter";
|
|
@@ -12,11 +22,11 @@ export namespace SdkWebSocketNamespaceProgrammer {
|
|
|
12
22
|
export const write =
|
|
13
23
|
(project: INestiaProject) =>
|
|
14
24
|
(importer: ImportDictionary) =>
|
|
15
|
-
(route: ITypedWebSocketRoute):
|
|
16
|
-
|
|
17
|
-
[
|
|
18
|
-
|
|
19
|
-
|
|
25
|
+
(route: ITypedWebSocketRoute): Statement =>
|
|
26
|
+
factory.createModuleDeclaration(
|
|
27
|
+
[factory.createToken(SyntaxKind.ExportKeyword)],
|
|
28
|
+
factory.createIdentifier(route.name),
|
|
29
|
+
factory.createModuleBlock([
|
|
20
30
|
...writeTypes(project)(importer)(route),
|
|
21
31
|
FilePrinter.enter(),
|
|
22
32
|
writePath(project)(route),
|
|
@@ -27,12 +37,12 @@ export namespace SdkWebSocketNamespaceProgrammer {
|
|
|
27
37
|
const writeTypes =
|
|
28
38
|
(project: INestiaProject) =>
|
|
29
39
|
(importer: ImportDictionary) =>
|
|
30
|
-
(route: ITypedWebSocketRoute):
|
|
31
|
-
const output:
|
|
32
|
-
const declare = (name: string, type:
|
|
40
|
+
(route: ITypedWebSocketRoute): Statement[] => {
|
|
41
|
+
const output: Statement[] = [];
|
|
42
|
+
const declare = (name: string, type: TypeNode) =>
|
|
33
43
|
output.push(
|
|
34
|
-
|
|
35
|
-
[
|
|
44
|
+
factory.createTypeAliasDeclaration(
|
|
45
|
+
[factory.createModifier(SyntaxKind.ExportKeyword)],
|
|
36
46
|
name,
|
|
37
47
|
undefined,
|
|
38
48
|
type,
|
|
@@ -43,12 +53,12 @@ export namespace SdkWebSocketNamespaceProgrammer {
|
|
|
43
53
|
declare("Props", SdkAliasCollection.websocketProps(route));
|
|
44
54
|
declare(
|
|
45
55
|
"Output",
|
|
46
|
-
|
|
47
|
-
|
|
56
|
+
factory.createTypeLiteralNode([
|
|
57
|
+
factory.createPropertySignature(
|
|
48
58
|
undefined,
|
|
49
59
|
"connector",
|
|
50
60
|
undefined,
|
|
51
|
-
|
|
61
|
+
factory.createTypeReferenceNode(
|
|
52
62
|
importer.external({
|
|
53
63
|
declaration: false,
|
|
54
64
|
file: "tgrid",
|
|
@@ -56,40 +66,36 @@ export namespace SdkWebSocketNamespaceProgrammer {
|
|
|
56
66
|
name: "WebSocketConnector",
|
|
57
67
|
}),
|
|
58
68
|
[
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
69
|
+
factory.createTypeReferenceNode("Header"),
|
|
70
|
+
factory.createTypeReferenceNode("Provider"),
|
|
71
|
+
factory.createTypeReferenceNode("Listener"),
|
|
62
72
|
],
|
|
63
73
|
),
|
|
64
74
|
),
|
|
65
|
-
|
|
75
|
+
factory.createPropertySignature(
|
|
66
76
|
undefined,
|
|
67
77
|
"driver",
|
|
68
78
|
undefined,
|
|
69
|
-
|
|
79
|
+
factory.createTypeReferenceNode(
|
|
70
80
|
importer.external({
|
|
71
81
|
declaration: true,
|
|
72
82
|
file: "tgrid",
|
|
73
83
|
type: "element",
|
|
74
84
|
name: "Driver",
|
|
75
85
|
}),
|
|
76
|
-
[
|
|
86
|
+
[factory.createTypeReferenceNode("Listener")],
|
|
77
87
|
),
|
|
78
88
|
),
|
|
79
|
-
|
|
89
|
+
factory.createPropertySignature(
|
|
80
90
|
undefined,
|
|
81
91
|
"reconnect",
|
|
82
92
|
undefined,
|
|
83
|
-
|
|
93
|
+
factory.createFunctionTypeNode(
|
|
84
94
|
undefined,
|
|
85
95
|
[],
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
[
|
|
89
|
-
TypeScriptFactory.createKeywordTypeNode(
|
|
90
|
-
SyntaxKind.VoidKeyword,
|
|
91
|
-
),
|
|
92
|
-
],
|
|
96
|
+
factory.createTypeReferenceNode(
|
|
97
|
+
factory.createIdentifier("Promise"),
|
|
98
|
+
[factory.createKeywordTypeNode(SyntaxKind.VoidKeyword)],
|
|
93
99
|
),
|
|
94
100
|
),
|
|
95
101
|
),
|
|
@@ -122,10 +128,10 @@ export namespace SdkWebSocketNamespaceProgrammer {
|
|
|
122
128
|
|
|
123
129
|
const writePath =
|
|
124
130
|
(project: INestiaProject) =>
|
|
125
|
-
(route: ITypedWebSocketRoute):
|
|
126
|
-
const out = (body:
|
|
131
|
+
(route: ITypedWebSocketRoute): Statement => {
|
|
132
|
+
const out = (body: Block | Expression) =>
|
|
127
133
|
constant("path")(
|
|
128
|
-
|
|
134
|
+
factory.createArrowFunction(
|
|
129
135
|
[],
|
|
130
136
|
[],
|
|
131
137
|
SdkWebSocketParameterProgrammer.getParameterDeclarations({
|
|
@@ -140,63 +146,56 @@ export namespace SdkWebSocketNamespaceProgrammer {
|
|
|
140
146
|
),
|
|
141
147
|
);
|
|
142
148
|
if (route.pathParameters.length === 0 && route.query === null)
|
|
143
|
-
return out(
|
|
149
|
+
return out(factory.createStringLiteral(route.path));
|
|
144
150
|
|
|
145
151
|
const access = (key: string) =>
|
|
146
152
|
project.config.keyword === true
|
|
147
|
-
?
|
|
148
|
-
|
|
153
|
+
? factory.createPropertyAccessExpression(
|
|
154
|
+
factory.createIdentifier("props"),
|
|
149
155
|
key,
|
|
150
156
|
)
|
|
151
|
-
:
|
|
157
|
+
: factory.createIdentifier(key);
|
|
152
158
|
const template = () => {
|
|
153
159
|
const split: string[] = route.path.split(":");
|
|
154
|
-
if (split.length === 1)
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
TypeScriptFactory.createTemplateHead(split[0]!),
|
|
160
|
+
if (split.length === 1) return factory.createStringLiteral(route.path);
|
|
161
|
+
return factory.createTemplateExpression(
|
|
162
|
+
factory.createTemplateHead(split[0]!),
|
|
158
163
|
split.slice(1).map((s, i, arr) => {
|
|
159
164
|
const name: string = s.split("/")[0]!;
|
|
160
|
-
return
|
|
161
|
-
|
|
162
|
-
|
|
165
|
+
return factory.createTemplateSpan(
|
|
166
|
+
factory.createCallExpression(
|
|
167
|
+
factory.createIdentifier("encodeURIComponent"),
|
|
163
168
|
undefined,
|
|
164
169
|
[
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
170
|
+
factory.createBinaryExpression(
|
|
171
|
+
factory.createCallChain(
|
|
172
|
+
factory.createPropertyAccessChain(
|
|
168
173
|
access(
|
|
169
174
|
route.pathParameters.find((p) => p.field === name)!
|
|
170
175
|
.name,
|
|
171
176
|
),
|
|
172
|
-
|
|
173
|
-
SyntaxKind.QuestionDotToken,
|
|
174
|
-
),
|
|
177
|
+
factory.createToken(SyntaxKind.QuestionDotToken),
|
|
175
178
|
"toString",
|
|
176
179
|
),
|
|
177
180
|
undefined,
|
|
178
181
|
undefined,
|
|
179
182
|
[],
|
|
180
183
|
),
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
),
|
|
184
|
-
TypeScriptFactory.createStringLiteral("null"),
|
|
184
|
+
factory.createToken(SyntaxKind.QuestionQuestionToken),
|
|
185
|
+
factory.createStringLiteral("null"),
|
|
185
186
|
),
|
|
186
187
|
],
|
|
187
188
|
),
|
|
188
189
|
(i !== arr.length - 1
|
|
189
|
-
?
|
|
190
|
-
:
|
|
191
|
-
s.substring(name.length),
|
|
192
|
-
),
|
|
190
|
+
? factory.createTemplateMiddle
|
|
191
|
+
: factory.createTemplateTail)(s.substring(name.length)),
|
|
193
192
|
);
|
|
194
193
|
}),
|
|
195
194
|
);
|
|
196
195
|
};
|
|
197
196
|
if (route.query === null) return out(template());
|
|
198
197
|
|
|
199
|
-
const block = (expr:
|
|
198
|
+
const block = (expr: Expression) => {
|
|
200
199
|
const computeName = (str: string): string =>
|
|
201
200
|
[...route.pathParameters, ...(route.query ? [route.query] : [])].find(
|
|
202
201
|
(p) => p.name === str,
|
|
@@ -204,31 +203,31 @@ export namespace SdkWebSocketNamespaceProgrammer {
|
|
|
204
203
|
? computeName("_" + str)
|
|
205
204
|
: str;
|
|
206
205
|
const variables: string = computeName("variables");
|
|
207
|
-
return
|
|
206
|
+
return factory.createBlock(
|
|
208
207
|
[
|
|
209
208
|
local(variables)("URLSearchParams")(
|
|
210
|
-
|
|
211
|
-
|
|
209
|
+
factory.createNewExpression(
|
|
210
|
+
factory.createIdentifier("URLSearchParams"),
|
|
212
211
|
[],
|
|
213
212
|
[],
|
|
214
213
|
),
|
|
215
214
|
),
|
|
216
|
-
|
|
215
|
+
factory.createForOfStatement(
|
|
217
216
|
undefined,
|
|
218
|
-
|
|
217
|
+
factory.createVariableDeclarationList(
|
|
219
218
|
[
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
219
|
+
factory.createVariableDeclaration(
|
|
220
|
+
factory.createArrayBindingPattern([
|
|
221
|
+
factory.createBindingElement(
|
|
223
222
|
undefined,
|
|
224
223
|
undefined,
|
|
225
|
-
|
|
224
|
+
factory.createIdentifier("key"),
|
|
226
225
|
undefined,
|
|
227
226
|
),
|
|
228
|
-
|
|
227
|
+
factory.createBindingElement(
|
|
229
228
|
undefined,
|
|
230
229
|
undefined,
|
|
231
|
-
|
|
230
|
+
factory.createIdentifier("value"),
|
|
232
231
|
undefined,
|
|
233
232
|
),
|
|
234
233
|
]),
|
|
@@ -239,54 +238,49 @@ export namespace SdkWebSocketNamespaceProgrammer {
|
|
|
239
238
|
],
|
|
240
239
|
NodeFlags.Const,
|
|
241
240
|
),
|
|
242
|
-
|
|
243
|
-
|
|
241
|
+
factory.createCallExpression(
|
|
242
|
+
factory.createIdentifier("Object.entries"),
|
|
244
243
|
undefined,
|
|
245
|
-
[
|
|
246
|
-
TypeScriptFactory.createAsExpression(
|
|
247
|
-
expr,
|
|
248
|
-
TypeFactory.keyword("any"),
|
|
249
|
-
),
|
|
250
|
-
],
|
|
244
|
+
[factory.createAsExpression(expr, TypeFactory.keyword("any"))],
|
|
251
245
|
),
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
246
|
+
factory.createIfStatement(
|
|
247
|
+
factory.createStrictEquality(
|
|
248
|
+
factory.createIdentifier("undefined"),
|
|
249
|
+
factory.createIdentifier("value"),
|
|
256
250
|
),
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
251
|
+
factory.createContinueStatement(),
|
|
252
|
+
factory.createIfStatement(
|
|
253
|
+
factory.createCallExpression(
|
|
254
|
+
factory.createIdentifier("Array.isArray"),
|
|
261
255
|
undefined,
|
|
262
|
-
[
|
|
256
|
+
[factory.createIdentifier("value")],
|
|
263
257
|
),
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
258
|
+
factory.createExpressionStatement(
|
|
259
|
+
factory.createCallExpression(
|
|
260
|
+
factory.createPropertyAccessExpression(
|
|
261
|
+
factory.createIdentifier("value"),
|
|
262
|
+
factory.createIdentifier("forEach"),
|
|
269
263
|
),
|
|
270
264
|
undefined,
|
|
271
265
|
[
|
|
272
|
-
|
|
266
|
+
factory.createArrowFunction(
|
|
273
267
|
undefined,
|
|
274
268
|
undefined,
|
|
275
269
|
[IdentifierFactory.parameter("elem")],
|
|
276
270
|
undefined,
|
|
277
271
|
undefined,
|
|
278
|
-
|
|
272
|
+
factory.createCallExpression(
|
|
279
273
|
IdentifierFactory.access(
|
|
280
|
-
|
|
274
|
+
factory.createIdentifier(variables),
|
|
281
275
|
"append",
|
|
282
276
|
),
|
|
283
277
|
undefined,
|
|
284
278
|
[
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
279
|
+
factory.createIdentifier("key"),
|
|
280
|
+
factory.createCallExpression(
|
|
281
|
+
factory.createIdentifier("String"),
|
|
288
282
|
undefined,
|
|
289
|
-
[
|
|
283
|
+
[factory.createIdentifier("elem")],
|
|
290
284
|
),
|
|
291
285
|
],
|
|
292
286
|
),
|
|
@@ -294,19 +288,19 @@ export namespace SdkWebSocketNamespaceProgrammer {
|
|
|
294
288
|
],
|
|
295
289
|
),
|
|
296
290
|
),
|
|
297
|
-
|
|
298
|
-
|
|
291
|
+
factory.createExpressionStatement(
|
|
292
|
+
factory.createCallExpression(
|
|
299
293
|
IdentifierFactory.access(
|
|
300
|
-
|
|
294
|
+
factory.createIdentifier(variables),
|
|
301
295
|
"set",
|
|
302
296
|
),
|
|
303
297
|
undefined,
|
|
304
298
|
[
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
299
|
+
factory.createIdentifier("key"),
|
|
300
|
+
factory.createCallExpression(
|
|
301
|
+
factory.createIdentifier("String"),
|
|
308
302
|
undefined,
|
|
309
|
-
[
|
|
303
|
+
[factory.createIdentifier("value")],
|
|
310
304
|
),
|
|
311
305
|
],
|
|
312
306
|
),
|
|
@@ -315,35 +309,35 @@ export namespace SdkWebSocketNamespaceProgrammer {
|
|
|
315
309
|
),
|
|
316
310
|
),
|
|
317
311
|
local("location")("string")(template()),
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
312
|
+
factory.createReturnStatement(
|
|
313
|
+
factory.createConditionalExpression(
|
|
314
|
+
factory.createStrictEquality(
|
|
321
315
|
ExpressionFactory.number(0),
|
|
322
316
|
IdentifierFactory.access(
|
|
323
|
-
|
|
317
|
+
factory.createIdentifier(variables),
|
|
324
318
|
"size",
|
|
325
319
|
),
|
|
326
320
|
),
|
|
327
321
|
undefined,
|
|
328
|
-
|
|
322
|
+
factory.createIdentifier("location"),
|
|
329
323
|
undefined,
|
|
330
|
-
|
|
331
|
-
|
|
324
|
+
factory.createTemplateExpression(
|
|
325
|
+
factory.createTemplateHead(""),
|
|
332
326
|
[
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
327
|
+
factory.createTemplateSpan(
|
|
328
|
+
factory.createIdentifier("location"),
|
|
329
|
+
factory.createTemplateMiddle("?"),
|
|
336
330
|
),
|
|
337
|
-
|
|
338
|
-
|
|
331
|
+
factory.createTemplateSpan(
|
|
332
|
+
factory.createCallExpression(
|
|
339
333
|
IdentifierFactory.access(
|
|
340
|
-
|
|
334
|
+
factory.createIdentifier(variables),
|
|
341
335
|
"toString",
|
|
342
336
|
),
|
|
343
337
|
undefined,
|
|
344
338
|
undefined,
|
|
345
339
|
),
|
|
346
|
-
|
|
340
|
+
factory.createTemplateTail(""),
|
|
347
341
|
),
|
|
348
342
|
],
|
|
349
343
|
),
|
|
@@ -357,27 +351,27 @@ export namespace SdkWebSocketNamespaceProgrammer {
|
|
|
357
351
|
};
|
|
358
352
|
}
|
|
359
353
|
|
|
360
|
-
const local = (name: string) => (type: string) => (expression:
|
|
361
|
-
|
|
354
|
+
const local = (name: string) => (type: string) => (expression: Expression) =>
|
|
355
|
+
factory.createVariableStatement(
|
|
362
356
|
[],
|
|
363
|
-
|
|
357
|
+
factory.createVariableDeclarationList(
|
|
364
358
|
[
|
|
365
|
-
|
|
359
|
+
factory.createVariableDeclaration(
|
|
366
360
|
name,
|
|
367
361
|
undefined,
|
|
368
|
-
|
|
362
|
+
factory.createTypeReferenceNode(type),
|
|
369
363
|
expression,
|
|
370
364
|
),
|
|
371
365
|
],
|
|
372
366
|
NodeFlags.Const,
|
|
373
367
|
),
|
|
374
368
|
);
|
|
375
|
-
const constant = (name: string) => (expression:
|
|
376
|
-
|
|
377
|
-
[
|
|
378
|
-
|
|
369
|
+
const constant = (name: string) => (expression: Expression) =>
|
|
370
|
+
factory.createVariableStatement(
|
|
371
|
+
[factory.createModifier(SyntaxKind.ExportKeyword)],
|
|
372
|
+
factory.createVariableDeclarationList(
|
|
379
373
|
[
|
|
380
|
-
|
|
374
|
+
factory.createVariableDeclaration(
|
|
381
375
|
name,
|
|
382
376
|
undefined,
|
|
383
377
|
undefined,
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
type ParameterDeclaration,
|
|
3
|
+
type TypeNode,
|
|
4
|
+
factory,
|
|
5
|
+
} from "@ttsc/factory";
|
|
2
6
|
|
|
3
7
|
import { INestiaProject } from "../../structures/INestiaProject";
|
|
4
8
|
import { ITypedWebSocketRoute } from "../../structures/ITypedWebSocketRoute";
|
|
@@ -7,7 +11,7 @@ import { SdkAliasCollection } from "./SdkAliasCollection";
|
|
|
7
11
|
export namespace SdkWebSocketParameterProgrammer {
|
|
8
12
|
export interface IEntry {
|
|
9
13
|
key: string;
|
|
10
|
-
type:
|
|
14
|
+
type: TypeNode;
|
|
11
15
|
}
|
|
12
16
|
|
|
13
17
|
export const getEntries = (props: {
|
|
@@ -26,7 +30,7 @@ export namespace SdkWebSocketParameterProgrammer {
|
|
|
26
30
|
? [
|
|
27
31
|
{
|
|
28
32
|
key: "query",
|
|
29
|
-
type:
|
|
33
|
+
type: factory.createTypeReferenceNode(`${prefix}Query`),
|
|
30
34
|
},
|
|
31
35
|
]
|
|
32
36
|
: []),
|
|
@@ -34,9 +38,7 @@ export namespace SdkWebSocketParameterProgrammer {
|
|
|
34
38
|
? [
|
|
35
39
|
{
|
|
36
40
|
key: "provider",
|
|
37
|
-
type:
|
|
38
|
-
`${prefix}Provider`,
|
|
39
|
-
),
|
|
41
|
+
type: factory.createTypeReferenceNode(`${prefix}Provider`),
|
|
40
42
|
},
|
|
41
43
|
]
|
|
42
44
|
: []),
|
|
@@ -48,23 +50,23 @@ export namespace SdkWebSocketParameterProgrammer {
|
|
|
48
50
|
route: ITypedWebSocketRoute;
|
|
49
51
|
provider: boolean;
|
|
50
52
|
prefix: boolean;
|
|
51
|
-
}):
|
|
53
|
+
}): ParameterDeclaration[] => {
|
|
52
54
|
const entries: IEntry[] = getEntries(props);
|
|
53
55
|
if (entries.length === 0) return [];
|
|
54
56
|
else if (props.project.config.keyword === true) {
|
|
55
57
|
const typeName: string = props.prefix
|
|
56
58
|
? `${props.route.name}.Props`
|
|
57
59
|
: "Props";
|
|
58
|
-
const node:
|
|
59
|
-
?
|
|
60
|
-
:
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
const node: TypeNode = props.provider
|
|
61
|
+
? factory.createTypeReferenceNode(typeName)
|
|
62
|
+
: factory.createTypeReferenceNode("Omit", [
|
|
63
|
+
factory.createTypeReferenceNode(typeName),
|
|
64
|
+
factory.createLiteralTypeNode(
|
|
65
|
+
factory.createStringLiteral("provider"),
|
|
64
66
|
),
|
|
65
67
|
]);
|
|
66
68
|
return [
|
|
67
|
-
|
|
69
|
+
factory.createParameterDeclaration(
|
|
68
70
|
undefined,
|
|
69
71
|
undefined,
|
|
70
72
|
"props",
|
|
@@ -74,7 +76,7 @@ export namespace SdkWebSocketParameterProgrammer {
|
|
|
74
76
|
];
|
|
75
77
|
}
|
|
76
78
|
return entries.map((entry) =>
|
|
77
|
-
|
|
79
|
+
factory.createParameterDeclaration(
|
|
78
80
|
undefined,
|
|
79
81
|
undefined,
|
|
80
82
|
entry.key,
|