@azure-tools/typespec-go 0.2.0 → 0.3.0
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 +2 -11
- package/dist/codegen.go/src/clientFactory.js.map +1 -1
- package/dist/codegen.go/src/example.d.ts +8 -0
- package/dist/codegen.go/src/example.d.ts.map +1 -0
- package/dist/codegen.go/src/example.js +410 -0
- package/dist/codegen.go/src/example.js.map +1 -0
- package/dist/codegen.go/src/helpers.d.ts +2 -0
- package/dist/codegen.go/src/helpers.d.ts.map +1 -1
- package/dist/codegen.go/src/helpers.js +18 -1
- package/dist/codegen.go/src/helpers.js.map +1 -1
- package/dist/codemodel.go/src/client.d.ts +2 -0
- package/dist/codemodel.go/src/client.d.ts.map +1 -1
- package/dist/codemodel.go/src/client.js +1 -0
- package/dist/codemodel.go/src/client.js.map +1 -1
- package/dist/codemodel.go/src/examples.d.ts +103 -0
- package/dist/codemodel.go/src/examples.d.ts.map +1 -0
- package/dist/codemodel.go/src/examples.js +88 -0
- package/dist/codemodel.go/src/examples.js.map +1 -0
- package/dist/codemodel.go/src/index.d.ts +1 -0
- package/dist/codemodel.go/src/index.d.ts.map +1 -1
- package/dist/codemodel.go/src/index.js +1 -0
- package/dist/codemodel.go/src/index.js.map +1 -1
- package/dist/codemodel.go/src/package.d.ts +2 -1
- package/dist/codemodel.go/src/package.d.ts.map +1 -1
- package/dist/codemodel.go/src/package.js +2 -1
- package/dist/codemodel.go/src/package.js.map +1 -1
- package/dist/typespec-go/src/emitter.d.ts.map +1 -1
- package/dist/typespec-go/src/emitter.js +18 -2
- package/dist/typespec-go/src/emitter.js.map +1 -1
- package/dist/typespec-go/src/lib.d.ts +1 -0
- package/dist/typespec-go/src/lib.d.ts.map +1 -1
- package/dist/typespec-go/src/lib.js +1 -0
- package/dist/typespec-go/src/lib.js.map +1 -1
- package/dist/typespec-go/src/tcgcadapter/adapter.d.ts +1 -1
- package/dist/typespec-go/src/tcgcadapter/adapter.d.ts.map +1 -1
- package/dist/typespec-go/src/tcgcadapter/adapter.js +3 -3
- package/dist/typespec-go/src/tcgcadapter/adapter.js.map +1 -1
- package/dist/typespec-go/src/tcgcadapter/clients.d.ts +2 -0
- package/dist/typespec-go/src/tcgcadapter/clients.d.ts.map +1 -1
- package/dist/typespec-go/src/tcgcadapter/clients.js +148 -1
- package/dist/typespec-go/src/tcgcadapter/clients.js.map +1 -1
- package/dist/typespec-go/src/tcgcadapter/types.d.ts.map +1 -1
- package/dist/typespec-go/src/tcgcadapter/types.js +10 -24
- package/dist/typespec-go/src/tcgcadapter/types.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientFactory.d.ts","sourceRoot":"","sources":["../../../../codegen.go/src/clientFactory.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAOtD,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"clientFactory.d.ts","sourceRoot":"","sources":["../../../../codegen.go/src/clientFactory.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAOtD,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAmEpF"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { values } from '@azure-tools/linq';
|
|
6
|
-
import { contentPreamble, formatCommentAsBulletItem, formatParameterTypeName,
|
|
6
|
+
import { contentPreamble, formatCommentAsBulletItem, formatParameterTypeName, getAllClientParameters } from './helpers.js';
|
|
7
7
|
import { ImportManager } from './imports.js';
|
|
8
8
|
// Creates the content for client_factory.go (ARM only)
|
|
9
9
|
export async function generateClientFactory(codeModel) {
|
|
@@ -14,16 +14,7 @@ export async function generateClientFactory(codeModel) {
|
|
|
14
14
|
let result = '';
|
|
15
15
|
// the list of packages to import
|
|
16
16
|
const imports = new ImportManager();
|
|
17
|
-
const allClientParams =
|
|
18
|
-
for (const clients of codeModel.clients) {
|
|
19
|
-
for (const clientParam of values(clients.parameters)) {
|
|
20
|
-
if (values(allClientParams).where(param => param.name === clientParam.name).any()) {
|
|
21
|
-
continue;
|
|
22
|
-
}
|
|
23
|
-
allClientParams.push(clientParam);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
allClientParams.sort(sortParametersByRequired);
|
|
17
|
+
const allClientParams = getAllClientParameters(codeModel);
|
|
27
18
|
// add factory type
|
|
28
19
|
imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore');
|
|
29
20
|
result += '// ClientFactory is a client factory used to create any client in this module.\n';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientFactory.js","sourceRoot":"","sources":["../../../../codegen.go/src/clientFactory.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAGhG,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,
|
|
1
|
+
{"version":3,"file":"clientFactory.js","sourceRoot":"","sources":["../../../../codegen.go/src/clientFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as go from '../../codemodel.go/src/index.js';
|
|
2
|
+
export declare class ExampleContent {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
readonly content: string;
|
|
5
|
+
constructor(name: string, content: string);
|
|
6
|
+
}
|
|
7
|
+
export declare function generateExamples(codeModel: go.CodeModel): Promise<Array<ExampleContent>>;
|
|
8
|
+
//# sourceMappingURL=example.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../../../../codegen.go/src/example.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAMtD,qBAAa,cAAc;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI1C;AAGD,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CA4K9F"}
|
|
@@ -0,0 +1,410 @@
|
|
|
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 { camelCase } from '@azure-tools/codegen';
|
|
6
|
+
import * as go from '../../codemodel.go/src/index.js';
|
|
7
|
+
import * as helpers from './helpers.js';
|
|
8
|
+
import { ImportManager } from './imports.js';
|
|
9
|
+
import { fixUpMethodName } from './operations.js';
|
|
10
|
+
// represents the generated content for an example
|
|
11
|
+
export class ExampleContent {
|
|
12
|
+
constructor(name, content) {
|
|
13
|
+
this.name = name;
|
|
14
|
+
this.content = content;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
// Creates the content for all <example>.go files
|
|
18
|
+
export async function generateExamples(codeModel) {
|
|
19
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
20
|
+
// generate examples
|
|
21
|
+
const examples = new Array();
|
|
22
|
+
if (codeModel.clients.length === 0) {
|
|
23
|
+
return examples;
|
|
24
|
+
}
|
|
25
|
+
const azureARM = codeModel.type === 'azure-arm';
|
|
26
|
+
for (const client of codeModel.clients) {
|
|
27
|
+
const imports = new ImportManager();
|
|
28
|
+
// the list of packages to import
|
|
29
|
+
if (client.methods.length > 0) {
|
|
30
|
+
// add standard imports for clients with methods.
|
|
31
|
+
// clients that are purely hierarchical (i.e. having no APIs) won't need them.
|
|
32
|
+
imports.add('context');
|
|
33
|
+
imports.add('log');
|
|
34
|
+
imports.add('github.com/Azure/azure-sdk-for-go/sdk/azidentity');
|
|
35
|
+
imports.add(codeModel.options.module.name);
|
|
36
|
+
}
|
|
37
|
+
const allClientParams = helpers.getAllClientParameters(codeModel);
|
|
38
|
+
let exampleText = '';
|
|
39
|
+
for (const method of client.methods) {
|
|
40
|
+
if (method.examples.length === 0)
|
|
41
|
+
continue;
|
|
42
|
+
for (const example of method.examples) {
|
|
43
|
+
// function signature
|
|
44
|
+
exampleText += `// Generated from example definition: ${example.filePath}\n`;
|
|
45
|
+
const exampleFuncNamePrefix = method.examples.length > 1 ? `_${camelCase(example.name)}` : '';
|
|
46
|
+
exampleText += `func Example${client.name}_${fixUpMethodName(method)}${exampleFuncNamePrefix}() {\n`;
|
|
47
|
+
// create credential
|
|
48
|
+
exampleText += `\tcred, err := azidentity.NewDefaultAzureCredential(nil)\n`;
|
|
49
|
+
exampleText += `\tif err != nil {\n`;
|
|
50
|
+
exampleText += `\t\tlog.Fatalf("failed to obtain a credential: %v", err)\n`;
|
|
51
|
+
exampleText += `\t}\n`;
|
|
52
|
+
// create context
|
|
53
|
+
exampleText += `\tctx := context.Background()\n`;
|
|
54
|
+
// create client
|
|
55
|
+
const clientParameters = [];
|
|
56
|
+
for (const param of method.parameters) {
|
|
57
|
+
if (param.location === "client") {
|
|
58
|
+
const clientParam = example.parameters.find(p => p.parameter.name === param.name);
|
|
59
|
+
if (clientParam) {
|
|
60
|
+
clientParameters.push(clientParam);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// TODO: client optional parameters
|
|
65
|
+
let clientRef = '';
|
|
66
|
+
if (azureARM) {
|
|
67
|
+
// since not all operation has all the client factory required parameters, we need to fake for the missing ones
|
|
68
|
+
const clientFactoryParams = [];
|
|
69
|
+
for (const clientParam of allClientParams) {
|
|
70
|
+
const clientFactoryParam = clientParameters.find(p => p.parameter.name === clientParam.name);
|
|
71
|
+
if (clientFactoryParam) {
|
|
72
|
+
clientFactoryParams.push(clientFactoryParam);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
clientFactoryParams.push({ parameter: clientParam, value: generateFakeExample(clientParam.type, clientParam.name) });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exampleText += `\tclientFactory, err := ${codeModel.packageName}.NewClientFactory(${clientFactoryParams.map(p => getExampleValue(codeModel, p.value, '\t', imports, helpers.parameterByValue(p.parameter)).slice(1)).join(', ')}, cred, nil)\n`;
|
|
79
|
+
exampleText += `\tif err != nil {\n`;
|
|
80
|
+
exampleText += `\t\tlog.Fatalf("failed to create client: %v", err)\n`;
|
|
81
|
+
exampleText += `\t}\n`;
|
|
82
|
+
clientRef = `clientFactory.${(_a = client.constructors[0]) === null || _a === void 0 ? void 0 : _a.name}()`;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
exampleText += `\tclient, err := ${codeModel.packageName}.${(_b = client.constructors[0]) === null || _b === void 0 ? void 0 : _b.name}(${clientParameters.map(p => getExampleValue(codeModel, p.value, '\t', imports, helpers.parameterByValue(p.parameter)).slice(1)).join(', ')}, cred, nil)\n`;
|
|
86
|
+
exampleText += `\tif err != nil {\n`;
|
|
87
|
+
exampleText += `\t\tlog.Fatalf("failed to create client: %v", err)\n`;
|
|
88
|
+
exampleText += `\t}\n`;
|
|
89
|
+
clientRef = 'client';
|
|
90
|
+
}
|
|
91
|
+
// call method
|
|
92
|
+
const methodParameters = [];
|
|
93
|
+
for (const param of method.parameters) {
|
|
94
|
+
if (param.location === "method") {
|
|
95
|
+
const methodParam = example.parameters.find(p => p.parameter.name === param.name);
|
|
96
|
+
if (methodParam) {
|
|
97
|
+
methodParameters.push(methodParam);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const methodOptionalParameters = example.optionalParamsGroup.filter(p => p.parameter.location === 'method');
|
|
102
|
+
const checkResponse = example.responseEnvelope !== undefined;
|
|
103
|
+
let methodOptionalParametersText = 'nil';
|
|
104
|
+
if (methodOptionalParameters.length > 0) {
|
|
105
|
+
methodOptionalParametersText = `&${method.optionalParamsGroup.groupName}{\n`;
|
|
106
|
+
methodOptionalParametersText += methodOptionalParameters.map(p => `${p.parameter.name}: ${getExampleValue(codeModel, p.value, '\t', imports, helpers.parameterByValue(p.parameter)).slice(1)}`).join(',\n');
|
|
107
|
+
methodOptionalParametersText += `}`;
|
|
108
|
+
}
|
|
109
|
+
if (go.isLROMethod(method)) {
|
|
110
|
+
exampleText += `\tpoller, err := ${clientRef}.${fixUpMethodName(method)}(ctx, ${methodParameters.map(p => getExampleValue(codeModel, p.value, '\t', imports, helpers.parameterByValue(p.parameter)).slice(1)).join(', ')}, ${methodOptionalParametersText.split('\n').join('\n\t')})\n`;
|
|
111
|
+
exampleText += `\tif err != nil {\n`;
|
|
112
|
+
exampleText += `\t\tlog.Fatalf("failed to finish the request: %v", err)\n`;
|
|
113
|
+
exampleText += `\t}\n`;
|
|
114
|
+
exampleText += `\t${checkResponse ? 'res' : '_'}, err ${checkResponse ? ':=' : '='} poller.PollUntilDone(ctx, nil)\n`;
|
|
115
|
+
exampleText += `\tif err != nil {\n`;
|
|
116
|
+
exampleText += `\t\tlog.Fatalf("failed to pull the result: %v", err)\n`;
|
|
117
|
+
exampleText += `\t}\n`;
|
|
118
|
+
}
|
|
119
|
+
else if (go.isPageableMethod(method)) {
|
|
120
|
+
exampleText += `\tpager := ${clientRef}.${fixUpMethodName(method)}(${methodParameters.map(p => getExampleValue(codeModel, p.value, '\t', imports, helpers.parameterByValue(p.parameter)).slice(1)).join(', ')}${methodParameters.length > 0 ? ', ' : ''}${methodOptionalParametersText.split('\n').join('\n\t')})\n`;
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
exampleText += `\t${checkResponse ? 'res' : '_'}, err ${checkResponse ? ':=' : '='} ${clientRef}.${fixUpMethodName(method)}(ctx, ${methodParameters.map(p => getExampleValue(codeModel, p.value, '\t', imports, helpers.parameterByValue(p.parameter)).slice(1)).join(', ')}, ${methodOptionalParametersText.split('\n').join('\n\t')})\n`;
|
|
124
|
+
exampleText += `\tif err != nil {\n`;
|
|
125
|
+
exampleText += `\t\tlog.Fatalf("failed to finish the request: %v", err)\n`;
|
|
126
|
+
exampleText += `\t}\n`;
|
|
127
|
+
}
|
|
128
|
+
// check response
|
|
129
|
+
if (go.isPageableMethod(method)) {
|
|
130
|
+
let resultName = 'pager';
|
|
131
|
+
if (go.isLROMethod(method)) {
|
|
132
|
+
resultName = 'res';
|
|
133
|
+
}
|
|
134
|
+
const itemType = method.responseEnvelope.result.modelType.fields.find(f => go.isSliceType(f.type));
|
|
135
|
+
exampleText += `\tfor ${resultName}.More() {\n`;
|
|
136
|
+
exampleText += `\t\tpage, err := ${resultName}.NextPage(ctx)\n`;
|
|
137
|
+
exampleText += `\t\tif err != nil {\n`;
|
|
138
|
+
exampleText += `\t\t\tlog.Fatalf("failed to advance page: %v", err)\n`;
|
|
139
|
+
exampleText += `\t\t}\n`;
|
|
140
|
+
exampleText += `\t\tfor _, v := range page.${itemType.name} {\n`;
|
|
141
|
+
exampleText += `\t\t\t// You could use page here. We use blank identifier for just demo purposes.\n`;
|
|
142
|
+
exampleText += `\t\t\t_ = v\n`;
|
|
143
|
+
exampleText += `\t\t}\n`;
|
|
144
|
+
exampleText += `\t\t// If the HTTP response code is 200 as defined in example definition, your page structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.\n`;
|
|
145
|
+
exampleText += `\t\t// page = ${codeModel.packageName}.${(_c = example.responseEnvelope) === null || _c === void 0 ? void 0 : _c.response.name}{\n`;
|
|
146
|
+
for (const header of (_e = (_d = example.responseEnvelope) === null || _d === void 0 ? void 0 : _d.headers) !== null && _e !== void 0 ? _e : []) {
|
|
147
|
+
exampleText += `\t\t// \t${header.header.fieldName}: ${getExampleValue(codeModel, header.value, '', undefined, true).split('\n').join('\n\t\t// \t')}\n`;
|
|
148
|
+
}
|
|
149
|
+
exampleText += `\t\t// \t${((_f = example.responseEnvelope) === null || _f === void 0 ? void 0 : _f.result.type).name}: ${getExampleValue(codeModel, (_g = example.responseEnvelope) === null || _g === void 0 ? void 0 : _g.result, '', undefined, true).split('\n').join('\n\t\t// \t')},\n`;
|
|
150
|
+
exampleText += '\t\t// }\n';
|
|
151
|
+
exampleText += `\t}\n`;
|
|
152
|
+
}
|
|
153
|
+
else if (checkResponse) {
|
|
154
|
+
// if has fieldName, then the result is not a model type
|
|
155
|
+
const fieldName = method.responseEnvelope.fieldName;
|
|
156
|
+
exampleText += `\t// You could use response here. We use blank identifier for just demo purposes.\n`;
|
|
157
|
+
exampleText += `\t_ = res\n`;
|
|
158
|
+
exampleText += `\t// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.\n`;
|
|
159
|
+
exampleText += `\t// res = ${codeModel.packageName}.${(_h = example.responseEnvelope) === null || _h === void 0 ? void 0 : _h.response.name}{\n`;
|
|
160
|
+
for (const header of (_k = (_j = example.responseEnvelope) === null || _j === void 0 ? void 0 : _j.headers) !== null && _k !== void 0 ? _k : []) {
|
|
161
|
+
exampleText += `\t// \t${header.header.fieldName}: ${getExampleValue(codeModel, header.value, '', undefined, true).split('\n').join('\n\t// \t')}\n`;
|
|
162
|
+
}
|
|
163
|
+
if ((_l = example.responseEnvelope) === null || _l === void 0 ? void 0 : _l.result) {
|
|
164
|
+
exampleText += `\t// \t${fieldName ? fieldName : ((_m = example.responseEnvelope) === null || _m === void 0 ? void 0 : _m.result.type).name}: ${getExampleValue(codeModel, example.responseEnvelope.result, '').split('\n').join('\n\t// \t')},\n`;
|
|
165
|
+
}
|
|
166
|
+
exampleText += '\t// }\n';
|
|
167
|
+
}
|
|
168
|
+
exampleText += `}\n\n`;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
// if no example, then do not generate example file
|
|
172
|
+
if (exampleText === '')
|
|
173
|
+
continue;
|
|
174
|
+
// stitch it all together
|
|
175
|
+
let text = helpers.contentPreamble(codeModel, codeModel.packageName + '_test');
|
|
176
|
+
text += imports.text();
|
|
177
|
+
text += exampleText;
|
|
178
|
+
examples.push(new ExampleContent(client.name, text));
|
|
179
|
+
}
|
|
180
|
+
return examples;
|
|
181
|
+
}
|
|
182
|
+
function getExampleValue(codeModel, example, indent, imports, byValue = false, inArray = false) {
|
|
183
|
+
var _a, _b;
|
|
184
|
+
if (example.kind === 'string') {
|
|
185
|
+
let exampleText = `"${escapeString(example.value)}"`;
|
|
186
|
+
if (go.isConstantType(example.type)) {
|
|
187
|
+
exampleText = getConstantValue(codeModel, example.type, example.value);
|
|
188
|
+
}
|
|
189
|
+
else if (go.isTimeType(example.type)) {
|
|
190
|
+
exampleText = getTimeValue(example.type, example.value, imports);
|
|
191
|
+
}
|
|
192
|
+
else if (go.isBytesType(example.type)) {
|
|
193
|
+
exampleText = `[]byte("${escapeString(example.value)}")`;
|
|
194
|
+
}
|
|
195
|
+
return `${indent}${getPointerValue(example.type, exampleText, byValue, imports)}`;
|
|
196
|
+
}
|
|
197
|
+
else if (example.kind === 'number') {
|
|
198
|
+
let exampleText = `${example.value}`;
|
|
199
|
+
if (go.isConstantType(example.type)) {
|
|
200
|
+
exampleText = `${indent}${getConstantValue(codeModel, example.type, example.value)}`;
|
|
201
|
+
}
|
|
202
|
+
else if (go.isTimeType(example.type)) {
|
|
203
|
+
exampleText = getTimeValue(example.type, example.value, imports);
|
|
204
|
+
}
|
|
205
|
+
return `${indent}${getPointerValue(example.type, exampleText, byValue, imports)}`;
|
|
206
|
+
}
|
|
207
|
+
else if (example.kind === 'boolean') {
|
|
208
|
+
let exampleText = `${example.value}`;
|
|
209
|
+
if (go.isConstantType(example.type)) {
|
|
210
|
+
exampleText = `${indent}${getConstantValue(codeModel, example.type, example.value)}`;
|
|
211
|
+
}
|
|
212
|
+
return `${indent}${getPointerValue(example.type, exampleText, byValue, imports)}`;
|
|
213
|
+
}
|
|
214
|
+
else if (example.kind === 'null') {
|
|
215
|
+
return `${indent}nil`;
|
|
216
|
+
}
|
|
217
|
+
else if (example.kind === 'any') {
|
|
218
|
+
return jsonToGo(example.value, indent);
|
|
219
|
+
}
|
|
220
|
+
else if (example.kind === 'array') {
|
|
221
|
+
const isElementByValue = example.type.elementTypeByValue;
|
|
222
|
+
// if polymorphic, need to add type name in array, so inArray will be set to false
|
|
223
|
+
// if other case, no need to add type name in array, so inArray will be set to true
|
|
224
|
+
const isElementPolymorphic = go.isInterfaceType(example.type.elementType);
|
|
225
|
+
let exampleText = `${indent}${getRef(byValue)}${go.getTypeDeclaration(example.type, codeModel.packageName)}{\n`;
|
|
226
|
+
for (const element of example.value) {
|
|
227
|
+
exampleText += `${getExampleValue(codeModel, element, indent + '\t', imports, isElementByValue && !isElementPolymorphic, !isElementPolymorphic)},\n`;
|
|
228
|
+
}
|
|
229
|
+
exampleText += `${indent}}`;
|
|
230
|
+
return exampleText;
|
|
231
|
+
}
|
|
232
|
+
else if (example.kind === 'dictionary') {
|
|
233
|
+
let exampleText = `${indent}${getRef(byValue)}${go.getTypeDeclaration(example.type, codeModel.packageName)}{\n`;
|
|
234
|
+
const isValueByValue = example.type.valueTypeByValue;
|
|
235
|
+
const isValuePolymorphic = go.isInterfaceType(example.type.valueType);
|
|
236
|
+
for (const key in example.value) {
|
|
237
|
+
exampleText += `${indent}\t"${key}": ${getExampleValue(codeModel, example.value[key], indent + '\t', imports, isValueByValue && !isValuePolymorphic).slice(indent.length + 1)},\n`;
|
|
238
|
+
}
|
|
239
|
+
exampleText += `${indent}}`;
|
|
240
|
+
return exampleText;
|
|
241
|
+
}
|
|
242
|
+
else if (example.kind === 'model') {
|
|
243
|
+
let exampleText = `${indent}${getRef(byValue)}${go.getTypeDeclaration(example.type, codeModel.packageName)}{\n`;
|
|
244
|
+
if (inArray) {
|
|
245
|
+
exampleText = `${indent}{\n`;
|
|
246
|
+
}
|
|
247
|
+
for (const field in example.value) {
|
|
248
|
+
const goField = example.type.fields.find(f => f.name === field);
|
|
249
|
+
const isFieldByValue = (_a = goField.byValue) !== null && _a !== void 0 ? _a : false;
|
|
250
|
+
const isFieldPolymorphic = go.isInterfaceType(goField.type);
|
|
251
|
+
exampleText += `${indent}\t${field}: ${getExampleValue(codeModel, example.value[field], indent + '\t', imports, isFieldByValue && !isFieldPolymorphic).slice(indent.length + 1)},\n`;
|
|
252
|
+
}
|
|
253
|
+
if (example.additionalProperties) {
|
|
254
|
+
const additionalPropertiesField = example.type.fields.find(f => f.annotations.isAdditionalProperties);
|
|
255
|
+
const isAdditionalPropertiesFieldByValue = (_b = additionalPropertiesField.byValue) !== null && _b !== void 0 ? _b : false;
|
|
256
|
+
const isAdditionalPropertiesPolymorphic = go.isInterfaceType(additionalPropertiesField.type);
|
|
257
|
+
exampleText += `${indent}\t${additionalPropertiesField.name}: map[string]${getRef(additionalPropertiesField.byValue)}${go.getTypeDeclaration(additionalPropertiesField.type, codeModel.packageName)}{\n`;
|
|
258
|
+
for (const key in example.additionalProperties) {
|
|
259
|
+
exampleText += `${indent}\t"${key}": ${getExampleValue(codeModel, example.additionalProperties[key], indent + '\t', imports, isAdditionalPropertiesFieldByValue && !isAdditionalPropertiesPolymorphic).slice(indent.length + 1)},\n`;
|
|
260
|
+
}
|
|
261
|
+
exampleText += `${indent}}\n`;
|
|
262
|
+
}
|
|
263
|
+
exampleText += `${indent}}`;
|
|
264
|
+
return exampleText;
|
|
265
|
+
}
|
|
266
|
+
return '';
|
|
267
|
+
}
|
|
268
|
+
function getRef(byValue) {
|
|
269
|
+
return byValue ? '' : '&';
|
|
270
|
+
}
|
|
271
|
+
function getConstantValue(codeModel, type, value) {
|
|
272
|
+
for (const constantValue of type.values) {
|
|
273
|
+
if (constantValue.value === value) {
|
|
274
|
+
return `${codeModel.packageName}.${constantValue.name}`;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
return `${value}`;
|
|
278
|
+
}
|
|
279
|
+
function getTimeValue(type, value, imports) {
|
|
280
|
+
if (type.dateTimeFormat === 'dateType' || type.dateTimeFormat === 'timeRFC3339') {
|
|
281
|
+
if (imports)
|
|
282
|
+
imports.add('time');
|
|
283
|
+
let format = helpers.dateFormat;
|
|
284
|
+
if (type.dateTimeFormat === 'timeRFC3339') {
|
|
285
|
+
format = helpers.timeRFC3339Format;
|
|
286
|
+
}
|
|
287
|
+
return `func() time.Time { t, _ := time.Parse("${format}", "${value}"); return t}()`;
|
|
288
|
+
}
|
|
289
|
+
else if (type.dateTimeFormat === 'dateTimeRFC1123' || type.dateTimeFormat === 'dateTimeRFC3339') {
|
|
290
|
+
if (imports)
|
|
291
|
+
imports.add('time');
|
|
292
|
+
let format = helpers.datetimeRFC3339Format;
|
|
293
|
+
if (type.dateTimeFormat === 'dateTimeRFC1123') {
|
|
294
|
+
format = helpers.datetimeRFC1123Format;
|
|
295
|
+
}
|
|
296
|
+
return `func() time.Time { t, _ := time.Parse(${format}, "${value}"); return t}()`;
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
if (imports)
|
|
300
|
+
imports.add('strconv');
|
|
301
|
+
if (imports)
|
|
302
|
+
imports.add('time');
|
|
303
|
+
return `func() time.Time { t, _ := strconv.ParseInt(${value}, 10, 64); return time.Unix(t, 0).UTC()}()`;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
function getPointerValue(type, valueString, byValue, imports) {
|
|
307
|
+
if (byValue) {
|
|
308
|
+
return valueString;
|
|
309
|
+
}
|
|
310
|
+
if (go.isPrimitiveType(type)) {
|
|
311
|
+
let prtType = '';
|
|
312
|
+
switch (type.typeName) {
|
|
313
|
+
case 'any':
|
|
314
|
+
case `bool`:
|
|
315
|
+
case `byte`:
|
|
316
|
+
case `rune`:
|
|
317
|
+
case `string`:
|
|
318
|
+
prtType = 'Ptr';
|
|
319
|
+
break;
|
|
320
|
+
default:
|
|
321
|
+
prtType = `Ptr[${type.typeName}]`;
|
|
322
|
+
}
|
|
323
|
+
if (imports)
|
|
324
|
+
imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore/to');
|
|
325
|
+
return `to.${prtType}(${valueString})`;
|
|
326
|
+
}
|
|
327
|
+
else if (go.isConstantType(type) || go.isTimeType(type)) {
|
|
328
|
+
if (imports)
|
|
329
|
+
imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore/to');
|
|
330
|
+
return `to.Ptr(${valueString})`;
|
|
331
|
+
}
|
|
332
|
+
else if (go.isLiteralValue(type)) {
|
|
333
|
+
if (imports)
|
|
334
|
+
imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore/to');
|
|
335
|
+
return `to.Ptr(${valueString})`;
|
|
336
|
+
}
|
|
337
|
+
else {
|
|
338
|
+
return `&${valueString}`;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
function jsonToGo(value, indent) {
|
|
342
|
+
if (typeof value === 'string') {
|
|
343
|
+
return `${indent}"${value}"`;
|
|
344
|
+
}
|
|
345
|
+
else if (typeof value === 'number' || typeof value === 'bigint') {
|
|
346
|
+
return `${indent}${value}`;
|
|
347
|
+
}
|
|
348
|
+
else if (typeof value === 'boolean') {
|
|
349
|
+
return `${indent}${value}`;
|
|
350
|
+
}
|
|
351
|
+
else if (typeof value === 'undefined') {
|
|
352
|
+
return `${indent}nil`;
|
|
353
|
+
}
|
|
354
|
+
else if (typeof value === 'object') {
|
|
355
|
+
if (value === null) {
|
|
356
|
+
return `${indent}nil`;
|
|
357
|
+
}
|
|
358
|
+
else if (Array.isArray(value)) {
|
|
359
|
+
let result = `${indent}any{\n`;
|
|
360
|
+
for (const item of value) {
|
|
361
|
+
result += `${jsonToGo(item, indent + '\t')},\n`;
|
|
362
|
+
}
|
|
363
|
+
result += `${indent}}`;
|
|
364
|
+
return result;
|
|
365
|
+
}
|
|
366
|
+
else {
|
|
367
|
+
let result = `map[string]any{\n`;
|
|
368
|
+
for (const key in value) {
|
|
369
|
+
result += `${indent}\t"${key}": ${jsonToGo(value[key], indent + '\t').slice(indent.length + 1)},\n`;
|
|
370
|
+
}
|
|
371
|
+
result += `${indent}}`;
|
|
372
|
+
return result;
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
return '';
|
|
376
|
+
}
|
|
377
|
+
function generateFakeExample(goType, name) {
|
|
378
|
+
if (go.isPrimitiveType(goType)) {
|
|
379
|
+
switch (goType.typeName) {
|
|
380
|
+
case 'any':
|
|
381
|
+
return new go.NullExample(goType);
|
|
382
|
+
case 'bool':
|
|
383
|
+
return new go.BooleanExample(false, goType);
|
|
384
|
+
case 'byte':
|
|
385
|
+
case 'string':
|
|
386
|
+
case 'rune':
|
|
387
|
+
return new go.StringExample(`<${name !== null && name !== void 0 ? name : 'test'}>`, goType);
|
|
388
|
+
default:
|
|
389
|
+
return new go.NumberExample(0, goType);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
else if (go.isLiteralValue(goType)) {
|
|
393
|
+
return new go.StringExample(goType.literal, goType);
|
|
394
|
+
}
|
|
395
|
+
else if (go.isConstantType(goType)) {
|
|
396
|
+
switch (goType.type) {
|
|
397
|
+
case 'bool':
|
|
398
|
+
return new go.BooleanExample(goType.values[0].value, goType);
|
|
399
|
+
case 'string':
|
|
400
|
+
return new go.StringExample(goType.values[0].value, goType);
|
|
401
|
+
default:
|
|
402
|
+
return new go.NumberExample(goType.values[0].value, goType);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
throw new Error(`do not support to fake example for none primitive type: ${goType}`);
|
|
406
|
+
}
|
|
407
|
+
function escapeString(str) {
|
|
408
|
+
return str.split('\\').join('\\\\').split('"').join('\\"').replace(/\n/g, '\\n').replace(/\r/g, '\\r');
|
|
409
|
+
}
|
|
410
|
+
//# sourceMappingURL=example.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"example.js","sourceRoot":"","sources":["../../../../codegen.go/src/example.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export declare function sortAscending(a: string, b: string): number;
|
|
|
10
10
|
export declare function isParameter(param: go.Parameter | go.ParameterGroup): param is go.Parameter;
|
|
11
11
|
export declare function isParameterGroup(param: go.Parameter | go.ParameterGroup): param is go.ParameterGroup;
|
|
12
12
|
export declare function formatParameterTypeName(param: go.Parameter | go.ParameterGroup, pkgName?: string): string;
|
|
13
|
+
export declare function parameterByValue(param: go.Parameter): boolean;
|
|
13
14
|
export declare function sortParametersByRequired(a: go.Parameter | go.ParameterGroup, b: go.Parameter | go.ParameterGroup): number;
|
|
14
15
|
export declare function getCreateRequestParametersSig(method: go.Method | go.NextPageMethod): string;
|
|
15
16
|
export declare function getCreateRequestParameters(method: go.Method): string;
|
|
@@ -31,4 +32,5 @@ export declare function recursiveUnwrapMapSlice(item: go.PossibleType): go.Possi
|
|
|
31
32
|
export declare function star(param: go.Parameter): string;
|
|
32
33
|
export type SerDeFormat = 'JSON' | 'XML';
|
|
33
34
|
export declare function getSerDeFormat(model: go.ModelType | go.PolymorphicType, codeModel: go.CodeModel): SerDeFormat;
|
|
35
|
+
export declare function getAllClientParameters(codeModel: go.CodeModel): Array<go.Parameter>;
|
|
34
36
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../codegen.go/src/helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../codegen.go/src/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,13 +50,16 @@ export function formatParameterTypeName(param, pkgName) {
|
|
|
50
50
|
}
|
|
51
51
|
else {
|
|
52
52
|
typeName = go.getTypeDeclaration(param.type, pkgName);
|
|
53
|
-
if (
|
|
53
|
+
if (parameterByValue(param)) {
|
|
54
54
|
// client parameters with default values aren't emitted as pointer-to-type
|
|
55
55
|
return typeName;
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
return `*${typeName}`;
|
|
59
59
|
}
|
|
60
|
+
export function parameterByValue(param) {
|
|
61
|
+
return go.isRequiredParameter(param) || (param.location === 'client' && go.isClientSideDefault(param.kind));
|
|
62
|
+
}
|
|
60
63
|
// sorts parameters by their required state, ordering required before optional
|
|
61
64
|
export function sortParametersByRequired(a, b) {
|
|
62
65
|
let aRequired = false;
|
|
@@ -657,4 +660,18 @@ export function getSerDeFormat(model, codeModel) {
|
|
|
657
660
|
}
|
|
658
661
|
return serDeFormat;
|
|
659
662
|
}
|
|
663
|
+
// return combined client parameters for all the clients
|
|
664
|
+
export function getAllClientParameters(codeModel) {
|
|
665
|
+
const allClientParams = new Array();
|
|
666
|
+
for (const clients of codeModel.clients) {
|
|
667
|
+
for (const clientParam of values(clients.parameters)) {
|
|
668
|
+
if (values(allClientParams).where(param => param.name === clientParam.name).any()) {
|
|
669
|
+
continue;
|
|
670
|
+
}
|
|
671
|
+
allClientParams.push(clientParam);
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
allClientParams.sort(sortParametersByRequired);
|
|
675
|
+
return allClientParams;
|
|
676
|
+
}
|
|
660
677
|
//# sourceMappingURL=helpers.js.map
|