@azure-tools/typespec-go 0.3.0 → 0.3.2
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/codegen.go/src/clientFactory.d.ts.map +1 -1
- package/dist/codegen.go/src/clientFactory.js +8 -8
- package/dist/codegen.go/src/clientFactory.js.map +1 -1
- package/dist/codegen.go/src/constants.d.ts.map +1 -1
- package/dist/codegen.go/src/constants.js +4 -9
- package/dist/codegen.go/src/constants.js.map +1 -1
- package/dist/codegen.go/src/example.js +4 -1
- package/dist/codegen.go/src/example.js.map +1 -1
- package/dist/codegen.go/src/fake/internal.d.ts.map +1 -1
- package/dist/codegen.go/src/fake/internal.js +6 -0
- package/dist/codegen.go/src/fake/internal.js.map +1 -1
- package/dist/codegen.go/src/fake/servers.d.ts.map +1 -1
- package/dist/codegen.go/src/fake/servers.js +59 -20
- package/dist/codegen.go/src/fake/servers.js.map +1 -1
- package/dist/codegen.go/src/gomod.js +1 -1
- package/dist/codegen.go/src/helpers.d.ts +3 -1
- package/dist/codegen.go/src/helpers.d.ts.map +1 -1
- package/dist/codegen.go/src/helpers.js +51 -2
- package/dist/codegen.go/src/helpers.js.map +1 -1
- package/dist/codegen.go/src/models.d.ts.map +1 -1
- package/dist/codegen.go/src/models.js +65 -32
- package/dist/codegen.go/src/models.js.map +1 -1
- package/dist/codegen.go/src/operations.d.ts.map +1 -1
- package/dist/codegen.go/src/operations.js +35 -26
- package/dist/codegen.go/src/operations.js.map +1 -1
- package/dist/codegen.go/src/options.js +6 -9
- package/dist/codegen.go/src/options.js.map +1 -1
- package/dist/codegen.go/src/polymorphics.js +6 -6
- package/dist/codegen.go/src/polymorphics.js.map +1 -1
- package/dist/codegen.go/src/responses.js +12 -25
- package/dist/codegen.go/src/responses.js.map +1 -1
- package/dist/codegen.go/src/xmlAdditionalProps.d.ts +3 -0
- package/dist/codegen.go/src/xmlAdditionalProps.d.ts.map +1 -0
- package/dist/codegen.go/src/xmlAdditionalProps.js +112 -0
- package/dist/codegen.go/src/xmlAdditionalProps.js.map +1 -0
- package/dist/codemodel.go/src/client.d.ts +4 -3
- package/dist/codemodel.go/src/client.d.ts.map +1 -1
- package/dist/codemodel.go/src/client.js +5 -4
- package/dist/codemodel.go/src/client.js.map +1 -1
- package/dist/codemodel.go/src/examples.d.ts +3 -3
- package/dist/codemodel.go/src/examples.d.ts.map +1 -1
- package/dist/codemodel.go/src/examples.js +2 -2
- package/dist/codemodel.go/src/examples.js.map +1 -1
- package/dist/codemodel.go/src/param.d.ts +4 -3
- package/dist/codemodel.go/src/param.d.ts.map +1 -1
- package/dist/codemodel.go/src/param.js +3 -1
- package/dist/codemodel.go/src/param.js.map +1 -1
- package/dist/codemodel.go/src/result.d.ts +10 -10
- package/dist/codemodel.go/src/result.d.ts.map +1 -1
- package/dist/codemodel.go/src/result.js +10 -2
- package/dist/codemodel.go/src/result.js.map +1 -1
- package/dist/codemodel.go/src/type.d.ts +11 -6
- package/dist/codemodel.go/src/type.d.ts.map +1 -1
- package/dist/codemodel.go/src/type.js +7 -2
- package/dist/codemodel.go/src/type.js.map +1 -1
- package/dist/typespec-go/src/emitter.d.ts.map +1 -1
- package/dist/typespec-go/src/emitter.js +5 -0
- package/dist/typespec-go/src/emitter.js.map +1 -1
- package/dist/typespec-go/src/lib.d.ts +0 -1
- package/dist/typespec-go/src/lib.d.ts.map +1 -1
- package/dist/typespec-go/src/lib.js +0 -1
- package/dist/typespec-go/src/lib.js.map +1 -1
- package/dist/typespec-go/src/tcgcadapter/adapter.d.ts.map +1 -1
- package/dist/typespec-go/src/tcgcadapter/adapter.js +8 -2
- package/dist/typespec-go/src/tcgcadapter/adapter.js.map +1 -1
- package/dist/typespec-go/src/tcgcadapter/clients.d.ts.map +1 -1
- package/dist/typespec-go/src/tcgcadapter/clients.js +93 -47
- package/dist/typespec-go/src/tcgcadapter/clients.js.map +1 -1
- package/dist/typespec-go/src/tcgcadapter/types.d.ts +5 -5
- package/dist/typespec-go/src/tcgcadapter/types.d.ts.map +1 -1
- package/dist/typespec-go/src/tcgcadapter/types.js +179 -128
- package/dist/typespec-go/src/tcgcadapter/types.js.map +1 -1
- package/package.json +19 -13
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import * as go from '../../codemodel.go/src/index.js';
|
|
6
6
|
import { capitalize, comment } from '@azure-tools/codegen';
|
|
7
7
|
import { values } from '@azure-tools/linq';
|
|
8
|
-
import
|
|
8
|
+
import * as helpers from './helpers.js';
|
|
9
9
|
import { ImportManager } from './imports.js';
|
|
10
10
|
// Creates the content in models.go
|
|
11
11
|
export async function generateModels(codeModel) {
|
|
@@ -18,7 +18,7 @@ export async function generateModels(codeModel) {
|
|
|
18
18
|
// this list of packages to import
|
|
19
19
|
const modelImports = new ImportManager();
|
|
20
20
|
const serdeImports = new ImportManager();
|
|
21
|
-
let modelText = contentPreamble(codeModel);
|
|
21
|
+
let modelText = helpers.contentPreamble(codeModel);
|
|
22
22
|
// we do model generation first as it can add imports to the imports list
|
|
23
23
|
const modelDefs = generateModelDefs(modelImports, serdeImports, codeModel);
|
|
24
24
|
modelText += modelImports.text();
|
|
@@ -31,17 +31,17 @@ export async function generateModels(codeModel) {
|
|
|
31
31
|
let serdeTextBody = '';
|
|
32
32
|
for (const modelDef of values(modelDefs)) {
|
|
33
33
|
modelText += modelDef.text();
|
|
34
|
-
modelDef.Methods.sort((a, b) => { return sortAscending(a.name, b.name); });
|
|
34
|
+
modelDef.Methods.sort((a, b) => { return helpers.sortAscending(a.name, b.name); });
|
|
35
35
|
for (const method of values(modelDef.Methods)) {
|
|
36
36
|
if (method.desc.length > 0) {
|
|
37
|
-
modelText += `${comment(method.desc, '// ', undefined, commentLength)}\n`;
|
|
37
|
+
modelText += `${comment(method.desc, '// ', undefined, helpers.commentLength)}\n`;
|
|
38
38
|
}
|
|
39
39
|
modelText += method.text;
|
|
40
40
|
}
|
|
41
|
-
modelDef.SerDe.methods.sort((a, b) => { return sortAscending(a.name, b.name); });
|
|
41
|
+
modelDef.SerDe.methods.sort((a, b) => { return helpers.sortAscending(a.name, b.name); });
|
|
42
42
|
for (const method of values(modelDef.SerDe.methods)) {
|
|
43
43
|
if (method.desc.length > 0) {
|
|
44
|
-
serdeTextBody += `${comment(method.desc, '// ', undefined, commentLength)}\n`;
|
|
44
|
+
serdeTextBody += `${comment(method.desc, '// ', undefined, helpers.commentLength)}\n`;
|
|
45
45
|
}
|
|
46
46
|
serdeTextBody += method.text;
|
|
47
47
|
}
|
|
@@ -121,7 +121,7 @@ export async function generateModels(codeModel) {
|
|
|
121
121
|
}
|
|
122
122
|
let serdeText = '';
|
|
123
123
|
if (serdeTextBody.length > 0) {
|
|
124
|
-
serdeText = contentPreamble(codeModel);
|
|
124
|
+
serdeText = helpers.contentPreamble(codeModel);
|
|
125
125
|
serdeText += serdeImports.text();
|
|
126
126
|
serdeText += serdeTextBody;
|
|
127
127
|
}
|
|
@@ -151,22 +151,22 @@ function generateModelDefs(modelImports, serdeImports, codeModel) {
|
|
|
151
151
|
}
|
|
152
152
|
if (go.isLiteralValue(field.type) && model.usage !== go.UsageFlags.Output) {
|
|
153
153
|
// add a comment with the const value for const properties that are sent over the wire
|
|
154
|
-
if (field.description) {
|
|
155
|
-
field.description += '\n';
|
|
154
|
+
if (field.docs.description) {
|
|
155
|
+
field.docs.description += '\n';
|
|
156
156
|
}
|
|
157
|
-
field.description += `Field has constant value ${formatLiteralValue(field.type, false)}, any specified value is ignored.`;
|
|
157
|
+
field.docs.description += `Field has constant value ${helpers.formatLiteralValue(field.type, false)}, any specified value is ignored.`;
|
|
158
158
|
}
|
|
159
|
-
if (field.description) {
|
|
160
|
-
descriptionMods.push(field.description);
|
|
159
|
+
if (field.docs.description) {
|
|
160
|
+
descriptionMods.push(field.docs.description);
|
|
161
161
|
}
|
|
162
162
|
else if (go.isSliceType(field.type) && field.type.rawJSONAsBytes) {
|
|
163
163
|
// add a basic description if one isn't available
|
|
164
164
|
descriptionMods.push('The contents of this field are raw JSON.');
|
|
165
165
|
}
|
|
166
|
-
field.description = descriptionMods.join('; ');
|
|
166
|
+
field.docs.description = descriptionMods.join('; ');
|
|
167
167
|
}
|
|
168
|
-
const serDeFormat = getSerDeFormat(model, codeModel);
|
|
169
|
-
const modelDef = new ModelDef(model.name, serDeFormat, model.fields, model.
|
|
168
|
+
const serDeFormat = helpers.getSerDeFormat(model, codeModel);
|
|
169
|
+
const modelDef = new ModelDef(model.name, serDeFormat, model.fields, model.docs);
|
|
170
170
|
for (const field of values(modelDef.Fields)) {
|
|
171
171
|
modelImports.addImportForType(field.type);
|
|
172
172
|
}
|
|
@@ -190,7 +190,8 @@ function generateModelDefs(modelImports, serdeImports, codeModel) {
|
|
|
190
190
|
generateXMLUnmarshaller(model, modelDef, serdeImports);
|
|
191
191
|
}
|
|
192
192
|
}
|
|
193
|
-
else if (
|
|
193
|
+
else if (needsXMLDictionaryHelper(model)) {
|
|
194
|
+
generateXMLMarshaller(model, modelDef, serdeImports);
|
|
194
195
|
generateXMLUnmarshaller(model, modelDef, serdeImports);
|
|
195
196
|
}
|
|
196
197
|
modelDefs.push(modelDef);
|
|
@@ -214,9 +215,9 @@ function generateModelDefs(modelImports, serdeImports, codeModel) {
|
|
|
214
215
|
}
|
|
215
216
|
return modelDefs;
|
|
216
217
|
}
|
|
217
|
-
function
|
|
218
|
+
function needsXMLDictionaryHelper(modelType) {
|
|
218
219
|
for (const field of values(modelType.fields)) {
|
|
219
|
-
// additional properties uses an internal wrapper type with its own
|
|
220
|
+
// additional properties uses an internal wrapper type with its own serde impl
|
|
220
221
|
if (go.isMapType(field.type) && !field.annotations.isAdditionalProperties) {
|
|
221
222
|
return true;
|
|
222
223
|
}
|
|
@@ -257,7 +258,7 @@ function generateToMultipartForm(modelDef) {
|
|
|
257
258
|
let method = `func (${receiver} ${modelDef.Name}) toMultipartFormData() (map[string]any, error) {\n`;
|
|
258
259
|
method += '\tobjectMap := make(map[string]any)\n';
|
|
259
260
|
for (const field of modelDef.Fields) {
|
|
260
|
-
const fieldType = recursiveUnwrapMapSlice(field.type);
|
|
261
|
+
const fieldType = helpers.recursiveUnwrapMapSlice(field.type);
|
|
261
262
|
let setField;
|
|
262
263
|
let star = '';
|
|
263
264
|
if (!field.byValue) {
|
|
@@ -303,7 +304,7 @@ function generateJSONMarshallerBody(modelType, modelDef, receiver, imports) {
|
|
|
303
304
|
}
|
|
304
305
|
if (field.annotations.isDiscriminator) {
|
|
305
306
|
if (field.defaultValue) {
|
|
306
|
-
marshaller += `\tobjectMap["${field.serializedName}"] = ${formatLiteralValue(field.defaultValue, true)}\n`;
|
|
307
|
+
marshaller += `\tobjectMap["${field.serializedName}"] = ${helpers.formatLiteralValue(field.defaultValue, true)}\n`;
|
|
307
308
|
}
|
|
308
309
|
else {
|
|
309
310
|
// if there's no discriminator value (e.g. Fish in test server), use the field's value.
|
|
@@ -340,7 +341,7 @@ function generateJSONMarshallerBody(modelType, modelDef, receiver, imports) {
|
|
|
340
341
|
modelDef.SerDe.needsJSONPopulate = true;
|
|
341
342
|
}
|
|
342
343
|
else if (go.isLiteralValue(field.type)) {
|
|
343
|
-
const setter = `objectMap["${field.serializedName}"] = ${formatLiteralValue(field.type, true)}`;
|
|
344
|
+
const setter = `objectMap["${field.serializedName}"] = ${helpers.formatLiteralValue(field.type, true)}`;
|
|
344
345
|
if (!field.annotations.required) {
|
|
345
346
|
marshaller += `\tif ${receiver}.${field.name} != nil {\n\t\t${setter}\n\t}\n`;
|
|
346
347
|
}
|
|
@@ -355,7 +356,7 @@ function generateJSONMarshallerBody(modelType, modelDef, receiver, imports) {
|
|
|
355
356
|
else {
|
|
356
357
|
if (field.defaultValue) {
|
|
357
358
|
imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore/to');
|
|
358
|
-
marshaller += `\tif ${receiver}.${field.name} == nil {\n\t\t${receiver}.${field.name} = to.Ptr(${formatLiteralValue(field.defaultValue, true)})\n\t}\n`;
|
|
359
|
+
marshaller += `\tif ${receiver}.${field.name} == nil {\n\t\t${receiver}.${field.name} = to.Ptr(${helpers.formatLiteralValue(field.defaultValue, true)})\n\t}\n`;
|
|
359
360
|
}
|
|
360
361
|
let populate = 'populate';
|
|
361
362
|
if (go.isTimeType(field.type)) {
|
|
@@ -369,7 +370,20 @@ function generateJSONMarshallerBody(modelType, modelDef, receiver, imports) {
|
|
|
369
370
|
else {
|
|
370
371
|
modelDef.SerDe.needsJSONPopulate = true;
|
|
371
372
|
}
|
|
372
|
-
|
|
373
|
+
if (go.isPrimitiveType(field.type) && (field.type.typeName.startsWith('uint') || field.type.typeName.startsWith('int')) && field.type.encodeAsString) {
|
|
374
|
+
// TODO: need to handle map and slice type with underlying int as string type
|
|
375
|
+
imports.add('strconv');
|
|
376
|
+
imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore/to');
|
|
377
|
+
if (field.type.typeName.startsWith('uint') && field.type.typeName !== 'uint64' || field.type.typeName.startsWith('int') && field.type.typeName !== 'int64') {
|
|
378
|
+
marshaller += `\t${populate}(objectMap, "${field.serializedName}", to.Ptr(strconv.${field.type.typeName.startsWith('int') ? 'FormatInt' : 'FormatUint'}(${field.type.typeName.startsWith('int') ? 'int64' : 'uint64'}(*${receiver}.${field.name}), 10)))\n`;
|
|
379
|
+
}
|
|
380
|
+
else {
|
|
381
|
+
marshaller += `\t${populate}(objectMap, "${field.serializedName}", to.Ptr(strconv.${field.type.typeName.startsWith('int') ? 'FormatInt' : 'FormatUint'}(*${receiver}.${field.name}, 10)))\n`;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
else {
|
|
385
|
+
marshaller += `\t${populate}(objectMap, "${field.serializedName}", ${receiver}.${field.name})\n`;
|
|
386
|
+
}
|
|
373
387
|
}
|
|
374
388
|
}
|
|
375
389
|
if (addlProps) {
|
|
@@ -479,6 +493,25 @@ function generateJSONUnmarshallerBody(modelType, modelDef, receiver, imports, op
|
|
|
479
493
|
unmarshalBody += '\t\t\tif string(val) != "null" {\n';
|
|
480
494
|
unmarshalBody += `\t\t\t\t${receiver}.${field.name} = val\n\t\t\t}\n`;
|
|
481
495
|
}
|
|
496
|
+
else if (go.isPrimitiveType(field.type) && (field.type.typeName.startsWith('uint') || field.type.typeName.startsWith('int')) && field.type.encodeAsString) {
|
|
497
|
+
// TODO: need to handle map and slice type with underlying int as string type
|
|
498
|
+
imports.add('strconv');
|
|
499
|
+
unmarshalBody += `\t\t\t\tvar aux string\n`;
|
|
500
|
+
unmarshalBody += `\t\t\t\terr = unpopulate(val, "${field.name}", &aux)\n`;
|
|
501
|
+
unmarshalBody += `\t\t\t\tif err == nil {\n`;
|
|
502
|
+
unmarshalBody += `\t\t\t\t\tvar v ${field.type.typeName.startsWith('int') ? 'int64' : 'uint64'}\n`;
|
|
503
|
+
unmarshalBody += `\t\t\t\t\tv, err = strconv.${field.type.typeName.startsWith('int') ? 'ParseInt' : 'ParseUint'}(aux, 10, 0)\n`;
|
|
504
|
+
unmarshalBody += `\t\t\t\t\tif err == nil {\n`;
|
|
505
|
+
if (field.type.typeName.startsWith('uint') && field.type.typeName !== 'uint64' || field.type.typeName.startsWith('int') && field.type.typeName !== 'int64') {
|
|
506
|
+
unmarshalBody += `\t\t\t\t\t\t${receiver}.${field.name} = to.Ptr(${field.type.typeName}(v))\n`;
|
|
507
|
+
}
|
|
508
|
+
else {
|
|
509
|
+
unmarshalBody += `\t\t\t\t\t\t${receiver}.${field.name} = to.Ptr(v)\n`;
|
|
510
|
+
}
|
|
511
|
+
unmarshalBody += '\t\t\t\t\t}\n';
|
|
512
|
+
unmarshalBody += '\t\t\t\t}\n';
|
|
513
|
+
modelDef.SerDe.needsJSONUnpopulate = true;
|
|
514
|
+
}
|
|
482
515
|
else {
|
|
483
516
|
unmarshalBody += `\t\t\t\terr = unpopulate(val, "${field.name}", &${receiver}.${field.name})\n`;
|
|
484
517
|
modelDef.SerDe.needsJSONUnpopulate = true;
|
|
@@ -617,7 +650,7 @@ function recursivePopulateDiscriminator(item, receiver, rawSrc, dest, indent, ne
|
|
|
617
650
|
}
|
|
618
651
|
function generateXMLMarshaller(modelType, modelDef, imports) {
|
|
619
652
|
var _a;
|
|
620
|
-
// only needed for types with time.Time or where the XML name doesn't match the type name
|
|
653
|
+
// only needed for types with time.Time, maps, or where the XML name doesn't match the type name
|
|
621
654
|
const receiver = modelDef.receiverName();
|
|
622
655
|
const desc = `MarshalXML implements the xml.Marshaller interface for type ${modelDef.Name}.`;
|
|
623
656
|
let text = `func (${receiver} ${modelDef.Name}) MarshalXML(enc *xml.Encoder, start xml.StartElement) error {\n`;
|
|
@@ -631,6 +664,9 @@ function generateXMLMarshaller(modelType, modelDef, imports) {
|
|
|
631
664
|
text += `\t\taux.${field.name} = &${receiver}.${field.name}\n`;
|
|
632
665
|
text += '\t}\n';
|
|
633
666
|
}
|
|
667
|
+
else if (field.annotations.isAdditionalProperties || go.isMapType(field.type)) {
|
|
668
|
+
text += `\taux.${field.name} = (additionalProperties)(${receiver}.${field.name})\n`;
|
|
669
|
+
}
|
|
634
670
|
else if (go.isBytesType(field.type)) {
|
|
635
671
|
imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime');
|
|
636
672
|
text += `\tif ${receiver}.${field.name} != nil {\n`;
|
|
@@ -723,20 +759,17 @@ class SerDeInfo {
|
|
|
723
759
|
}
|
|
724
760
|
// represents model definition as a Go struct
|
|
725
761
|
class ModelDef {
|
|
726
|
-
constructor(name, format, fields,
|
|
762
|
+
constructor(name, format, fields, docs) {
|
|
727
763
|
this.Name = name;
|
|
728
764
|
this.Format = format;
|
|
729
|
-
this.
|
|
765
|
+
this.Docs = docs;
|
|
730
766
|
this.Fields = fields;
|
|
731
767
|
this.SerDe = new SerDeInfo();
|
|
732
768
|
this.Methods = new Array();
|
|
733
769
|
}
|
|
734
770
|
text() {
|
|
735
771
|
var _a;
|
|
736
|
-
let text =
|
|
737
|
-
if (this.Description) {
|
|
738
|
-
text += `${comment(this.Description, '// ', undefined, commentLength)}\n`;
|
|
739
|
-
}
|
|
772
|
+
let text = helpers.formatDocComment(this.Docs);
|
|
740
773
|
text += `type ${this.Name} struct {\n`;
|
|
741
774
|
// group fields by required/optional/read-only in that order
|
|
742
775
|
(_a = this.Fields) === null || _a === void 0 ? void 0 : _a.sort((lhs, rhs) => {
|
|
@@ -753,13 +786,13 @@ class ModelDef {
|
|
|
753
786
|
// used to track when to add an extra \n between fields that have comments
|
|
754
787
|
let first = true;
|
|
755
788
|
for (const field of values(this.Fields)) {
|
|
756
|
-
if (field.description) {
|
|
789
|
+
if (field.docs.summary || field.docs.description) {
|
|
757
790
|
if (!first) {
|
|
758
791
|
// add an extra new-line between fields IFF the field
|
|
759
792
|
// has a comment and it's not the very first one.
|
|
760
793
|
text += '\n';
|
|
761
794
|
}
|
|
762
|
-
text +=
|
|
795
|
+
text += helpers.formatDocComment(field.docs);
|
|
763
796
|
}
|
|
764
797
|
let typeName = go.getTypeDeclaration(field.type);
|
|
765
798
|
if (go.isLiteralValue(field.type)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../../codegen.go/src/models.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../../codegen.go/src/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../../../codegen.go/src/operations.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAOtD,qBAAa,qBAAqB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI1C;AAGD,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../../../codegen.go/src/operations.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAOtD,qBAAa,qBAAqB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI1C;AAGD,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CA8IvG;AA0oCD,wBAAgB,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,GAAG,MAAM,CAOzD"}
|
|
@@ -42,8 +42,7 @@ export async function generateOperations(codeModel) {
|
|
|
42
42
|
imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore');
|
|
43
43
|
}
|
|
44
44
|
// generate client type
|
|
45
|
-
let clientText =
|
|
46
|
-
clientText += `${comment(`${client.description}`, '//', undefined, helpers.commentLength)}\n`;
|
|
45
|
+
let clientText = helpers.formatDocComment(client.docs);
|
|
47
46
|
clientText += '// Don\'t use this type directly, use ';
|
|
48
47
|
if (client.constructors.length === 1) {
|
|
49
48
|
clientText += `${client.constructors[0].name}() instead.\n`;
|
|
@@ -163,16 +162,16 @@ function generateConstructors(azureARM, client, imports) {
|
|
|
163
162
|
for (const ctorParam of constructor.parameters) {
|
|
164
163
|
imports.addImportForType(ctorParam.type);
|
|
165
164
|
ctorParams.push(`${ctorParam.name} ${helpers.formatParameterTypeName(ctorParam)}`);
|
|
166
|
-
if (ctorParam.description) {
|
|
167
|
-
paramDocs.push(helpers.formatCommentAsBulletItem(
|
|
165
|
+
if (ctorParam.docs.summary || ctorParam.docs.description) {
|
|
166
|
+
paramDocs.push(helpers.formatCommentAsBulletItem(ctorParam.name, ctorParam.docs));
|
|
168
167
|
}
|
|
169
168
|
}
|
|
170
169
|
// add client options last
|
|
171
170
|
ctorParams.push(`${client.options.name} ${helpers.formatParameterTypeName(client.options)}`);
|
|
172
|
-
paramDocs.push(helpers.formatCommentAsBulletItem(
|
|
171
|
+
paramDocs.push(helpers.formatCommentAsBulletItem(client.options.name, client.options.docs));
|
|
173
172
|
ctorText += `// ${constructor.name} creates a new instance of ${client.name} with the specified values.\n`;
|
|
174
173
|
for (const doc of paramDocs) {
|
|
175
|
-
ctorText +=
|
|
174
|
+
ctorText += doc;
|
|
176
175
|
}
|
|
177
176
|
ctorText += `func ${constructor.name}(${ctorParams.join(', ')}) (*${client.name}, error) {\n`;
|
|
178
177
|
let clientType = 'azcore';
|
|
@@ -205,7 +204,7 @@ function createARMClientConstructor(client, imports) {
|
|
|
205
204
|
ctor.parameters.push(param);
|
|
206
205
|
}
|
|
207
206
|
const tokenCredParam = new go.Parameter('credential', new go.QualifiedType('TokenCredential', 'github.com/Azure/azure-sdk-for-go/sdk/azcore'), 'required', true, 'client');
|
|
208
|
-
tokenCredParam.
|
|
207
|
+
tokenCredParam.docs.summary = 'used to authorize requests. Usually a credential from azidentity.';
|
|
209
208
|
ctor.parameters.push(tokenCredParam);
|
|
210
209
|
return ctor;
|
|
211
210
|
}
|
|
@@ -425,8 +424,8 @@ function generateOperation(client, method, imports, injectSpans, generateFakes)
|
|
|
425
424
|
let text = '';
|
|
426
425
|
const respErrDoc = genRespErrorDoc(method);
|
|
427
426
|
const apiVerDoc = genApiVersionDoc(method.apiVersions);
|
|
428
|
-
if (method.description) {
|
|
429
|
-
text +=
|
|
427
|
+
if (method.docs.summary || method.docs.description) {
|
|
428
|
+
text += helpers.formatDocCommentWithPrefix(methodName, method.docs);
|
|
430
429
|
}
|
|
431
430
|
else if (respErrDoc.length > 0 || apiVerDoc.length > 0) {
|
|
432
431
|
// if the method has no doc comment but we're adding other
|
|
@@ -441,9 +440,7 @@ function generateOperation(client, method, imports, injectSpans, generateFakes)
|
|
|
441
440
|
}
|
|
442
441
|
else {
|
|
443
442
|
for (const param of values(helpers.getMethodParameters(method))) {
|
|
444
|
-
|
|
445
|
-
text += `${helpers.formatCommentAsBulletItem(`${param.name} - ${param.description}`)}\n`;
|
|
446
|
-
}
|
|
443
|
+
text += helpers.formatCommentAsBulletItem(param.name, param.docs);
|
|
447
444
|
}
|
|
448
445
|
}
|
|
449
446
|
text += `func (client *${client.name}) ${methodName}(${params}) (${returns.join(', ')}) {\n`;
|
|
@@ -745,12 +742,20 @@ function createProtocolRequest(azureARM, client, method, imports) {
|
|
|
745
742
|
headerParams.push(param);
|
|
746
743
|
}
|
|
747
744
|
}
|
|
745
|
+
let contentType;
|
|
748
746
|
for (const param of headerParams.sort((a, b) => { return helpers.sortAscending(a.headerName, b.headerName); })) {
|
|
749
747
|
if (param.headerName.match(/^content-type$/)) {
|
|
750
748
|
// canonicalize content-type as req.SetBody checks for it via its canonicalized name :(
|
|
751
749
|
param.headerName = 'Content-Type';
|
|
752
750
|
}
|
|
753
|
-
if (
|
|
751
|
+
if (param.headerName === 'Content-Type' && param.kind === 'literal') {
|
|
752
|
+
// the content-type header will be set as part of emitSetBodyWithErrCheck
|
|
753
|
+
// to handle cases where the body param is optional. we don't want to set
|
|
754
|
+
// the content-type if the body is nil.
|
|
755
|
+
// we do it like this as tsp specifies content-type while swagger does not.
|
|
756
|
+
contentType = helpers.formatParamValue(param, imports);
|
|
757
|
+
}
|
|
758
|
+
else if (go.isRequiredParameter(param) || go.isLiteralParameter(param) || go.isClientSideDefault(param.kind)) {
|
|
754
759
|
text += emitHeaderSet(param, '\t');
|
|
755
760
|
}
|
|
756
761
|
else if (param.location === 'client' && !param.group) {
|
|
@@ -767,8 +772,12 @@ function createProtocolRequest(azureARM, client, method, imports) {
|
|
|
767
772
|
}
|
|
768
773
|
const partialBodyParams = values(method.parameters).where((param) => { return go.isPartialBodyParameter(param); }).toArray();
|
|
769
774
|
const bodyParam = values(method.parameters).where((each) => { return go.isBodyParameter(each) || go.isFormBodyParameter(each) || go.isMultipartFormBodyParameter(each); }).first();
|
|
770
|
-
const emitSetBodyWithErrCheck = function (setBodyParam) {
|
|
771
|
-
|
|
775
|
+
const emitSetBodyWithErrCheck = function (setBodyParam, contentType) {
|
|
776
|
+
let content = `if err := ${setBodyParam}; err != nil {\n\treturn nil, err\n}\n;`;
|
|
777
|
+
if (contentType) {
|
|
778
|
+
content = `req.Raw().Header["Content-Type"] = []string{${contentType}}\n` + content;
|
|
779
|
+
}
|
|
780
|
+
return content;
|
|
772
781
|
};
|
|
773
782
|
if (partialBodyParams.length > 0) {
|
|
774
783
|
// partial body params are discrete params that are all fields within an internal struct.
|
|
@@ -792,6 +801,8 @@ function createProtocolRequest(azureARM, client, method, imports) {
|
|
|
792
801
|
text += `\t\tbody.${capitalize(partialBodyParam.serializedName)} = options.${capitalize(partialBodyParam.name)}\n\t}\n`;
|
|
793
802
|
}
|
|
794
803
|
}
|
|
804
|
+
// TODO: spread params are JSON only https://github.com/Azure/autorest.go/issues/1455
|
|
805
|
+
text += '\treq.Raw().Header["Content-Type"] = []string{"application/json"}\n';
|
|
795
806
|
text += '\tif err := runtime.MarshalAsJSON(req, body); err != nil {\n\t\treturn nil, err\n\t}\n';
|
|
796
807
|
text += '\treturn req, nil\n';
|
|
797
808
|
}
|
|
@@ -859,12 +870,12 @@ function createProtocolRequest(azureARM, client, method, imports) {
|
|
|
859
870
|
setBody = `req.SetBody(streaming.NopCloser(bytes.NewReader(${body})), "application/${bodyParam.bodyFormat.toLowerCase()}")`;
|
|
860
871
|
}
|
|
861
872
|
if (go.isRequiredParameter(bodyParam) || go.isLiteralParameter(bodyParam)) {
|
|
862
|
-
text += `\t${emitSetBodyWithErrCheck(setBody)}`;
|
|
873
|
+
text += `\t${emitSetBodyWithErrCheck(setBody, contentType)}`;
|
|
863
874
|
text += '\treturn req, nil\n';
|
|
864
875
|
}
|
|
865
876
|
else {
|
|
866
877
|
text += emitParamGroupCheck(bodyParam);
|
|
867
|
-
text += `\t${emitSetBodyWithErrCheck(setBody)}`;
|
|
878
|
+
text += `\t${emitSetBodyWithErrCheck(setBody, contentType)}`;
|
|
868
879
|
text += '\t\treturn req, nil\n';
|
|
869
880
|
text += '\t}\n';
|
|
870
881
|
text += '\treturn req, nil\n';
|
|
@@ -872,12 +883,12 @@ function createProtocolRequest(azureARM, client, method, imports) {
|
|
|
872
883
|
}
|
|
873
884
|
else if (bodyParam.bodyFormat === 'binary') {
|
|
874
885
|
if (go.isRequiredParameter(bodyParam)) {
|
|
875
|
-
text += `\t${emitSetBodyWithErrCheck(`req.SetBody(${bodyParam.name}, ${bodyParam.contentType})
|
|
886
|
+
text += `\t${emitSetBodyWithErrCheck(`req.SetBody(${bodyParam.name}, ${bodyParam.contentType})`, contentType)}`;
|
|
876
887
|
text += '\treturn req, nil\n';
|
|
877
888
|
}
|
|
878
889
|
else {
|
|
879
890
|
text += emitParamGroupCheck(bodyParam);
|
|
880
|
-
text += `\t${emitSetBodyWithErrCheck(`req.SetBody(${helpers.getParamName(bodyParam)}, ${bodyParam.contentType})
|
|
891
|
+
text += `\t${emitSetBodyWithErrCheck(`req.SetBody(${helpers.getParamName(bodyParam)}, ${bodyParam.contentType})`, contentType)}`;
|
|
881
892
|
text += '\treturn req, nil\n';
|
|
882
893
|
text += '\t}\n';
|
|
883
894
|
text += '\treturn req, nil\n';
|
|
@@ -889,13 +900,13 @@ function createProtocolRequest(azureARM, client, method, imports) {
|
|
|
889
900
|
const bodyParam = values(method.parameters).where((each) => { return go.isBodyParameter(each); }).first();
|
|
890
901
|
if (go.isRequiredParameter(bodyParam)) {
|
|
891
902
|
text += `\tbody := streaming.NopCloser(strings.NewReader(${bodyParam.name}))\n`;
|
|
892
|
-
text += `\t${emitSetBodyWithErrCheck(`req.SetBody(body, ${bodyParam.contentType})
|
|
903
|
+
text += `\t${emitSetBodyWithErrCheck(`req.SetBody(body, ${bodyParam.contentType})`, contentType)}`;
|
|
893
904
|
text += '\treturn req, nil\n';
|
|
894
905
|
}
|
|
895
906
|
else {
|
|
896
907
|
text += emitParamGroupCheck(bodyParam);
|
|
897
908
|
text += `\tbody := streaming.NopCloser(strings.NewReader(${helpers.getParamName(bodyParam)}))\n`;
|
|
898
|
-
text += `\t${emitSetBodyWithErrCheck(`req.SetBody(body, ${bodyParam.contentType})
|
|
909
|
+
text += `\t${emitSetBodyWithErrCheck(`req.SetBody(body, ${bodyParam.contentType})`, contentType)}`;
|
|
899
910
|
text += '\treturn req, nil\n';
|
|
900
911
|
text += '\t}\n';
|
|
901
912
|
text += '\treturn req, nil\n';
|
|
@@ -1232,17 +1243,15 @@ function generateLROBeginMethod(client, method, imports, injectSpans, generateFa
|
|
|
1232
1243
|
const returns = generateReturnsInfo(method, 'api');
|
|
1233
1244
|
imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime');
|
|
1234
1245
|
let text = '';
|
|
1235
|
-
if (method.description) {
|
|
1236
|
-
text +=
|
|
1246
|
+
if (method.docs.summary || method.docs.description) {
|
|
1247
|
+
text += helpers.formatDocCommentWithPrefix(fixUpMethodName(method), method.docs);
|
|
1237
1248
|
text += genRespErrorDoc(method);
|
|
1238
1249
|
text += genApiVersionDoc(method.apiVersions);
|
|
1239
1250
|
}
|
|
1240
1251
|
const zeroResp = getZeroReturnValue(method, 'api');
|
|
1241
1252
|
const methodParams = helpers.getMethodParameters(method);
|
|
1242
1253
|
for (const param of values(methodParams)) {
|
|
1243
|
-
|
|
1244
|
-
text += `${helpers.formatCommentAsBulletItem(`${param.name} - ${param.description}`)}\n`;
|
|
1245
|
-
}
|
|
1254
|
+
text += helpers.formatCommentAsBulletItem(param.name, param.docs);
|
|
1246
1255
|
}
|
|
1247
1256
|
text += `func (client *${client.name}) ${fixUpMethodName(method)}(${params}) (${returns.join(', ')}) {\n`;
|
|
1248
1257
|
let pollerType = 'nil';
|