@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.
Files changed (46) hide show
  1. package/dist/codegen.go/src/clientFactory.d.ts.map +1 -1
  2. package/dist/codegen.go/src/clientFactory.js +2 -11
  3. package/dist/codegen.go/src/clientFactory.js.map +1 -1
  4. package/dist/codegen.go/src/example.d.ts +8 -0
  5. package/dist/codegen.go/src/example.d.ts.map +1 -0
  6. package/dist/codegen.go/src/example.js +410 -0
  7. package/dist/codegen.go/src/example.js.map +1 -0
  8. package/dist/codegen.go/src/helpers.d.ts +2 -0
  9. package/dist/codegen.go/src/helpers.d.ts.map +1 -1
  10. package/dist/codegen.go/src/helpers.js +18 -1
  11. package/dist/codegen.go/src/helpers.js.map +1 -1
  12. package/dist/codemodel.go/src/client.d.ts +2 -0
  13. package/dist/codemodel.go/src/client.d.ts.map +1 -1
  14. package/dist/codemodel.go/src/client.js +1 -0
  15. package/dist/codemodel.go/src/client.js.map +1 -1
  16. package/dist/codemodel.go/src/examples.d.ts +103 -0
  17. package/dist/codemodel.go/src/examples.d.ts.map +1 -0
  18. package/dist/codemodel.go/src/examples.js +88 -0
  19. package/dist/codemodel.go/src/examples.js.map +1 -0
  20. package/dist/codemodel.go/src/index.d.ts +1 -0
  21. package/dist/codemodel.go/src/index.d.ts.map +1 -1
  22. package/dist/codemodel.go/src/index.js +1 -0
  23. package/dist/codemodel.go/src/index.js.map +1 -1
  24. package/dist/codemodel.go/src/package.d.ts +2 -1
  25. package/dist/codemodel.go/src/package.d.ts.map +1 -1
  26. package/dist/codemodel.go/src/package.js +2 -1
  27. package/dist/codemodel.go/src/package.js.map +1 -1
  28. package/dist/typespec-go/src/emitter.d.ts.map +1 -1
  29. package/dist/typespec-go/src/emitter.js +18 -2
  30. package/dist/typespec-go/src/emitter.js.map +1 -1
  31. package/dist/typespec-go/src/lib.d.ts +1 -0
  32. package/dist/typespec-go/src/lib.d.ts.map +1 -1
  33. package/dist/typespec-go/src/lib.js +1 -0
  34. package/dist/typespec-go/src/lib.js.map +1 -1
  35. package/dist/typespec-go/src/tcgcadapter/adapter.d.ts +1 -1
  36. package/dist/typespec-go/src/tcgcadapter/adapter.d.ts.map +1 -1
  37. package/dist/typespec-go/src/tcgcadapter/adapter.js +3 -3
  38. package/dist/typespec-go/src/tcgcadapter/adapter.js.map +1 -1
  39. package/dist/typespec-go/src/tcgcadapter/clients.d.ts +2 -0
  40. package/dist/typespec-go/src/tcgcadapter/clients.d.ts.map +1 -1
  41. package/dist/typespec-go/src/tcgcadapter/clients.js +148 -1
  42. package/dist/typespec-go/src/tcgcadapter/clients.js.map +1 -1
  43. package/dist/typespec-go/src/tcgcadapter/types.d.ts.map +1 -1
  44. package/dist/typespec-go/src/tcgcadapter/types.js +10 -24
  45. package/dist/typespec-go/src/tcgcadapter/types.js.map +1 -1
  46. 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,CA4EpF"}
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, sortParametersByRequired } from './helpers.js';
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 = new Array();
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":"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"}
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 (go.isRequiredParameter(param) || (param.location === 'client' && go.isClientSideDefault(param.kind))) {
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