@azure-tools/typespec-go 0.17.0-dev.1 → 0.17.0-dev.11
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/dist/src/codegen/core/helpers.d.ts +44 -3
- package/dist/src/codegen/core/helpers.d.ts.map +1 -1
- package/dist/src/codegen/core/helpers.js +68 -3
- package/dist/src/codegen/core/helpers.js.map +1 -1
- package/dist/src/codegen/core/index.d.ts +1 -0
- package/dist/src/codegen/core/index.d.ts.map +1 -1
- package/dist/src/codegen/core/index.js +1 -0
- package/dist/src/codegen/core/index.js.map +1 -1
- package/dist/src/codegen/core/models.d.ts.map +1 -1
- package/dist/src/codegen/core/models.js +229 -61
- package/dist/src/codegen/core/models.js.map +1 -1
- package/dist/src/codegen/core/operations.js +37 -15
- package/dist/src/codegen/core/operations.js.map +1 -1
- package/dist/src/codegen/core/request-handler.d.ts.map +1 -1
- package/dist/src/codegen/core/request-handler.js +11 -8
- package/dist/src/codegen/core/request-handler.js.map +1 -1
- package/dist/src/codegen/core/unions.d.ts +17 -0
- package/dist/src/codegen/core/unions.d.ts.map +1 -0
- package/dist/src/codegen/core/unions.js +545 -0
- package/dist/src/codegen/core/unions.js.map +1 -0
- package/dist/src/codegen/emitter.d.ts.map +1 -1
- package/dist/src/codegen/emitter.js +9 -0
- package/dist/src/codegen/emitter.js.map +1 -1
- package/dist/src/codegen/fake/servers.js +1 -1
- package/dist/src/codegen/fake/servers.js.map +1 -1
- package/dist/src/codemodel/module.d.ts +2 -0
- package/dist/src/codemodel/module.d.ts.map +1 -1
- package/dist/src/codemodel/module.js +1 -0
- package/dist/src/codemodel/module.js.map +1 -1
- package/dist/src/codemodel/param.d.ts +2 -1
- package/dist/src/codemodel/param.d.ts.map +1 -1
- package/dist/src/codemodel/param.js.map +1 -1
- package/dist/src/codemodel/result.d.ts +3 -1
- package/dist/src/codemodel/result.d.ts.map +1 -1
- package/dist/src/codemodel/result.js.map +1 -1
- package/dist/src/codemodel/type.d.ts +41 -1
- package/dist/src/codemodel/type.d.ts.map +1 -1
- package/dist/src/codemodel/type.js +38 -1
- package/dist/src/codemodel/type.js.map +1 -1
- package/dist/src/tcgcadapter/clients.d.ts.map +1 -1
- package/dist/src/tcgcadapter/clients.js +13 -11
- package/dist/src/tcgcadapter/clients.js.map +1 -1
- package/dist/src/tcgcadapter/types.d.ts +1 -0
- package/dist/src/tcgcadapter/types.d.ts.map +1 -1
- package/dist/src/tcgcadapter/types.js +91 -2
- package/dist/src/tcgcadapter/types.js.map +1 -1
- package/package.json +16 -16
|
@@ -0,0 +1,545 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
import * as go from "../../codemodel/index.js";
|
|
6
|
+
import { CodegenError } from "./errors.js";
|
|
7
|
+
import * as helpers from "./helpers.js";
|
|
8
|
+
import { ImportManager } from "./imports.js";
|
|
9
|
+
/**
|
|
10
|
+
* creates the content for unions.go and unions_serde.go files.
|
|
11
|
+
* if the package contains no union types, undefined is returned.
|
|
12
|
+
*
|
|
13
|
+
* @param pkg contains the package content
|
|
14
|
+
* @returns the text for the files or undefined
|
|
15
|
+
*/
|
|
16
|
+
export function generateUnions(pkg) {
|
|
17
|
+
if (pkg.unions.length === 0) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
const indent = new helpers.Indentation();
|
|
21
|
+
const imports = new ImportManager(pkg);
|
|
22
|
+
const typeDefs = generateUnionTypes(pkg.unions, imports, indent);
|
|
23
|
+
let text = helpers.contentPreamble(pkg);
|
|
24
|
+
text += imports.text();
|
|
25
|
+
text += typeDefs;
|
|
26
|
+
return {
|
|
27
|
+
types: text,
|
|
28
|
+
serde: generateUnionsSerde(pkg),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* creates the union type definitions
|
|
33
|
+
*
|
|
34
|
+
* @param goUnions the union types to emit
|
|
35
|
+
* @param imports the import manager currently in scope
|
|
36
|
+
* @param indent the indentation helper currently in scope
|
|
37
|
+
* @returns the text for the union type definitions
|
|
38
|
+
*/
|
|
39
|
+
function generateUnionTypes(goUnions, imports, indent) {
|
|
40
|
+
let text = "";
|
|
41
|
+
for (const goUnion of goUnions) {
|
|
42
|
+
text += helpers.formatDocCommentWithPrefix(goUnion.name, goUnion.docs);
|
|
43
|
+
text += `type ${goUnion.name} struct {\n`;
|
|
44
|
+
indent.push();
|
|
45
|
+
for (const field of goUnion.fields) {
|
|
46
|
+
imports.addForType(field.type);
|
|
47
|
+
text += helpers.formatDocCommentWithPrefix(field.name, field.docs);
|
|
48
|
+
text += `${indent.get()}${field.name} ${helpers.star(field.byValue)}${go.getTypeDeclaration(field.type, goUnion.pkg)}\n`;
|
|
49
|
+
}
|
|
50
|
+
text += `${indent.pop().get()}}\n\n`;
|
|
51
|
+
}
|
|
52
|
+
return text;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* creates the un/marshalling implementations
|
|
56
|
+
*
|
|
57
|
+
* @param pkg contains the package content
|
|
58
|
+
* @returns the un/marshalling methods
|
|
59
|
+
*/
|
|
60
|
+
function generateUnionsSerde(pkg) {
|
|
61
|
+
const indent = new helpers.Indentation();
|
|
62
|
+
const imports = new ImportManager(pkg);
|
|
63
|
+
imports.add("encoding/json");
|
|
64
|
+
imports.add("errors");
|
|
65
|
+
imports.add("fmt");
|
|
66
|
+
let emitProbe = false;
|
|
67
|
+
let emitFloat = false;
|
|
68
|
+
let emitRequired = false;
|
|
69
|
+
let content = "";
|
|
70
|
+
for (const goUnion of pkg.unions) {
|
|
71
|
+
content += generateMarshalJson(goUnion, indent);
|
|
72
|
+
const result = generateUnmarshalJson(goUnion, indent);
|
|
73
|
+
content += result.content;
|
|
74
|
+
// don't overwrite an existing true with false
|
|
75
|
+
emitProbe = emitProbe ? true : result.emitProbe;
|
|
76
|
+
emitFloat = emitFloat ? true : result.emitFloat;
|
|
77
|
+
emitRequired = emitRequired ? true : result.emitRequired;
|
|
78
|
+
}
|
|
79
|
+
let text = helpers.contentPreamble(pkg);
|
|
80
|
+
text += imports.text();
|
|
81
|
+
text += content;
|
|
82
|
+
if (emitProbe) {
|
|
83
|
+
text += jsonKindProbe;
|
|
84
|
+
}
|
|
85
|
+
if (emitFloat) {
|
|
86
|
+
text += jsonNumberIsFloat;
|
|
87
|
+
}
|
|
88
|
+
if (emitRequired) {
|
|
89
|
+
text += hasRequiredFields;
|
|
90
|
+
}
|
|
91
|
+
return text;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* creates the MarshalJSON method for the specified union type
|
|
95
|
+
*
|
|
96
|
+
* @param goUnion the type for which to emit the method
|
|
97
|
+
* @param indent the indentation helper currently in scope
|
|
98
|
+
* @returns the text for the MarshalJSON method
|
|
99
|
+
*/
|
|
100
|
+
function generateMarshalJson(goUnion, indent) {
|
|
101
|
+
const receiver = getReceiverName(goUnion);
|
|
102
|
+
let text = `func (${receiver} ${goUnion.name}) MarshalJSON() ([]byte, error) {\n`;
|
|
103
|
+
text += `${indent.get()}var val any\n`;
|
|
104
|
+
text += `${indent.get()}set := 0\n`;
|
|
105
|
+
// check each field for nil, if it's not nil, assign it to val and increment set count
|
|
106
|
+
for (const field of goUnion.fields) {
|
|
107
|
+
text += `${indent.get()}${helpers.buildIfBlock(indent, {
|
|
108
|
+
condition: `${receiver}.${field.name} != nil`,
|
|
109
|
+
body: (indent) => {
|
|
110
|
+
let controlBlock = `${indent.get()}val = ${receiver}.${field.name}\n`;
|
|
111
|
+
controlBlock += `${indent.get()}set++\n`;
|
|
112
|
+
return controlBlock;
|
|
113
|
+
},
|
|
114
|
+
})}\n`;
|
|
115
|
+
}
|
|
116
|
+
// switch on the number of fields set.
|
|
117
|
+
// 0 - return an error stating no fields were set
|
|
118
|
+
// 1 - marshal the value
|
|
119
|
+
// more than 1 - return an error stating only one field can be set
|
|
120
|
+
text += `${indent.get()}${helpers.buildSwitchCase(indent, "set", [
|
|
121
|
+
{
|
|
122
|
+
expression: "0",
|
|
123
|
+
clause: (indent) => `${indent.get()}return nil, fmt.Errorf("%T has no value", ${receiver})\n`,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
expression: "1",
|
|
127
|
+
clause: (indent) => `${indent.get()}return json.Marshal(val)\n`,
|
|
128
|
+
},
|
|
129
|
+
], {
|
|
130
|
+
clause: (indent) => `${indent.get()}return nil, fmt.Errorf("set only one field in %T", ${receiver})\n`,
|
|
131
|
+
})}`;
|
|
132
|
+
text += "}\n\n";
|
|
133
|
+
return text;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* creates the UnmarshalJSON method for the specified union type.
|
|
137
|
+
*
|
|
138
|
+
* mixed types e.g. string, number, array, object - requires jsonKind probe, might require jsonNumberIsFloat
|
|
139
|
+
* mixed objects e.g. Cat, Dog, Snake, Record<T> - requires hasRequiredFields, no jsonKind prob
|
|
140
|
+
*
|
|
141
|
+
* note that homogenous scalar types get folded into an enum by tcgc
|
|
142
|
+
* so we don't have to handle that case. e.g. "1 | 2 | 3.14" will be
|
|
143
|
+
* an enum type handled by the standard un/marshalling logic.
|
|
144
|
+
*
|
|
145
|
+
* if goUnion contains mixed types then emit probe + switch/case for jsonKind
|
|
146
|
+
* if there are mixed JSON numbers, collapse into single "case jsonNumber:"
|
|
147
|
+
* if goUnion contains mixed object types then "else" clause unmarshals into the Record<T>
|
|
148
|
+
* if this is in mixed types case, collapse into single "case jsonObject:"
|
|
149
|
+
*
|
|
150
|
+
* @param goUnion the type for which to emit the method
|
|
151
|
+
* @param indent the indentation helper currently in scope
|
|
152
|
+
* @returns the text for the UnmarshalJSON method and true/false if the JSON probe helper code should be emitted
|
|
153
|
+
*/
|
|
154
|
+
function generateUnmarshalJson(goUnion, indent) {
|
|
155
|
+
const receiver = getReceiverName(goUnion);
|
|
156
|
+
let text = `func (${receiver} *${goUnion.name}) UnmarshalJSON(data []byte) (err error) {\n`;
|
|
157
|
+
text += `${indent.get()}defer func() {\n`;
|
|
158
|
+
text += `${indent.push().get()}${helpers.buildIfBlock(indent, {
|
|
159
|
+
condition: "err != nil",
|
|
160
|
+
body: (indent) => `${indent.get()}err = fmt.Errorf("unmarshalling type %T: %s", ${receiver}, err.Error())\n`,
|
|
161
|
+
})}\n`;
|
|
162
|
+
text += `${indent.pop().get()}}()\n`;
|
|
163
|
+
const mixedTypes = getForMixedTypes(goUnion);
|
|
164
|
+
if (mixedTypes) {
|
|
165
|
+
text += `${indent.get()}${helpers.buildSwitchCase(indent, "probeJSONKind(data)", mixedTypes.cases, {
|
|
166
|
+
clause: (indent) => `${indent.get()}err = errors.New("unexpected JSON token")\n`,
|
|
167
|
+
})}`;
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
text += generateUnmarshalObjects(goUnion, indent);
|
|
171
|
+
}
|
|
172
|
+
text += `${indent.get()}return\n`;
|
|
173
|
+
text += "}\n\n";
|
|
174
|
+
return {
|
|
175
|
+
content: text,
|
|
176
|
+
emitFloat: mixedTypes ? mixedTypes.emitFloat : false,
|
|
177
|
+
emitProbe: mixedTypes ? true : false,
|
|
178
|
+
emitRequired: mixedTypes ? mixedTypes.emitRequired : true,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* generates the unmarshalling code for JSON objects.
|
|
183
|
+
* this includes typed and untyped objects i.e. Record<T>.
|
|
184
|
+
*
|
|
185
|
+
* @param goUnion the type for which to emit the code
|
|
186
|
+
* @param indent the indentation helper currently in scope
|
|
187
|
+
* @returns the text for unmarshalling JSON objects
|
|
188
|
+
*/
|
|
189
|
+
function generateUnmarshalObjects(goUnion, indent) {
|
|
190
|
+
// this is a union of object types e.g. Cat | Dog | Record<T>
|
|
191
|
+
const receiver = getReceiverName(goUnion);
|
|
192
|
+
let text = `${indent.get()}var rawMsg map[string]json.RawMessage\n`;
|
|
193
|
+
text += `${indent.get()}${helpers.buildIfBlock(indent, {
|
|
194
|
+
condition: "err = json.Unmarshal(data, &rawMsg); err != nil",
|
|
195
|
+
body: (indent) => `${indent.get()}return\n`,
|
|
196
|
+
})}\n`;
|
|
197
|
+
const jsonObjects = groupJsonObjects(goUnion);
|
|
198
|
+
// the codegen below assumes at most one map variant, which it treats
|
|
199
|
+
// as the fallback. a union with multiple maps (e.g. Foo | Record<int32>
|
|
200
|
+
// | Record<string>) would generate incorrect code, so fail instead.
|
|
201
|
+
if (jsonObjects.filter((field) => field.type.kind === "map").length > 1) {
|
|
202
|
+
throw new CodegenError("UnsupportedTsp", `union ${goUnion.name} has multiple map variants which is not supported`);
|
|
203
|
+
}
|
|
204
|
+
let ifBlock = { condition: "", body: () => "" };
|
|
205
|
+
const elseIfBlocks = new Array();
|
|
206
|
+
for (let i = 0; i < jsonObjects.length; ++i) {
|
|
207
|
+
const field = jsonObjects[i];
|
|
208
|
+
if (field.type.kind === "map") {
|
|
209
|
+
break;
|
|
210
|
+
}
|
|
211
|
+
else if (field.type.kind !== "model") {
|
|
212
|
+
// we already validated this earlier. however it lets
|
|
213
|
+
// the compiler treat field.type as a model type.
|
|
214
|
+
throw new CodegenError("InternalError", `unexpected union type ${field.type.kind}`);
|
|
215
|
+
}
|
|
216
|
+
const condition = `hasRequiredFields(rawMsg, ${getJsonFieldsForProbe(field.type)})`;
|
|
217
|
+
const body = (indent) => `${indent.get()}err = json.Unmarshal(data, &${receiver}.${field.name})\n`;
|
|
218
|
+
if (i === 0) {
|
|
219
|
+
ifBlock = {
|
|
220
|
+
condition: condition,
|
|
221
|
+
body: body,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
elseIfBlocks.push({
|
|
226
|
+
condition: condition,
|
|
227
|
+
body: body,
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
const elseBlock = { body: () => "" };
|
|
232
|
+
// if the last field is a map then it's the fallback
|
|
233
|
+
if (jsonObjects[jsonObjects.length - 1].type.kind === "map") {
|
|
234
|
+
elseBlock.body = (indent) => `${indent.get()}err = json.Unmarshal(data, &${receiver}.${jsonObjects[jsonObjects.length - 1].name})\n`;
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
elseBlock.body = (indent) => `${indent.get()}err = errors.New("could not determine variant")\n`;
|
|
238
|
+
}
|
|
239
|
+
text += `${indent.get()}${helpers.buildIfBlock(indent, ifBlock, elseIfBlocks, elseBlock)}\n`;
|
|
240
|
+
return text;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* returns the JSON field names used to probe if the JSON contains the target object.
|
|
244
|
+
* the result is a comma delimited list of strings (`"foo", "bar", "baz"`)
|
|
245
|
+
*
|
|
246
|
+
* @param model the model from which to select the probing fields
|
|
247
|
+
* @returns the list of field names
|
|
248
|
+
*/
|
|
249
|
+
function getJsonFieldsForProbe(model) {
|
|
250
|
+
const fields = new Array();
|
|
251
|
+
for (let i = 0; i < 4 && i < model.fields.length; ++i) {
|
|
252
|
+
fields.push(model.fields[i]);
|
|
253
|
+
}
|
|
254
|
+
return fields.map((f) => `"${f.serializedName}"`).join();
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* determines if the union is a combination of mixed types.
|
|
258
|
+
* if the union doesn't contain mixed types, undefined is returned.
|
|
259
|
+
* e.g. number | object | string
|
|
260
|
+
*
|
|
261
|
+
* @param goUnion the type to inspect
|
|
262
|
+
* @returns the mixedTypesInfo for the union or undefined
|
|
263
|
+
*/
|
|
264
|
+
function getForMixedTypes(goUnion) {
|
|
265
|
+
const groupedObjects = groupJsonObjects(goUnion);
|
|
266
|
+
if (groupedObjects.length === goUnion.fields.length) {
|
|
267
|
+
// all object types so not mixed
|
|
268
|
+
return undefined;
|
|
269
|
+
}
|
|
270
|
+
let hasMixedTypes = false;
|
|
271
|
+
for (let i = 1; i < goUnion.fields.length; ++i) {
|
|
272
|
+
hasMixedTypes = goUnion.fields[i].type !== goUnion.fields[0].type;
|
|
273
|
+
if (hasMixedTypes) {
|
|
274
|
+
break;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
if (!hasMixedTypes) {
|
|
278
|
+
return undefined;
|
|
279
|
+
}
|
|
280
|
+
const mixedNumbers = groupMixedJsonNumbers(goUnion);
|
|
281
|
+
const mixedTypes = new Array();
|
|
282
|
+
const receiver = getReceiverName(goUnion);
|
|
283
|
+
for (const field of goUnion.fields) {
|
|
284
|
+
if ((mixedNumbers.length > 1 && mixedNumbers.includes(field)) ||
|
|
285
|
+
(groupedObjects.length > 1 && groupedObjects.includes(field))) {
|
|
286
|
+
// will process after since they will collapse into a single case statement
|
|
287
|
+
continue;
|
|
288
|
+
}
|
|
289
|
+
mixedTypes.push({
|
|
290
|
+
expression: getJsonProbeKindForType(field.type),
|
|
291
|
+
clause: (indent) => `${indent.get()}err = json.Unmarshal(data, &${receiver}.${field.name})\n`,
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
if (mixedNumbers.length > 1) {
|
|
295
|
+
// first entry is always the float
|
|
296
|
+
mixedTypes.push({
|
|
297
|
+
expression: "jsonNumber",
|
|
298
|
+
clause: (indent) => {
|
|
299
|
+
const caseStatement = `${indent.get()}${helpers.buildIfBlock(indent, {
|
|
300
|
+
condition: "jsonNumberIsFloat(data)",
|
|
301
|
+
body: (indent) => `${indent.get()}err = json.Unmarshal(data, &${receiver}.${mixedNumbers[0].name})\n`,
|
|
302
|
+
}, undefined, {
|
|
303
|
+
body: (indent) => `${indent.get()}err = json.Unmarshal(data, &${receiver}.${mixedNumbers[1].name})\n`,
|
|
304
|
+
})}\n`;
|
|
305
|
+
return caseStatement;
|
|
306
|
+
},
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
if (groupedObjects.length > 1) {
|
|
310
|
+
mixedTypes.push({
|
|
311
|
+
expression: "jsonObject",
|
|
312
|
+
clause: (indent) => generateUnmarshalObjects(goUnion, indent),
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
if (mixedNumbers.length > 1 || groupedObjects.length > 1) {
|
|
316
|
+
mixedTypes.sort((a, b) => helpers.sortAscending(a.expression, b.expression));
|
|
317
|
+
}
|
|
318
|
+
mixedTypes.push({
|
|
319
|
+
expression: "jsonEmpty",
|
|
320
|
+
clause: (indent) => `${indent.get()}err = errors.New("unexpected end of JSON input")\n`,
|
|
321
|
+
});
|
|
322
|
+
mixedTypes.push({
|
|
323
|
+
expression: "jsonNull",
|
|
324
|
+
clause: (indent) => `${indent.get()}err = nil\n`,
|
|
325
|
+
});
|
|
326
|
+
return {
|
|
327
|
+
cases: mixedTypes,
|
|
328
|
+
emitFloat: mixedNumbers.length > 1,
|
|
329
|
+
emitRequired: groupedObjects.length > 1,
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* returns an array containing mixed JSON number types (ints/floats).
|
|
334
|
+
* if there is no mix of number types, an empty array is returned.
|
|
335
|
+
*
|
|
336
|
+
* @param goUnion the type for which to collect JSON number types
|
|
337
|
+
* @returns an array of heterogenous number types or an empty array
|
|
338
|
+
*/
|
|
339
|
+
function groupMixedJsonNumbers(goUnion) {
|
|
340
|
+
const floatFields = new Array();
|
|
341
|
+
const nonFloatFields = new Array();
|
|
342
|
+
for (const field of goUnion.fields) {
|
|
343
|
+
const scalarType = isJsonNumberType(field.type);
|
|
344
|
+
if (!scalarType) {
|
|
345
|
+
continue;
|
|
346
|
+
}
|
|
347
|
+
if (scalarType.startsWith("float")) {
|
|
348
|
+
floatFields.push(field);
|
|
349
|
+
}
|
|
350
|
+
else {
|
|
351
|
+
nonFloatFields.push(field);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
if (floatFields.length === 0 || nonFloatFields.length === 0) {
|
|
355
|
+
// homogenous numbers, return empty array
|
|
356
|
+
return [];
|
|
357
|
+
}
|
|
358
|
+
return floatFields.concat(nonFloatFields);
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* returns all of the JSON object variant types within a union.
|
|
362
|
+
* the array is sorted by typed objects field length in descending
|
|
363
|
+
* order. any untyped object is the last entry.
|
|
364
|
+
*
|
|
365
|
+
* @param goUnion the type for which to collect JSON objects
|
|
366
|
+
* @returns an array of JSON object types
|
|
367
|
+
*/
|
|
368
|
+
function groupJsonObjects(goUnion) {
|
|
369
|
+
const objectFields = new Array();
|
|
370
|
+
for (const field of goUnion.fields) {
|
|
371
|
+
if (field.type.kind === "map" || field.type.kind === "model") {
|
|
372
|
+
objectFields.push(field);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
// sort the models by field count, so models with a higher
|
|
376
|
+
// field count appear first. we do this in an effort to reduce
|
|
377
|
+
// incorrect unmarshalling target selection. i.e. models with
|
|
378
|
+
// more fields have a better chance of hasRequiredFields() not
|
|
379
|
+
// returning a false positive. maps always appears after models
|
|
380
|
+
objectFields.sort((a, b) => {
|
|
381
|
+
if (a.type.kind === "model" && b.type.kind === "model") {
|
|
382
|
+
return b.type.fields.length - a.type.fields.length;
|
|
383
|
+
}
|
|
384
|
+
else if (a.type.kind === "map" && b.type.kind === "map") {
|
|
385
|
+
return 0;
|
|
386
|
+
}
|
|
387
|
+
else if (a.type.kind === "map") {
|
|
388
|
+
return 1;
|
|
389
|
+
}
|
|
390
|
+
else if (a.type.kind === "model") {
|
|
391
|
+
return -1;
|
|
392
|
+
}
|
|
393
|
+
throw new CodegenError("InternalError", `unexpected union types ${a.type.kind} ${b.type.kind}`);
|
|
394
|
+
});
|
|
395
|
+
return objectFields;
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* returns the underlying ScalarType for variantType. if the type
|
|
399
|
+
* is not a scalar undefined is returned. note that bool, byte, and
|
|
400
|
+
* rune scalar types are excluded thus return undefined.
|
|
401
|
+
*
|
|
402
|
+
* @param variantType the type to inspect
|
|
403
|
+
* @returns the ScalarType or undefined
|
|
404
|
+
*/
|
|
405
|
+
function isJsonNumberType(variantType) {
|
|
406
|
+
const isScalarJsonNubmer = function (scalar) {
|
|
407
|
+
switch (scalar) {
|
|
408
|
+
case "bool":
|
|
409
|
+
case "byte":
|
|
410
|
+
case "rune":
|
|
411
|
+
return undefined;
|
|
412
|
+
default:
|
|
413
|
+
return scalar;
|
|
414
|
+
}
|
|
415
|
+
};
|
|
416
|
+
switch (variantType.kind) {
|
|
417
|
+
case "literal":
|
|
418
|
+
switch (variantType.type.kind) {
|
|
419
|
+
case "scalar":
|
|
420
|
+
return isScalarJsonNubmer(variantType.type.type);
|
|
421
|
+
default:
|
|
422
|
+
return undefined;
|
|
423
|
+
}
|
|
424
|
+
case "scalar":
|
|
425
|
+
return isScalarJsonNubmer(variantType.type);
|
|
426
|
+
default:
|
|
427
|
+
return undefined;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* returns the jsonKind value based on the provided type
|
|
432
|
+
*
|
|
433
|
+
* @param variantType the type to inspect
|
|
434
|
+
* @returns the constant value
|
|
435
|
+
*/
|
|
436
|
+
function getJsonProbeKindForType(variantType) {
|
|
437
|
+
const getScalarProbe = function (scalar) {
|
|
438
|
+
switch (scalar) {
|
|
439
|
+
case "bool":
|
|
440
|
+
return "jsonBool";
|
|
441
|
+
default:
|
|
442
|
+
return "jsonNumber";
|
|
443
|
+
}
|
|
444
|
+
};
|
|
445
|
+
switch (variantType.kind) {
|
|
446
|
+
case "constant":
|
|
447
|
+
switch (variantType.type) {
|
|
448
|
+
case "bool":
|
|
449
|
+
return "jsonBool";
|
|
450
|
+
case "string":
|
|
451
|
+
return "jsonString";
|
|
452
|
+
default:
|
|
453
|
+
return "jsonNumber";
|
|
454
|
+
}
|
|
455
|
+
case "literal":
|
|
456
|
+
switch (variantType.type.kind) {
|
|
457
|
+
case "scalar":
|
|
458
|
+
return getScalarProbe(variantType.type.type);
|
|
459
|
+
default:
|
|
460
|
+
return "jsonString";
|
|
461
|
+
}
|
|
462
|
+
case "map":
|
|
463
|
+
case "model":
|
|
464
|
+
return "jsonObject";
|
|
465
|
+
case "scalar":
|
|
466
|
+
return getScalarProbe(variantType.type);
|
|
467
|
+
case "slice":
|
|
468
|
+
return "jsonArray";
|
|
469
|
+
case "string":
|
|
470
|
+
return "jsonString";
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
/**
|
|
474
|
+
* gets the receiver name based on type name
|
|
475
|
+
*
|
|
476
|
+
* @param goUnion the union type
|
|
477
|
+
* @returns the receiver name
|
|
478
|
+
*/
|
|
479
|
+
function getReceiverName(goUnion) {
|
|
480
|
+
return goUnion.name[0].toLowerCase();
|
|
481
|
+
}
|
|
482
|
+
/** code for sniffing JSON */
|
|
483
|
+
const jsonKindProbe = `
|
|
484
|
+
type jsonKind int
|
|
485
|
+
|
|
486
|
+
const (
|
|
487
|
+
jsonUnknown jsonKind = iota
|
|
488
|
+
jsonObject
|
|
489
|
+
jsonArray
|
|
490
|
+
jsonString
|
|
491
|
+
jsonNumber
|
|
492
|
+
jsonBool
|
|
493
|
+
jsonNull
|
|
494
|
+
jsonEmpty
|
|
495
|
+
)
|
|
496
|
+
|
|
497
|
+
func probeJSONKind(data []byte) jsonKind {
|
|
498
|
+
if len(data) == 0 {
|
|
499
|
+
return jsonEmpty
|
|
500
|
+
}
|
|
501
|
+
for _, b := range data {
|
|
502
|
+
switch b {
|
|
503
|
+
case ' ', '\\t', '\\r', '\\n':
|
|
504
|
+
continue
|
|
505
|
+
case '{':
|
|
506
|
+
return jsonObject
|
|
507
|
+
case '[':
|
|
508
|
+
return jsonArray
|
|
509
|
+
case '"':
|
|
510
|
+
return jsonString
|
|
511
|
+
case 't', 'f':
|
|
512
|
+
return jsonBool
|
|
513
|
+
case 'n':
|
|
514
|
+
return jsonNull
|
|
515
|
+
default:
|
|
516
|
+
return jsonNumber
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
return jsonUnknown
|
|
520
|
+
}
|
|
521
|
+
`;
|
|
522
|
+
/** code to disambiguate floats and ints */
|
|
523
|
+
const jsonNumberIsFloat = `
|
|
524
|
+
func jsonNumberIsFloat(data []byte) bool {
|
|
525
|
+
for _, b := range data {
|
|
526
|
+
switch b {
|
|
527
|
+
case '.', 'e', 'E':
|
|
528
|
+
return true
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
return false
|
|
532
|
+
}
|
|
533
|
+
`;
|
|
534
|
+
/** code to check raw JSON for a slice of fields */
|
|
535
|
+
const hasRequiredFields = `
|
|
536
|
+
func hasRequiredFields(rawMsg map[string]json.RawMessage, fields ...string) bool {
|
|
537
|
+
for _, field := range fields {
|
|
538
|
+
if _, ok := rawMsg[field]; !ok {
|
|
539
|
+
return false
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
return len(fields) > 0
|
|
543
|
+
}
|
|
544
|
+
`;
|
|
545
|
+
//# sourceMappingURL=unions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unions.js","sourceRoot":"","sources":["../../../../src/codegen/core/unions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../../src/codegen/emitter.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAI5C,yDAAyD;AACzD,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3C;;;OAGG;IACH,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAExC,gCAAgC;IAChC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAED,4CAA4C;AAC5C,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAe;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAwBxF;;;OAGG;IACG,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../../src/codegen/emitter.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAI5C,yDAAyD;AACzD,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3C;;;OAGG;IACH,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAExC,gCAAgC;IAChC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAED,4CAA4C;AAC5C,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAe;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAwBxF;;;OAGG;IACG,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IA4HrD,sCAAsC;IAChC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAUtC,yCAAyC;IACnC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBnC,kCAAkC;IAC5B,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAatC,uCAAuC;IACjC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAWvC;;;;OAIG;YACW,aAAa;CAgC5B"}
|
|
@@ -89,6 +89,11 @@ export class Emitter {
|
|
|
89
89
|
if (responses.serDe.length > 0) {
|
|
90
90
|
await write("responses_serde.go", responses.serDe);
|
|
91
91
|
}
|
|
92
|
+
const unions = core.generateUnions(pkg);
|
|
93
|
+
if (unions) {
|
|
94
|
+
await write("unions.go", unions.types);
|
|
95
|
+
await write("unions_serde.go", unions.serde);
|
|
96
|
+
}
|
|
92
97
|
const xmlAddlProps = core.generateXMLAdditionalPropsHelpers(pkg);
|
|
93
98
|
if (xmlAddlProps.length > 0) {
|
|
94
99
|
await write("xml_helper.go", xmlAddlProps);
|
|
@@ -271,6 +276,10 @@ function sortContent(pkg) {
|
|
|
271
276
|
return sortAscending(a.fieldName, b.fieldName);
|
|
272
277
|
});
|
|
273
278
|
}
|
|
279
|
+
pkg.unions.sort((a, b) => sortAscending(a.name, b.name));
|
|
280
|
+
for (const goUnion of pkg.unions) {
|
|
281
|
+
goUnion.fields.sort((a, b) => sortAscending(a.name, b.name));
|
|
282
|
+
}
|
|
274
283
|
pkg.clients.sort((a, b) => {
|
|
275
284
|
return sortAscending(a.name, b.name);
|
|
276
285
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../src/codegen/emitter.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AAiBxC,4CAA4C;AAC5C,MAAM,OAAO,OAAO;IACD,SAAS,CAAe;IACxB,EAAE,CAAe;IACjB,UAAU,CAAS;IAEpC,YAAY,SAAuB,EAAE,EAAgB,EAAE,OAAiC;QACtF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACtC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC9D,CAAC;QAED,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,KAAK,kBAAkB;gBACrB,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzC,MAAM;YACR,KAAK,QAAQ;gBACX,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM;YACR;gBACE,IAAI,CAAC,SAAS,CAAC,IAAoB,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,OAA0B;QACnC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1C,iEAAiE;YACjE,MAAM,SAAS,GAAG,QAAQ,CAAC;YAC3B,IAAI,aAAiC,CAAC;YACtC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpC,aAAa,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAClC,IAAI,CAAC,SAAS,CAAC,IAAI,EACnB,IAAI,CAAC,SAAS,CAAC,OAAO,EACtB,aAAa,CACd,CAAC;YACF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,CACtB,KAAK,EACH,GAAsB,EACtB,KAAwE,EACzD,EAAE;YACjB,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAC9C,GAAG,EACH,IAAI,CAAC,SAAS,CAAC,IAAI,EACnB,IAAI,CAAC,SAAS,CAAC,OAAO,CACvB,CAAC;YACF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,KAAK,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;YAClD,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;YACzC,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAChD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,KAAK,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YAC3C,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CACxC,GAAG,EACH,IAAI,CAAC,SAAS,CAAC,IAAI,EACnB,IAAI,CAAC,SAAS,CAAC,OAAO,CACvB,CAAC;YACF,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;gBAC5B,MAAM,KAAK,CAAC,GAAG,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;YAChE,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACzE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,KAAK,CAAC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/C,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACrC,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC;YAC1D,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,KAAK,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAC;YACtD,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACtE,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,MAAM,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,KAAK,CAAC,oBAAoB,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YACrD,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,iCAAiC,CAAC,GAAG,CAAC,CAAC;YACjE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,KAAK,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;YAC7C,CAAC;YAED,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBACxC,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACzE,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrC,KAAK,MAAM,EAAE,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;wBACvC,MAAM,QAAQ,GAAG,GAAG,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC;wBAChE,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBAClD,CAAC;oBAED,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBAC/E,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,MAAM,KAAK,CAAC,mBAAmB,EAAE,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChE,CAAC;oBAED,MAAM,KAAK,CAAC,aAAa,EAAE,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBAElE,MAAM,YAAY,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;oBAC9D,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC5B,MAAM,KAAK,CAAC,wBAAwB,EAAE,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBACpE,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CACF,CAAC;QAEF,sCAAsC;QACtC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1C,8CAA8C;YAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAChE,MAAM,iBAAiB,GAAG,GAAG,IAAI,CAAC,UAAU,YAAY,CAAC;YACzD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC;gBACvE,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,KAAK,CAAC,eAAe;QACnB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACvF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,iBAAiB,EAAE,WAAW,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,CACtB,KAAK,EACH,GAAsB,EACtB,KAAuD,EACxC,EAAE;YACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CACpC,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EACvB,IAAI,CAAC,SAAS,CAAC,IAAI,EACnB,IAAI,CAAC,SAAS,CAAC,OAAO,CACvB,CAAC;YACF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,KAAK,CAAC,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvF,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,eAAe;QACnB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,+CAA+C;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACnE,MAAM,kBAAkB,GAAG,aAAa,CAAC;QACzC,IAAI,UAAU,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,KAAK,CAAC,gBAAgB;QACpB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,aAAa,CACzB,UAGkB;QAElB,MAAM,aAAa,GAAG,KAAK,EAAE,GAAsB,EAAE,GAAW,EAAiB,EAAE;YACjF,MAAM,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,IAAY,EAAE,OAAe,EAAE,MAAe,EAAE,EAAE;gBAC7E,OAAO,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CACxB,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,EAC9D,OAAO,CACR,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,oCAAoC;YACpC,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAClC,MAAM,aAAa,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;YACvD,CAAC;QACH,CAAC,CAAC;QAEF,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,KAAK,kBAAkB;gBACrB,MAAM,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACrD,MAAM;YACR,KAAK,QAAQ;gBACX,qEAAqE;gBACrE,MAAM,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC7C,MAAM;YACR;gBACE,IAAI,CAAC,SAAS,CAAC,IAAoB,CAAC;QACxC,CAAC;IACH,CAAC;CACF;AAED;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAAC,UAAkB,EAAE,SAAiB,QAAQ;IACxE,UAAU,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACtC,+CAA+C;IAC/C,4CAA4C;IAC5C,mCAAmC;IACnC,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,UAAU,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;IACzF,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,GAAsB;IACzC,MAAM,aAAa,GAAG,UAAU,CAAS,EAAE,CAAS;QAClD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC;IAEF,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAc,EAAE,CAAc,EAAE,EAAE;QACpD,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAChC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE;YAC3D,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAe,EAAE,CAAe,EAAE,EAAE;QACvD,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACnC,wFAAwF;QACxF,wFAAwF;QACxF,uEAAuE;QACvE,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAsB,EAAE,CAAsB,EAAE,EAAE;YAC1E,MAAM,MAAM,GACV,CAAC,CAAC,kBAAmB,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU;gBAC5C,CAAC,CAAoB,CAAC,CAAC,kBAAmB,CAAC,OAAQ,CAAC,IAAI;gBACxD,CAAC,CAAS,CAAC,CAAC,kBAAmB,CAAC,OAAO,CAAC;YAC5C,MAAM,MAAM,GACV,CAAC,CAAC,kBAAmB,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU;gBAC5C,CAAC,CAAoB,CAAC,CAAC,kBAAmB,CAAC,OAAQ,CAAC,IAAI;gBACxD,CAAC,CAAS,CAAC,CAAC,kBAAmB,CAAC,OAAO,CAAC;YAC5C,OAAO,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAiC,EAAE,CAAiC,EAAE,EAAE;QACvF,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC/B,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAgB,EAAE,CAAgB,EAAE,EAAE;YACvD,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAY,EAAE,CAAY,EAAE,EAAE;QAClD,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,KAAK,MAAM,UAAU,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACzC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAiB,EAAE,CAAiB,EAAE,EAAE;YAC9D,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAsB,EAAE,CAAsB,EAAE,EAAE;QAC5E,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAC5C,OAAO,CAAC,OAAO,CAAC,IAAI,CAClB,CACE,CAAiD,EACjD,CAAiD,EACjD,EAAE;YACF,OAAO,aAAa,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC,CACF,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAY,EAAE,CAAY,EAAE,EAAE;QAC9C,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,KAAK,eAAe,EAAE,CAAC;YAC9C,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAiB,EAAE,CAAiB,EAAE,EAAE,CACzE,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAC9B,CAAC;YACF,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACrD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAqB,EAAE,CAAqB,EAAE,EAAE,CACvF,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAC9B,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAqB,EAAE,CAAqB,EAAE,EAAE,CACtE,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAC9B,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAgB,EAAE,CAAgB,EAAE,EAAE;YACzD,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAoB,EAAE,CAAoB,EAAE,EAAE;YACzE,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClC,WAAW,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../src/codegen/emitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -507,7 +507,7 @@ function generateServerTransportMethods(pkg, serverTransport, finalMethods, impo
|
|
|
507
507
|
*/
|
|
508
508
|
function dispatchForOperationBody(pkg, receiverName, method, imports, indent) {
|
|
509
509
|
const methodParamGroups = helpers.getMethodParamGroups(method);
|
|
510
|
-
const numPathParams = methodParamGroups.pathParams.filter((each) => !go.isLiteralParameter(each.style)).length;
|
|
510
|
+
const numPathParams = methodParamGroups.pathParams.filter((each) => !go.isLiteralParameter(each.style) && !go.isAPIVersionParameter(each)).length;
|
|
511
511
|
let content = "";
|
|
512
512
|
if (numPathParams > 0) {
|
|
513
513
|
imports.add("regexp");
|