@azure-tools/typespec-go 0.1.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 (119) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +16 -0
  3. package/dist/codegen.go/src/clientFactory.d.ts +3 -0
  4. package/dist/codegen.go/src/clientFactory.d.ts.map +1 -0
  5. package/dist/codegen.go/src/clientFactory.js +77 -0
  6. package/dist/codegen.go/src/clientFactory.js.map +1 -0
  7. package/dist/codegen.go/src/constants.d.ts +3 -0
  8. package/dist/codegen.go/src/constants.d.ts.map +1 -0
  9. package/dist/codegen.go/src/constants.js +59 -0
  10. package/dist/codegen.go/src/constants.js.map +1 -0
  11. package/dist/codegen.go/src/fake/factory.d.ts +3 -0
  12. package/dist/codegen.go/src/fake/factory.d.ts.map +1 -0
  13. package/dist/codegen.go/src/fake/factory.js +69 -0
  14. package/dist/codegen.go/src/fake/factory.js.map +1 -0
  15. package/dist/codegen.go/src/fake/internal.d.ts +14 -0
  16. package/dist/codegen.go/src/fake/internal.d.ts.map +1 -0
  17. package/dist/codegen.go/src/fake/internal.js +197 -0
  18. package/dist/codegen.go/src/fake/internal.js.map +1 -0
  19. package/dist/codegen.go/src/fake/servers.d.ts +14 -0
  20. package/dist/codegen.go/src/fake/servers.d.ts.map +1 -0
  21. package/dist/codegen.go/src/fake/servers.js +1255 -0
  22. package/dist/codegen.go/src/fake/servers.js.map +1 -0
  23. package/dist/codegen.go/src/gomod.d.ts +3 -0
  24. package/dist/codegen.go/src/gomod.d.ts.map +1 -0
  25. package/dist/codegen.go/src/gomod.js +55 -0
  26. package/dist/codegen.go/src/gomod.js.map +1 -0
  27. package/dist/codegen.go/src/helpers.d.ts +32 -0
  28. package/dist/codegen.go/src/helpers.d.ts.map +1 -0
  29. package/dist/codegen.go/src/helpers.js +586 -0
  30. package/dist/codegen.go/src/helpers.js.map +1 -0
  31. package/dist/codegen.go/src/imports.d.ts +11 -0
  32. package/dist/codegen.go/src/imports.d.ts.map +1 -0
  33. package/dist/codegen.go/src/imports.js +65 -0
  34. package/dist/codegen.go/src/imports.js.map +1 -0
  35. package/dist/codegen.go/src/interfaces.d.ts +3 -0
  36. package/dist/codegen.go/src/interfaces.d.ts.map +1 -0
  37. package/dist/codegen.go/src/interfaces.js +36 -0
  38. package/dist/codegen.go/src/interfaces.js.map +1 -0
  39. package/dist/codegen.go/src/models.d.ts +9 -0
  40. package/dist/codegen.go/src/models.d.ts.map +1 -0
  41. package/dist/codegen.go/src/models.js +849 -0
  42. package/dist/codegen.go/src/models.js.map +1 -0
  43. package/dist/codegen.go/src/operations.d.ts +9 -0
  44. package/dist/codegen.go/src/operations.d.ts.map +1 -0
  45. package/dist/codegen.go/src/operations.js +1337 -0
  46. package/dist/codegen.go/src/operations.js.map +1 -0
  47. package/dist/codegen.go/src/options.d.ts +3 -0
  48. package/dist/codegen.go/src/options.d.ts.map +1 -0
  49. package/dist/codegen.go/src/options.js +64 -0
  50. package/dist/codegen.go/src/options.js.map +1 -0
  51. package/dist/codegen.go/src/polymorphics.d.ts +3 -0
  52. package/dist/codegen.go/src/polymorphics.d.ts.map +1 -0
  53. package/dist/codegen.go/src/polymorphics.js +169 -0
  54. package/dist/codegen.go/src/polymorphics.js.map +1 -0
  55. package/dist/codegen.go/src/responses.d.ts +7 -0
  56. package/dist/codegen.go/src/responses.d.ts.map +1 -0
  57. package/dist/codegen.go/src/responses.js +167 -0
  58. package/dist/codegen.go/src/responses.js.map +1 -0
  59. package/dist/codegen.go/src/time.d.ts +8 -0
  60. package/dist/codegen.go/src/time.d.ts.map +1 -0
  61. package/dist/codegen.go/src/time.js +511 -0
  62. package/dist/codegen.go/src/time.js.map +1 -0
  63. package/dist/codemodel.go/src/client.d.ts +96 -0
  64. package/dist/codemodel.go/src/client.d.ts.map +1 -0
  65. package/dist/codemodel.go/src/client.js +114 -0
  66. package/dist/codemodel.go/src/client.js.map +1 -0
  67. package/dist/codemodel.go/src/index.d.ts +6 -0
  68. package/dist/codemodel.go/src/index.d.ts.map +1 -0
  69. package/dist/codemodel.go/src/index.js +10 -0
  70. package/dist/codemodel.go/src/index.js.map +1 -0
  71. package/dist/codemodel.go/src/package.d.ts +49 -0
  72. package/dist/codemodel.go/src/package.d.ts.map +1 -0
  73. package/dist/codemodel.go/src/package.js +86 -0
  74. package/dist/codemodel.go/src/package.js.map +1 -0
  75. package/dist/codemodel.go/src/param.d.ts +162 -0
  76. package/dist/codemodel.go/src/param.d.ts.map +1 -0
  77. package/dist/codemodel.go/src/param.js +189 -0
  78. package/dist/codemodel.go/src/param.js.map +1 -0
  79. package/dist/codemodel.go/src/result.d.ts +102 -0
  80. package/dist/codemodel.go/src/result.d.ts.map +1 -0
  81. package/dist/codemodel.go/src/result.js +119 -0
  82. package/dist/codemodel.go/src/result.js.map +1 -0
  83. package/dist/codemodel.go/src/type.d.ts +181 -0
  84. package/dist/codemodel.go/src/type.d.ts.map +1 -0
  85. package/dist/codemodel.go/src/type.js +242 -0
  86. package/dist/codemodel.go/src/type.js.map +1 -0
  87. package/dist/naming.go/src/mappings.d.ts +3 -0
  88. package/dist/naming.go/src/mappings.d.ts.map +1 -0
  89. package/dist/naming.go/src/mappings.js +128 -0
  90. package/dist/naming.go/src/mappings.js.map +1 -0
  91. package/dist/naming.go/src/naming.d.ts +10 -0
  92. package/dist/naming.go/src/naming.d.ts.map +1 -0
  93. package/dist/naming.go/src/naming.js +114 -0
  94. package/dist/naming.go/src/naming.js.map +1 -0
  95. package/dist/typespec-go/src/emitter.d.ts +5 -0
  96. package/dist/typespec-go/src/emitter.d.ts.map +1 -0
  97. package/dist/typespec-go/src/emitter.js +122 -0
  98. package/dist/typespec-go/src/emitter.js.map +1 -0
  99. package/dist/typespec-go/src/index.d.ts +3 -0
  100. package/dist/typespec-go/src/index.d.ts.map +1 -0
  101. package/dist/typespec-go/src/index.js +7 -0
  102. package/dist/typespec-go/src/index.js.map +1 -0
  103. package/dist/typespec-go/src/lib.d.ts +25 -0
  104. package/dist/typespec-go/src/lib.d.ts.map +1 -0
  105. package/dist/typespec-go/src/lib.js +36 -0
  106. package/dist/typespec-go/src/lib.js.map +1 -0
  107. package/dist/typespec-go/src/tcgcadapter/adapter.d.ts +5 -0
  108. package/dist/typespec-go/src/tcgcadapter/adapter.d.ts.map +1 -0
  109. package/dist/typespec-go/src/tcgcadapter/adapter.js +119 -0
  110. package/dist/typespec-go/src/tcgcadapter/adapter.js.map +1 -0
  111. package/dist/typespec-go/src/tcgcadapter/clients.d.ts +26 -0
  112. package/dist/typespec-go/src/tcgcadapter/clients.d.ts.map +1 -0
  113. package/dist/typespec-go/src/tcgcadapter/clients.js +621 -0
  114. package/dist/typespec-go/src/tcgcadapter/clients.js.map +1 -0
  115. package/dist/typespec-go/src/tcgcadapter/types.d.ts +29 -0
  116. package/dist/typespec-go/src/tcgcadapter/types.d.ts.map +1 -0
  117. package/dist/typespec-go/src/tcgcadapter/types.js +975 -0
  118. package/dist/typespec-go/src/tcgcadapter/types.js.map +1 -0
  119. package/package.json +77 -0
@@ -0,0 +1,586 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import * as go from '../../codemodel.go/src/index.js';
6
+ import { values } from '@azure-tools/linq';
7
+ import { capitalize, comment, uncapitalize } from '@azure-tools/codegen';
8
+ // variable to be used to determine comment length when calling comment from @azure-tools
9
+ export const commentLength = 120;
10
+ export const dateFormat = '2006-01-02';
11
+ export const datetimeRFC3339Format = 'time.RFC3339Nano';
12
+ export const datetimeRFC1123Format = 'time.RFC1123';
13
+ export const timeRFC3339Format = '15:04:05.999999999Z07:00';
14
+ // returns the common source-file preamble (license comment, package name etc)
15
+ export function contentPreamble(codeModel, packageName) {
16
+ if (!packageName) {
17
+ packageName = codeModel.packageName;
18
+ }
19
+ const headerText = comment(codeModel.options.headerText, '// ');
20
+ // ensure tools recognize the file as generated according to
21
+ // https://pkg.go.dev/cmd/go#hdr-Generate_Go_files_by_processing_source
22
+ let text = headerText.replace(/^\/\/ Code generated .*\.$/m, '$& DO NOT EDIT.');
23
+ if (!text.match(/^\/\/ Code generated .* DO NOT EDIT\.$/m)) {
24
+ text += '\n// Code generated by @autorest/go. DO NOT EDIT.';
25
+ }
26
+ text += `\n\npackage ${packageName}\n\n`;
27
+ return text;
28
+ }
29
+ // used to sort strings in ascending order
30
+ export function sortAscending(a, b) {
31
+ return a < b ? -1 : a > b ? 1 : 0;
32
+ }
33
+ export function isParameter(param) {
34
+ return param.groupName === undefined;
35
+ }
36
+ export function isParameterGroup(param) {
37
+ return param.groupName !== undefined;
38
+ }
39
+ // returns the type name with possible * prefix
40
+ export function formatParameterTypeName(param, pkgName) {
41
+ let typeName;
42
+ if (isParameterGroup(param)) {
43
+ typeName = param.groupName;
44
+ if (pkgName) {
45
+ typeName = `${pkgName}.${typeName}`;
46
+ }
47
+ if (param.required) {
48
+ return typeName;
49
+ }
50
+ }
51
+ else {
52
+ typeName = go.getTypeDeclaration(param.type, pkgName);
53
+ if (go.isRequiredParameter(param) || (param.location === 'client' && go.isClientSideDefault(param.kind))) {
54
+ // client parameters with default values aren't emitted as pointer-to-type
55
+ return typeName;
56
+ }
57
+ }
58
+ return `*${typeName}`;
59
+ }
60
+ // sorts parameters by their required state, ordering required before optional
61
+ export function sortParametersByRequired(a, b) {
62
+ let aRequired = false;
63
+ let bRequired = false;
64
+ if (isParameter(a)) {
65
+ aRequired = go.isRequiredParameter(a);
66
+ }
67
+ else {
68
+ aRequired = a.required;
69
+ }
70
+ if (isParameter(b)) {
71
+ bRequired = go.isRequiredParameter(b);
72
+ }
73
+ else {
74
+ bRequired = b.required;
75
+ }
76
+ if (aRequired === bRequired) {
77
+ return 0;
78
+ }
79
+ else if (aRequired && !bRequired) {
80
+ return -1;
81
+ }
82
+ return 1;
83
+ }
84
+ // returns the parameters for the internal request creator method.
85
+ // e.g. "i int, s string"
86
+ export function getCreateRequestParametersSig(method) {
87
+ const methodParams = getMethodParameters(method);
88
+ const params = new Array();
89
+ params.push('ctx context.Context');
90
+ for (const methodParam of values(methodParams)) {
91
+ let paramName = uncapitalize(methodParam.name);
92
+ // when creating the method sig for fooCreateRequest, if the options type is empty
93
+ // or only contains the ResumeToken param use _ for the param name to quiet the linter
94
+ if (isParameterGroup(methodParam) && (methodParam.params.length === 0 || (methodParam.params.length === 1 && go.isResumeTokenParameter(methodParam.params[0])))) {
95
+ paramName = '_';
96
+ }
97
+ params.push(`${paramName} ${formatParameterTypeName(methodParam)}`);
98
+ }
99
+ return params.join(', ');
100
+ }
101
+ // returns the parameter names for an operation (excludes the param types).
102
+ // e.g. "i, s"
103
+ export function getCreateRequestParameters(method) {
104
+ // NOTE: keep in sync with getCreateRequestParametersSig
105
+ const methodParams = getMethodParameters(method);
106
+ const params = new Array();
107
+ params.push('ctx');
108
+ for (const methodParam of values(methodParams)) {
109
+ params.push(uncapitalize(methodParam.name));
110
+ }
111
+ return params.join(', ');
112
+ }
113
+ // returns the complete collection of method parameters
114
+ export function getMethodParameters(method, paramsFilter) {
115
+ const params = new Array();
116
+ const paramGroups = new Array();
117
+ let methodParams = method.parameters;
118
+ if (paramsFilter) {
119
+ methodParams = paramsFilter(methodParams);
120
+ }
121
+ for (const param of values(methodParams)) {
122
+ if (param.location === 'client') {
123
+ // client params are passed via the receiver
124
+ // must check before param group as client params can be grouped
125
+ continue;
126
+ }
127
+ else if (param.group) {
128
+ // param groups will be added after individual params
129
+ if (!paramGroups.includes(param.group)) {
130
+ paramGroups.push(param.group);
131
+ }
132
+ }
133
+ else if (go.isLiteralValue(param.type)) {
134
+ // don't generate a parameter for a constant
135
+ // NOTE: this check must come last as non-required optional constants
136
+ // in header/query params get dumped into the optional params group
137
+ continue;
138
+ }
139
+ else {
140
+ params.push(param);
141
+ }
142
+ }
143
+ // move global optional params to the end of the slice
144
+ params.sort(sortParametersByRequired);
145
+ // add any parameter groups. optional groups go last
146
+ paramGroups.sort((a, b) => {
147
+ if (a.required === b.required) {
148
+ return 0;
149
+ }
150
+ if (a.required && !b.required) {
151
+ return -1;
152
+ }
153
+ return 1;
154
+ });
155
+ // add the optional param group last if it's not already in the list.
156
+ if (go.isMethod(method)) {
157
+ if (!values(paramGroups).any(gp => { return gp.groupName === method.optionalParamsGroup.groupName; })) {
158
+ paramGroups.push(method.optionalParamsGroup);
159
+ }
160
+ }
161
+ const combined = new Array();
162
+ for (const param of params) {
163
+ combined.push(param);
164
+ }
165
+ for (const paramGroup of paramGroups) {
166
+ combined.push(paramGroup);
167
+ }
168
+ return combined;
169
+ }
170
+ // returns the fully-qualified parameter name. this is usually just the name
171
+ // but will include the client or optional param group name prefix as required.
172
+ export function getParamName(param) {
173
+ let paramName = param.name;
174
+ // must check paramGroup first as client params can also be grouped
175
+ if (param.group) {
176
+ paramName = `${uncapitalize(param.group.name)}.${capitalize(paramName)}`;
177
+ }
178
+ if (param.location === 'client') {
179
+ paramName = `client.${paramName}`;
180
+ }
181
+ // client parameters with default values aren't emitted as pointer-to-type
182
+ if (!go.isRequiredParameter(param) && !(param.location === 'client' && go.isClientSideDefault(param.kind)) && !(isParameter(param) && param.byValue)) {
183
+ paramName = `*${paramName}`;
184
+ }
185
+ return paramName;
186
+ }
187
+ // converts the Go code model encoding type to the type name in the standard library
188
+ export function formatBytesEncoding(enc) {
189
+ if (enc === 'URL') {
190
+ return 'RawURL';
191
+ }
192
+ return 'Std';
193
+ }
194
+ export function formatParamValue(param, imports) {
195
+ let paramName = getParamName(param);
196
+ if (go.isFormBodyCollectionParameter(param) || go.isHeaderCollectionParameter(param) || go.isPathCollectionParameter(param) || go.isQueryCollectionParameter(param)) {
197
+ if (param.collectionFormat === 'multi') {
198
+ throw new Error('multi collection format should have been previously handled');
199
+ }
200
+ const emitConvertOver = function (paramName, format) {
201
+ const encodedVar = `encoded${capitalize(paramName)}`;
202
+ let content = 'strings.Join(func() []string {\n';
203
+ content += `\t\t${encodedVar} := make([]string, len(${paramName}))\n`;
204
+ content += `\t\tfor i := 0; i < len(${paramName}); i++ {\n`;
205
+ content += `\t\t\t${encodedVar}[i] = ${format}\n\t\t}\n`;
206
+ content += `\t\treturn ${encodedVar}\n`;
207
+ content += `\t}(), "${separator}")`;
208
+ return content;
209
+ };
210
+ const separator = getDelimiterForCollectionFormat(param.collectionFormat);
211
+ if (go.isPrimitiveType(param.type.elementType) && param.type.elementType.typeName === 'string') {
212
+ imports.add('strings');
213
+ return `strings.Join(${paramName}, "${separator}")`;
214
+ }
215
+ else if (go.isBytesType(param.type.elementType)) {
216
+ imports.add('encoding/base64');
217
+ imports.add('strings');
218
+ return emitConvertOver(param.name, `base64.${formatBytesEncoding(param.type.elementType.encoding)}Encoding.EncodeToString(${param.name}[i])`);
219
+ }
220
+ else if (go.isTimeType(param.type.elementType)) {
221
+ imports.add('strings');
222
+ return emitConvertOver(param.name, `${param.type.elementType.dateTimeFormat}(${param.name}[i]).String()`);
223
+ }
224
+ else {
225
+ imports.add('fmt');
226
+ imports.add('strings');
227
+ return `strings.Join(strings.Fields(strings.Trim(fmt.Sprint(${paramName}), "[]")), "${separator}")`;
228
+ }
229
+ }
230
+ else if (go.isTimeType(param.type) && param.type.dateTimeFormat !== 'timeUnix') {
231
+ // for most time types we call methods on time.Time which is why we remove the dereference.
232
+ // however, for unix time, we cast to our unixTime helper first so we must keep the dereference.
233
+ if (!go.isRequiredParameter(param) && paramName[0] === '*') {
234
+ // remove the dereference
235
+ paramName = paramName.substring(1);
236
+ }
237
+ }
238
+ return formatValue(paramName, param.type, imports);
239
+ }
240
+ export function getDelimiterForCollectionFormat(cf) {
241
+ switch (cf) {
242
+ case 'csv':
243
+ return ',';
244
+ case 'pipes':
245
+ return '|';
246
+ case 'ssv':
247
+ return ' ';
248
+ case 'tsv':
249
+ return '\\t';
250
+ default:
251
+ throw new Error(`unhandled CollectionFormat ${cf}`);
252
+ }
253
+ }
254
+ export function formatValue(paramName, type, imports, defef) {
255
+ // callers don't have enough context to know if paramName needs to be
256
+ // deferenced so we track that here when specified. note that not all
257
+ // cases will require paramName to be dereferenced.
258
+ let star = '';
259
+ if (defef === true) {
260
+ star = '*';
261
+ }
262
+ if (go.isLiteralValue(type)) {
263
+ // cannot use formatLiteralValue() since all values are treated as strings
264
+ return `"${type.literal}"`;
265
+ }
266
+ else if (go.isBytesType(type)) {
267
+ // ByteArray is a base-64 encoded value in string format
268
+ imports.add('encoding/base64');
269
+ return `base64.${formatBytesEncoding(type.encoding)}Encoding.EncodeToString(${paramName})`;
270
+ }
271
+ else if (go.isPrimitiveType(type)) {
272
+ if (type.typeName === 'bool') {
273
+ imports.add('strconv');
274
+ return `strconv.FormatBool(${star}${paramName})`;
275
+ }
276
+ else if (type.typeName === 'int32') {
277
+ imports.add('strconv');
278
+ return `strconv.FormatInt(int64(${star}${paramName}), 10)`;
279
+ }
280
+ else if (type.typeName === 'int64') {
281
+ imports.add('strconv');
282
+ return `strconv.FormatInt(${star}${paramName}, 10)`;
283
+ }
284
+ else if (type.typeName === 'float32') {
285
+ imports.add('strconv');
286
+ return `strconv.FormatFloat(float64(${star}${paramName}), 'f', -1, 32)`;
287
+ }
288
+ else if (type.typeName === 'float64') {
289
+ imports.add('strconv');
290
+ return `strconv.FormatFloat(${star}${paramName}, 'f', -1, 64)`;
291
+ }
292
+ }
293
+ else if (go.isTimeType(type)) {
294
+ if (type.dateTimeFormat === 'dateType') {
295
+ return `${paramName}.Format("${dateFormat}")`;
296
+ }
297
+ else if (type.dateTimeFormat === 'timeUnix') {
298
+ return `timeUnix(${star}${paramName}).String()`;
299
+ }
300
+ else if (type.dateTimeFormat === 'timeRFC3339') {
301
+ return `timeRFC3339(${star}${paramName}).String()`;
302
+ }
303
+ else {
304
+ imports.add('time');
305
+ let format = datetimeRFC3339Format;
306
+ if (type.dateTimeFormat === 'dateTimeRFC1123') {
307
+ format = datetimeRFC1123Format;
308
+ }
309
+ return `${paramName}.Format(${format})`;
310
+ }
311
+ }
312
+ else if (go.isConstantType(type)) {
313
+ if (type.type === 'string') {
314
+ return `string(${star}${paramName})`;
315
+ }
316
+ imports.add('fmt');
317
+ return `fmt.Sprintf("%v", ${star}${paramName})`;
318
+ }
319
+ return `${star}${paramName}`;
320
+ }
321
+ // returns the clientDefaultValue of the specified param.
322
+ // this is usually the value in quotes (i.e. a string) however
323
+ // it could also be a constant.
324
+ export function formatLiteralValue(value, withCast) {
325
+ if (go.isConstantType(value.type)) {
326
+ return value.literal.name;
327
+ }
328
+ else if (go.isPrimitiveType(value.type)) {
329
+ // if it's a string, we want the uncasted version to include quotes
330
+ if (!withCast && value.type.typeName !== 'string') {
331
+ return `${value.literal}`;
332
+ }
333
+ switch (value.type.typeName) {
334
+ case 'float32':
335
+ return `float32(${value.literal})`;
336
+ case 'float64':
337
+ return `float64(${value.literal})`;
338
+ case 'int32':
339
+ return `int32(${value.literal})`;
340
+ case 'int64':
341
+ return `int64(${value.literal})`;
342
+ case 'string':
343
+ if (value.literal[0] === '"') {
344
+ // string is already quoted
345
+ return value.literal;
346
+ }
347
+ return `"${value.literal}"`;
348
+ default:
349
+ return value.literal;
350
+ }
351
+ }
352
+ else if (go.isTimeType(value.type)) {
353
+ return `"${value.literal}"`;
354
+ }
355
+ return value.literal;
356
+ }
357
+ // returns true if at least one of the responses has a schema
358
+ export function hasSchemaResponse(method) {
359
+ const result = method.responseEnvelope.result;
360
+ if (!result) {
361
+ return false;
362
+ }
363
+ return go.isAnyResult(result) || go.isMonomorphicResult(result) || go.isPolymorphicResult(result) || go.isModelResult(result);
364
+ }
365
+ // returns the name of the response field within the response envelope
366
+ export function getResultFieldName(method) {
367
+ const result = method.responseEnvelope.result;
368
+ if (!result) {
369
+ throw new Error(`missing result for method ${method.name}`);
370
+ }
371
+ else if (go.isAnyResult(result) || go.isBinaryResult(result) || go.isHeadAsBooleanResult(result) || go.isMonomorphicResult(result)) {
372
+ return result.fieldName;
373
+ }
374
+ else if (go.isPolymorphicResult(result)) {
375
+ return result.interfaceType.name;
376
+ }
377
+ else if (go.isModelResult(result)) {
378
+ return result.modelType.name;
379
+ }
380
+ else {
381
+ throw new Error(`unhandled result type for method ${method.client.name}.${method.name}`);
382
+ }
383
+ }
384
+ export function formatStatusCodes(statusCodes) {
385
+ const asHTTPStatus = new Array();
386
+ for (const rawCode of statusCodes) {
387
+ asHTTPStatus.push(formatStatusCode(rawCode));
388
+ }
389
+ return asHTTPStatus.join(', ');
390
+ }
391
+ export function formatStatusCode(statusCode) {
392
+ switch (statusCode) {
393
+ // 1xx
394
+ case 100:
395
+ return 'http.StatusContinue';
396
+ case 101:
397
+ return 'http.StatusSwitchingProtocols';
398
+ case 102:
399
+ return 'http.StatusProcessing';
400
+ case 103:
401
+ return 'http.StatusEarlyHints';
402
+ // 2xx
403
+ case 200:
404
+ return 'http.StatusOK';
405
+ case 201:
406
+ return 'http.StatusCreated';
407
+ case 202:
408
+ return 'http.StatusAccepted';
409
+ case 203:
410
+ return 'http.StatusNonAuthoritativeInfo';
411
+ case 204:
412
+ return 'http.StatusNoContent';
413
+ case 205:
414
+ return 'http.StatusResetContent';
415
+ case 206:
416
+ return 'http.StatusPartialContent';
417
+ case 207:
418
+ return 'http.StatusMultiStatus';
419
+ case 208:
420
+ return 'http.StatusAlreadyReported';
421
+ case 226:
422
+ return 'http.StatusIMUsed';
423
+ // 3xx
424
+ case 300:
425
+ return 'http.StatusMultipleChoices';
426
+ case 301:
427
+ return 'http.StatusMovedPermanently';
428
+ case 302:
429
+ return 'http.StatusFound';
430
+ case 303:
431
+ return 'http.StatusSeeOther';
432
+ case 304:
433
+ return 'http.StatusNotModified';
434
+ case 305:
435
+ return 'http.StatusUseProxy';
436
+ case 307:
437
+ return 'http.StatusTemporaryRedirect';
438
+ // 4xx
439
+ case 400:
440
+ return 'http.StatusBadRequest';
441
+ case 401:
442
+ return 'http.StatusUnauthorized';
443
+ case 402:
444
+ return 'http.StatusPaymentRequired';
445
+ case 403:
446
+ return 'http.StatusForbidden';
447
+ case 404:
448
+ return 'http.StatusNotFound';
449
+ case 405:
450
+ return 'http.StatusMethodNotAllowed';
451
+ case 406:
452
+ return 'http.StatusNotAcceptable';
453
+ case 407:
454
+ return 'http.StatusProxyAuthRequired';
455
+ case 408:
456
+ return 'http.StatusRequestTimeout';
457
+ case 409:
458
+ return 'http.StatusConflict';
459
+ case 410:
460
+ return 'http.StatusGone';
461
+ case 411:
462
+ return 'http.StatusLengthRequired';
463
+ case 412:
464
+ return 'http.StatusPreconditionFailed';
465
+ case 413:
466
+ return 'http.StatusRequestEntityTooLarge';
467
+ case 414:
468
+ return 'http.StatusRequestURITooLong';
469
+ case 415:
470
+ return 'http.StatusUnsupportedMediaType';
471
+ case 416:
472
+ return 'http.StatusRequestedRangeNotSatisfiable';
473
+ case 417:
474
+ return 'http.StatusExpectationFailed';
475
+ case 418:
476
+ return 'http.StatusTeapot';
477
+ case 421:
478
+ return 'http.StatusMisdirectedRequest';
479
+ case 422:
480
+ return 'http.StatusUnprocessableEntity';
481
+ case 423:
482
+ return 'http.StatusLocked';
483
+ case 424:
484
+ return 'http.StatusFailedDependency';
485
+ case 425:
486
+ return 'http.StatusTooEarly';
487
+ case 426:
488
+ return 'http.StatusUpgradeRequired';
489
+ case 428:
490
+ return 'http.StatusPreconditionRequired';
491
+ case 429:
492
+ return 'http.StatusTooManyRequests';
493
+ case 431:
494
+ return 'http.StatusRequestHeaderFieldsTooLarge';
495
+ case 451:
496
+ return 'http.StatusUnavailableForLegalReasons';
497
+ // 5xx
498
+ case 500:
499
+ return 'http.StatusInternalServerError';
500
+ case 501:
501
+ return 'http.StatusNotImplemented';
502
+ case 502:
503
+ return 'http.StatusBadGateway';
504
+ case 503:
505
+ return 'http.StatusServiceUnavailable';
506
+ case 504:
507
+ return 'http.StatusGatewayTimeout ';
508
+ case 505:
509
+ return 'http.StatusHTTPVersionNotSupported';
510
+ case 506:
511
+ return 'http.StatusVariantAlsoNegotiates';
512
+ case 507:
513
+ return 'http.StatusInsufficientStorage';
514
+ case 508:
515
+ return 'http.StatusLoopDetected';
516
+ case 510:
517
+ return 'http.StatusNotExtended';
518
+ case 511:
519
+ return 'http.StatusNetworkAuthenticationRequired';
520
+ default:
521
+ throw new Error(`unhandled status code ${statusCode}`);
522
+ }
523
+ }
524
+ export function formatCommentAsBulletItem(description) {
525
+ // first create the comment block. note that it can be multi-line depending on length:
526
+ //
527
+ // some comment first line
528
+ // and it finishes here.
529
+ description = comment(description, '//', undefined, commentLength);
530
+ // transform the above to look like this:
531
+ //
532
+ // - some comment first line
533
+ // and it finishes here.
534
+ const chunks = description.split('\n');
535
+ for (let i = 0; i < chunks.length; ++i) {
536
+ if (i === 0) {
537
+ chunks[i] = chunks[i].replace('// ', '// - ');
538
+ }
539
+ else {
540
+ chunks[i] = chunks[i].replace('// ', '// ');
541
+ }
542
+ }
543
+ return chunks.join('\n');
544
+ }
545
+ export function getParentImport(codeModel) {
546
+ const clientPkg = codeModel.packageName;
547
+ if (codeModel.options.module) {
548
+ return codeModel.options.module.name;
549
+ }
550
+ else if (codeModel.options.containingModule) {
551
+ return codeModel.options.containingModule + '/' + clientPkg;
552
+ }
553
+ else {
554
+ throw new Error('unable to determine containing module for fakes. specify either the module or containing-module switch');
555
+ }
556
+ }
557
+ export function getBitSizeForNumber(intSize) {
558
+ switch (intSize) {
559
+ case 'int8':
560
+ return '8';
561
+ case 'int16':
562
+ return '16';
563
+ case 'int32':
564
+ case 'float32':
565
+ return '32';
566
+ case 'int64':
567
+ case 'float64':
568
+ return '64';
569
+ }
570
+ }
571
+ // returns the underlying map/slice element/value type
572
+ // if item isn't a map or slice, item is returned
573
+ export function recursiveUnwrapMapSlice(item) {
574
+ if (go.isMapType(item)) {
575
+ return recursiveUnwrapMapSlice(item.valueType);
576
+ }
577
+ else if (go.isSliceType(item)) {
578
+ return recursiveUnwrapMapSlice(item.elementType);
579
+ }
580
+ return item;
581
+ }
582
+ // returns a * for optional params
583
+ export function star(param) {
584
+ return go.isRequiredParameter(param) ? '' : '*';
585
+ }
586
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../codegen.go/src/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import * as go from '../../codemodel.go/src/index.js';
2
+ export declare class ImportManager {
3
+ private imports;
4
+ constructor();
5
+ add(imp: string, alias?: string): void;
6
+ length(): number;
7
+ text(): string;
8
+ addImportForType(type: go.PossibleType): void;
9
+ private alias;
10
+ }
11
+ //# sourceMappingURL=imports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../../../codegen.go/src/imports.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAOtD,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAqB;;IAQpC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAU/B,MAAM,IAAI,MAAM;IAKhB,IAAI,IAAI,MAAM;IAgBd,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY;IAYtC,OAAO,CAAC,KAAK;CAMd"}