@azure-tools/typespec-go 0.5.1 → 0.6.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 (71) hide show
  1. package/dist/codegen.go/src/example.js +75 -75
  2. package/dist/codegen.go/src/example.js.map +1 -1
  3. package/dist/codegen.go/src/fake/factory.d.ts.map +1 -1
  4. package/dist/codegen.go/src/fake/factory.js +29 -24
  5. package/dist/codegen.go/src/fake/factory.js.map +1 -1
  6. package/dist/codegen.go/src/fake/servers.js +106 -98
  7. package/dist/codegen.go/src/fake/servers.js.map +1 -1
  8. package/dist/codegen.go/src/helpers.d.ts +57 -4
  9. package/dist/codegen.go/src/helpers.d.ts.map +1 -1
  10. package/dist/codegen.go/src/helpers.js +200 -128
  11. package/dist/codegen.go/src/helpers.js.map +1 -1
  12. package/dist/codegen.go/src/imports.d.ts +1 -1
  13. package/dist/codegen.go/src/imports.d.ts.map +1 -1
  14. package/dist/codegen.go/src/imports.js +13 -12
  15. package/dist/codegen.go/src/imports.js.map +1 -1
  16. package/dist/codegen.go/src/interfaces.js +2 -2
  17. package/dist/codegen.go/src/interfaces.js.map +1 -1
  18. package/dist/codegen.go/src/models.d.ts.map +1 -1
  19. package/dist/codegen.go/src/models.js +81 -81
  20. package/dist/codegen.go/src/models.js.map +1 -1
  21. package/dist/codegen.go/src/operations.d.ts.map +1 -1
  22. package/dist/codegen.go/src/operations.js +100 -113
  23. package/dist/codegen.go/src/operations.js.map +1 -1
  24. package/dist/codegen.go/src/options.js +2 -2
  25. package/dist/codegen.go/src/options.js.map +1 -1
  26. package/dist/codegen.go/src/polymorphics.d.ts.map +1 -1
  27. package/dist/codegen.go/src/polymorphics.js +29 -24
  28. package/dist/codegen.go/src/polymorphics.js.map +1 -1
  29. package/dist/codegen.go/src/responses.js +2 -2
  30. package/dist/codegen.go/src/responses.js.map +1 -1
  31. package/dist/codegen.go/src/time.js +13 -14
  32. package/dist/codegen.go/src/time.js.map +1 -1
  33. package/dist/codegen.go/src/xmlAdditionalProps.js +1 -2
  34. package/dist/codegen.go/src/xmlAdditionalProps.js.map +1 -1
  35. package/dist/codemodel.go/src/examples.d.ts +20 -20
  36. package/dist/codemodel.go/src/examples.d.ts.map +1 -1
  37. package/dist/codemodel.go/src/examples.js +2 -2
  38. package/dist/codemodel.go/src/examples.js.map +1 -1
  39. package/dist/codemodel.go/src/package.d.ts +4 -4
  40. package/dist/codemodel.go/src/package.d.ts.map +1 -1
  41. package/dist/codemodel.go/src/package.js +3 -3
  42. package/dist/codemodel.go/src/package.js.map +1 -1
  43. package/dist/codemodel.go/src/param.d.ts +32 -24
  44. package/dist/codemodel.go/src/param.d.ts.map +1 -1
  45. package/dist/codemodel.go/src/param.js +54 -1
  46. package/dist/codemodel.go/src/param.js.map +1 -1
  47. package/dist/codemodel.go/src/result.d.ts +12 -10
  48. package/dist/codemodel.go/src/result.d.ts.map +1 -1
  49. package/dist/codemodel.go/src/result.js +21 -4
  50. package/dist/codemodel.go/src/result.js.map +1 -1
  51. package/dist/codemodel.go/src/type.d.ts +219 -86
  52. package/dist/codemodel.go/src/type.d.ts.map +1 -1
  53. package/dist/codemodel.go/src/type.js +137 -127
  54. package/dist/codemodel.go/src/type.js.map +1 -1
  55. package/dist/typespec-go/src/emitter.d.ts.map +1 -1
  56. package/dist/typespec-go/src/emitter.js +80 -0
  57. package/dist/typespec-go/src/emitter.js.map +1 -1
  58. package/dist/typespec-go/src/lib.d.ts +1 -0
  59. package/dist/typespec-go/src/lib.d.ts.map +1 -1
  60. package/dist/typespec-go/src/lib.js +5 -0
  61. package/dist/typespec-go/src/lib.js.map +1 -1
  62. package/dist/typespec-go/src/tcgcadapter/adapter.js +5 -0
  63. package/dist/typespec-go/src/tcgcadapter/adapter.js.map +1 -1
  64. package/dist/typespec-go/src/tcgcadapter/clients.d.ts.map +1 -1
  65. package/dist/typespec-go/src/tcgcadapter/clients.js +71 -58
  66. package/dist/typespec-go/src/tcgcadapter/clients.js.map +1 -1
  67. package/dist/typespec-go/src/tcgcadapter/types.d.ts +3 -3
  68. package/dist/typespec-go/src/tcgcadapter/types.d.ts.map +1 -1
  69. package/dist/typespec-go/src/tcgcadapter/types.js +47 -46
  70. package/dist/typespec-go/src/tcgcadapter/types.js.map +1 -1
  71. package/package.json +5 -5
@@ -139,16 +139,16 @@ function generateModelDefs(modelImports, serdeImports, codeModel) {
139
139
  if (field.annotations.readOnly) {
140
140
  descriptionMods.push('READ-ONLY');
141
141
  }
142
- else if (field.annotations.required && (!go.isLiteralValue(field.type) || model.usage === go.UsageFlags.Output)) {
142
+ else if (field.annotations.required && (field.type.kind !== 'literal' || model.usage === go.UsageFlags.Output)) {
143
143
  descriptionMods.push('REQUIRED');
144
144
  }
145
- else if (go.isLiteralValue(field.type)) {
145
+ else if (field.type.kind === 'literal') {
146
146
  if (!field.annotations.required) {
147
147
  descriptionMods.push('FLAG');
148
148
  }
149
149
  descriptionMods.push('CONSTANT');
150
150
  }
151
- if (go.isLiteralValue(field.type) && model.usage !== go.UsageFlags.Output) {
151
+ if (field.type.kind === 'literal' && model.usage !== go.UsageFlags.Output) {
152
152
  // add a comment with the const value for const properties that are sent over the wire
153
153
  if (field.docs.description) {
154
154
  field.docs.description += '\n';
@@ -158,7 +158,7 @@ function generateModelDefs(modelImports, serdeImports, codeModel) {
158
158
  if (field.docs.description) {
159
159
  descriptionMods.push(field.docs.description);
160
160
  }
161
- else if (go.isSliceType(field.type) && field.type.rawJSONAsBytes) {
161
+ else if (field.type.kind === 'rawJSON') {
162
162
  // add a basic description if one isn't available
163
163
  descriptionMods.push('The contents of this field are raw JSON.');
164
164
  }
@@ -169,16 +169,16 @@ function generateModelDefs(modelImports, serdeImports, codeModel) {
169
169
  for (const field of values(modelDef.Fields)) {
170
170
  modelImports.addImportForType(field.type);
171
171
  }
172
- if (go.isModelType(model) && serDeFormat === 'XML' && !model.annotations.omitSerDeMethods) {
172
+ if (model.kind === 'model' && serDeFormat === 'XML' && !model.annotations.omitSerDeMethods) {
173
173
  serdeImports.add('encoding/xml');
174
174
  let needsDateTimeMarshalling = false;
175
175
  let byteArrayFormat = false;
176
176
  for (const field of values(model.fields)) {
177
177
  serdeImports.addImportForType(field.type);
178
- if (go.isTimeType(field.type)) {
178
+ if (field.type.kind === 'time') {
179
179
  needsDateTimeMarshalling = true;
180
180
  }
181
- else if (go.isBytesType(field.type)) {
181
+ else if (field.type.kind === 'encodedBytes') {
182
182
  byteArrayFormat = true;
183
183
  }
184
184
  }
@@ -196,7 +196,7 @@ function generateModelDefs(modelImports, serdeImports, codeModel) {
196
196
  modelDefs.push(modelDef);
197
197
  continue;
198
198
  }
199
- if (go.isPolymorphicType(model)) {
199
+ if (model.kind === 'polymorphicModel') {
200
200
  generateDiscriminatorMarkerMethod(model.interface, modelDef);
201
201
  for (let parent = model.interface.parent; parent !== undefined; parent = parent.parent) {
202
202
  generateDiscriminatorMarkerMethod(parent, modelDef);
@@ -217,7 +217,7 @@ function generateModelDefs(modelImports, serdeImports, codeModel) {
217
217
  function needsXMLDictionaryHelper(modelType) {
218
218
  for (const field of values(modelType.fields)) {
219
219
  // additional properties uses an internal wrapper type with its own serde impl
220
- if (go.isMapType(field.type) && !field.annotations.isAdditionalProperties) {
220
+ if (field.type.kind === 'map' && !field.annotations.isAdditionalProperties) {
221
221
  return true;
222
222
  }
223
223
  }
@@ -225,7 +225,7 @@ function needsXMLDictionaryHelper(modelType) {
225
225
  }
226
226
  function needsXMLArrayMarshalling(modelType) {
227
227
  for (const prop of values(modelType.fields)) {
228
- if (go.isSliceType(prop.type)) {
228
+ if (prop.type.kind === 'slice') {
229
229
  return true;
230
230
  }
231
231
  }
@@ -263,7 +263,7 @@ function generateToMultipartForm(modelDef) {
263
263
  if (!field.byValue) {
264
264
  star = '*';
265
265
  }
266
- if (go.isModelType(fieldType) && !fieldType.annotations.multipartFormData) {
266
+ if (fieldType.kind === 'model' && !fieldType.annotations.multipartFormData) {
267
267
  setField = `\tif err := populateMultipartJSON(objectMap, "${field.serializedName}", ${star}${receiver}.${field.name}); err != nil {\n\t\treturn nil, err\n\t}\n`;
268
268
  }
269
269
  else {
@@ -278,7 +278,7 @@ function generateToMultipartForm(modelDef) {
278
278
  modelDef.SerDe.methods.push({ name: 'toMultipartFormData', desc: `toMultipartFormData converts ${modelDef.Name} to multipart/form data.`, text: method });
279
279
  }
280
280
  function generateJSONMarshaller(modelType, modelDef, imports) {
281
- if (go.isModelType(modelType) && modelType.fields.length === 0) {
281
+ if (modelType.kind === 'model' && modelType.fields.length === 0) {
282
282
  // non-discriminated types without content don't need a custom marshaller.
283
283
  // there is a case in network where child is allOf base and child has no properties.
284
284
  return;
@@ -297,7 +297,7 @@ function generateJSONMarshallerBody(modelType, modelDef, receiver, imports) {
297
297
  let marshaller = '';
298
298
  let addlProps;
299
299
  for (const field of values(modelType.fields)) {
300
- if (go.isMapType(field.type) && field.annotations.isAdditionalProperties) {
300
+ if (field.type.kind === 'map' && field.annotations.isAdditionalProperties) {
301
301
  addlProps = field.type;
302
302
  continue;
303
303
  }
@@ -311,13 +311,13 @@ function generateJSONMarshallerBody(modelType, modelDef, receiver, imports) {
311
311
  marshaller += `\tobjectMap["${field.serializedName}"] = ${receiver}.${field.name}\n`;
312
312
  }
313
313
  }
314
- else if (go.isBytesType(field.type)) {
314
+ else if (field.type.kind === 'encodedBytes') {
315
315
  imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime');
316
316
  marshaller += `\tpopulateByteArray(objectMap, "${field.serializedName}", ${receiver}.${field.name}, func() any {\n`;
317
317
  marshaller += `\t\treturn runtime.EncodeByteArray(${receiver}.${field.name}, runtime.Base64${field.type.encoding}Format)\n\t})\n`;
318
318
  modelDef.SerDe.needsJSONPopulateByteArray = true;
319
319
  }
320
- else if (go.isSliceType(field.type) && go.isBytesType(field.type.elementType)) {
320
+ else if (field.type.kind === 'slice' && field.type.elementType.kind === 'encodedBytes') {
321
321
  imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime');
322
322
  marshaller += `\tpopulateByteArray(objectMap, "${field.serializedName}", ${receiver}.${field.name}, func() any {\n`;
323
323
  marshaller += `\t\tencodedValue := make([]string, len(${receiver}.${field.name}))\n`;
@@ -326,20 +326,20 @@ function generateJSONMarshallerBody(modelType, modelDef, receiver, imports) {
326
326
  marshaller += '\t\treturn encodedValue\n\t})\n';
327
327
  modelDef.SerDe.needsJSONPopulateByteArray = true;
328
328
  }
329
- else if (go.isSliceType(field.type) && go.isTimeType(field.type.elementType)) {
329
+ else if (field.type.kind === 'slice' && field.type.elementType.kind === 'time') {
330
330
  const source = `${receiver}.${field.name}`;
331
331
  let elementPtr = '*';
332
332
  if (field.type.elementTypeByValue) {
333
333
  elementPtr = '';
334
334
  }
335
- marshaller += `\taux := make([]${elementPtr}${field.type.elementType.dateTimeFormat}, len(${source}), len(${source}))\n`;
335
+ marshaller += `\taux := make([]${elementPtr}${field.type.elementType.format}, len(${source}), len(${source}))\n`;
336
336
  marshaller += `\tfor i := 0; i < len(${source}); i++ {\n`;
337
- marshaller += `\t\taux[i] = (${elementPtr}${field.type.elementType.dateTimeFormat})(${source}[i])\n`;
337
+ marshaller += `\t\taux[i] = (${elementPtr}${field.type.elementType.format})(${source}[i])\n`;
338
338
  marshaller += '\t}\n';
339
339
  marshaller += `\tpopulate(objectMap, "${field.serializedName}", aux)\n`;
340
340
  modelDef.SerDe.needsJSONPopulate = true;
341
341
  }
342
- else if (go.isLiteralValue(field.type)) {
342
+ else if (field.type.kind === 'literal') {
343
343
  const setter = `objectMap["${field.serializedName}"] = ${helpers.formatLiteralValue(field.type, true)}`;
344
344
  if (!field.annotations.required) {
345
345
  marshaller += `\tif ${receiver}.${field.name} != nil {\n\t\t${setter}\n\t}\n`;
@@ -348,7 +348,7 @@ function generateJSONMarshallerBody(modelType, modelDef, receiver, imports) {
348
348
  marshaller += `\t${setter}\n`;
349
349
  }
350
350
  }
351
- else if (go.isSliceType(field.type) && field.type.rawJSONAsBytes) {
351
+ else if (field.type.kind === 'rawJSON') {
352
352
  marshaller += `\tpopulate(objectMap, "${field.serializedName}", json.RawMessage(${receiver}.${field.name}))\n`;
353
353
  modelDef.SerDe.needsJSONPopulate = true;
354
354
  }
@@ -358,26 +358,26 @@ function generateJSONMarshallerBody(modelType, modelDef, receiver, imports) {
358
358
  marshaller += `\tif ${receiver}.${field.name} == nil {\n\t\t${receiver}.${field.name} = to.Ptr(${helpers.formatLiteralValue(field.defaultValue, true)})\n\t}\n`;
359
359
  }
360
360
  let populate = 'populate';
361
- if (go.isTimeType(field.type)) {
362
- populate += capitalize(field.type.dateTimeFormat);
361
+ if (field.type.kind === 'time') {
362
+ populate += capitalize(field.type.format);
363
363
  modelDef.SerDe.needsJSONPopulate = true;
364
364
  }
365
- else if (go.isPrimitiveType(field.type) && field.type.typeName === 'any') {
365
+ else if (field.type.kind === 'any') {
366
366
  populate += 'Any';
367
367
  modelDef.SerDe.needsJSONPopulateAny = true;
368
368
  }
369
369
  else {
370
370
  modelDef.SerDe.needsJSONPopulate = true;
371
371
  }
372
- if (go.isPrimitiveType(field.type) && (field.type.typeName.startsWith('uint') || field.type.typeName.startsWith('int')) && field.type.encodeAsString) {
372
+ if (field.type.kind === 'scalar' && (field.type.type.startsWith('uint') || field.type.type.startsWith('int')) && field.type.encodeAsString) {
373
373
  // TODO: need to handle map and slice type with underlying int as string type
374
374
  imports.add('strconv');
375
375
  imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore/to');
376
- if (field.type.typeName.startsWith('uint') && field.type.typeName !== 'uint64' || field.type.typeName.startsWith('int') && field.type.typeName !== 'int64') {
377
- 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`;
376
+ if (field.type.type.startsWith('uint') && field.type.type !== 'uint64' || field.type.type.startsWith('int') && field.type.type !== 'int64') {
377
+ marshaller += `\t${populate}(objectMap, "${field.serializedName}", to.Ptr(strconv.${field.type.type.startsWith('int') ? 'FormatInt' : 'FormatUint'}(${field.type.type.startsWith('int') ? 'int64' : 'uint64'}(*${receiver}.${field.name}), 10)))\n`;
378
378
  }
379
379
  else {
380
- marshaller += `\t${populate}(objectMap, "${field.serializedName}", to.Ptr(strconv.${field.type.typeName.startsWith('int') ? 'FormatInt' : 'FormatUint'}(*${receiver}.${field.name}, 10)))\n`;
380
+ marshaller += `\t${populate}(objectMap, "${field.serializedName}", to.Ptr(strconv.${field.type.type.startsWith('int') ? 'FormatInt' : 'FormatUint'}(*${receiver}.${field.name}, 10)))\n`;
381
381
  }
382
382
  }
383
383
  else {
@@ -389,8 +389,8 @@ function generateJSONMarshallerBody(modelType, modelDef, receiver, imports) {
389
389
  marshaller += `\tif ${receiver}.AdditionalProperties != nil {\n`;
390
390
  marshaller += `\t\tfor key, val := range ${receiver}.AdditionalProperties {\n`;
391
391
  let assignment = 'val';
392
- if (go.isTimeType(addlProps.valueType)) {
393
- assignment = `(*${addlProps.valueType.dateTimeFormat})(val)`;
392
+ if (addlProps.valueType.kind === 'time') {
393
+ assignment = `(*${addlProps.valueType.format})(val)`;
394
394
  }
395
395
  marshaller += `\t\t\tobjectMap[key] = ${assignment}\n`;
396
396
  marshaller += '\t\t}\n';
@@ -429,9 +429,9 @@ function generateJSONUnmarshallerBody(modelType, modelDef, receiver, imports, op
429
429
  addlPropsText += `${tab}\t\tif val != nil {\n`;
430
430
  let auxType = go.getTypeDeclaration(addlProps.valueType);
431
431
  let assignment = `${ref}aux`;
432
- if (go.isTimeType(addlProps.valueType)) {
432
+ if (addlProps.valueType.kind === 'time') {
433
433
  imports.add('time');
434
- auxType = addlProps.valueType.dateTimeFormat;
434
+ auxType = addlProps.valueType.format;
435
435
  assignment = `(*time.Time)(${assignment})`;
436
436
  }
437
437
  addlPropsText += `${tab}\t\t\tvar aux ${auxType}\n`;
@@ -447,7 +447,7 @@ function generateJSONUnmarshallerBody(modelType, modelDef, receiver, imports, op
447
447
  unmarshalBody += '\t\tswitch key {\n';
448
448
  let addlProps;
449
449
  for (const field of values(modelType.fields)) {
450
- if (go.isMapType(field.type) && field.annotations.isAdditionalProperties) {
450
+ if (field.type.kind === 'map' && field.annotations.isAdditionalProperties) {
451
451
  addlProps = field.type;
452
452
  continue;
453
453
  }
@@ -455,29 +455,29 @@ function generateJSONUnmarshallerBody(modelType, modelDef, receiver, imports, op
455
455
  if (hasDiscriminatorInterface(field.type)) {
456
456
  unmarshalBody += generateDiscriminatorUnmarshaller(field, receiver);
457
457
  }
458
- else if (go.isTimeType(field.type)) {
459
- unmarshalBody += `\t\t\t\terr = unpopulate${capitalize(field.type.dateTimeFormat)}(val, "${field.name}", &${receiver}.${field.name})\n`;
458
+ else if (field.type.kind === 'time') {
459
+ unmarshalBody += `\t\t\t\terr = unpopulate${capitalize(field.type.format)}(val, "${field.name}", &${receiver}.${field.name})\n`;
460
460
  modelDef.SerDe.needsJSONUnpopulate = true;
461
461
  }
462
- else if (go.isSliceType(field.type) && go.isTimeType(field.type.elementType)) {
462
+ else if (field.type.kind === 'slice' && field.type.elementType.kind === 'time') {
463
463
  imports.add('time');
464
464
  let elementPtr = '*';
465
465
  if (field.type.elementTypeByValue) {
466
466
  elementPtr = '';
467
467
  }
468
- unmarshalBody += `\t\t\tvar aux []${elementPtr}${field.type.elementType.dateTimeFormat}\n`;
468
+ unmarshalBody += `\t\t\tvar aux []${elementPtr}${field.type.elementType.format}\n`;
469
469
  unmarshalBody += `\t\t\terr = unpopulate(val, "${field.name}", &aux)\n`;
470
470
  unmarshalBody += '\t\t\tfor _, au := range aux {\n';
471
471
  unmarshalBody += `\t\t\t\t${receiver}.${field.name} = append(${receiver}.${field.name}, (${elementPtr}time.Time)(au))\n`;
472
472
  unmarshalBody += '\t\t\t}\n';
473
473
  modelDef.SerDe.needsJSONUnpopulate = true;
474
474
  }
475
- else if (go.isBytesType(field.type)) {
475
+ else if (field.type.kind === 'encodedBytes') {
476
476
  imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime');
477
477
  unmarshalBody += '\t\tif val != nil && string(val) != "null" {\n';
478
478
  unmarshalBody += `\t\t\t\terr = runtime.DecodeByteArray(string(val), &${receiver}.${field.name}, runtime.Base64${field.type.encoding}Format)\n\t\t}\n`;
479
479
  }
480
- else if (go.isSliceType(field.type) && go.isBytesType(field.type.elementType)) {
480
+ else if (field.type.kind === 'slice' && field.type.elementType.kind === 'encodedBytes') {
481
481
  imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime');
482
482
  unmarshalBody += '\t\t\tvar encodedValue []string\n';
483
483
  unmarshalBody += `\t\t\terr = unpopulate(val, "${field.name}", &encodedValue)\n`;
@@ -488,21 +488,21 @@ function generateJSONUnmarshallerBody(modelType, modelDef, receiver, imports, op
488
488
  unmarshalBody += '\t\t\t\t}\n\t\t\t}\n';
489
489
  modelDef.SerDe.needsJSONUnpopulate = true;
490
490
  }
491
- else if (go.isSliceType(field.type) && field.type.rawJSONAsBytes) {
491
+ else if (field.type.kind === 'rawJSON') {
492
492
  unmarshalBody += '\t\t\tif string(val) != "null" {\n';
493
493
  unmarshalBody += `\t\t\t\t${receiver}.${field.name} = val\n\t\t\t}\n`;
494
494
  }
495
- else if (go.isPrimitiveType(field.type) && (field.type.typeName.startsWith('uint') || field.type.typeName.startsWith('int')) && field.type.encodeAsString) {
495
+ else if (field.type.kind === 'scalar' && (field.type.type.startsWith('uint') || field.type.type.startsWith('int')) && field.type.encodeAsString) {
496
496
  // TODO: need to handle map and slice type with underlying int as string type
497
497
  imports.add('strconv');
498
498
  unmarshalBody += `\t\t\t\tvar aux string\n`;
499
499
  unmarshalBody += `\t\t\t\terr = unpopulate(val, "${field.name}", &aux)\n`;
500
500
  unmarshalBody += `\t\t\t\tif err == nil {\n`;
501
- unmarshalBody += `\t\t\t\t\tvar v ${field.type.typeName.startsWith('int') ? 'int64' : 'uint64'}\n`;
502
- unmarshalBody += `\t\t\t\t\tv, err = strconv.${field.type.typeName.startsWith('int') ? 'ParseInt' : 'ParseUint'}(aux, 10, 0)\n`;
501
+ unmarshalBody += `\t\t\t\t\tvar v ${field.type.type.startsWith('int') ? 'int64' : 'uint64'}\n`;
502
+ unmarshalBody += `\t\t\t\t\tv, err = strconv.${field.type.type.startsWith('int') ? 'ParseInt' : 'ParseUint'}(aux, 10, 0)\n`;
503
503
  unmarshalBody += `\t\t\t\t\tif err == nil {\n`;
504
- if (field.type.typeName.startsWith('uint') && field.type.typeName !== 'uint64' || field.type.typeName.startsWith('int') && field.type.typeName !== 'int64') {
505
- unmarshalBody += `\t\t\t\t\t\t${receiver}.${field.name} = to.Ptr(${field.type.typeName}(v))\n`;
504
+ if (field.type.type.startsWith('uint') && field.type.type !== 'uint64' || field.type.type.startsWith('int') && field.type.type !== 'int64') {
505
+ unmarshalBody += `\t\t\t\t\t\t${receiver}.${field.name} = to.Ptr(${field.type.type}(v))\n`;
506
506
  }
507
507
  else {
508
508
  unmarshalBody += `\t\t\t\t\t\t${receiver}.${field.name} = to.Ptr(v)\n`;
@@ -536,29 +536,29 @@ function generateJSONUnmarshallerBody(modelType, modelDef, receiver, imports, op
536
536
  // returns true if item has a discriminator interface.
537
537
  // recursively called for arrays and dictionaries.
538
538
  function hasDiscriminatorInterface(item) {
539
- if (go.isInterfaceType(item)) {
540
- return true;
541
- }
542
- else if (go.isMapType(item)) {
543
- return hasDiscriminatorInterface(item.valueType);
544
- }
545
- else if (go.isSliceType(item)) {
546
- return hasDiscriminatorInterface(item.elementType);
539
+ switch (item.kind) {
540
+ case 'interface':
541
+ return true;
542
+ case 'map':
543
+ return hasDiscriminatorInterface(item.valueType);
544
+ case 'slice':
545
+ return hasDiscriminatorInterface(item.elementType);
546
+ default:
547
+ return false;
547
548
  }
548
- return false;
549
549
  }
550
550
  // returns the text for unmarshalling a discriminated type
551
551
  function generateDiscriminatorUnmarshaller(field, receiver) {
552
552
  const startingIndentation = '\t\t\t';
553
553
  const propertyName = field.name;
554
554
  // these are the simple, non-nested cases (e.g. IterfaceType, []InterfaceType, map[string]InterfaceType)
555
- if (go.isInterfaceType(field.type)) {
555
+ if (field.type.kind === 'interface') {
556
556
  return `${startingIndentation}${receiver}.${propertyName}, err = unmarshal${field.type.name}(val)\n`;
557
557
  }
558
- else if (go.isSliceType(field.type) && go.isInterfaceType(field.type.elementType)) {
558
+ else if (field.type.kind === 'slice' && field.type.elementType.kind === 'interface') {
559
559
  return `${startingIndentation}${receiver}.${propertyName}, err = unmarshal${field.type.elementType.name}Array(val)\n`;
560
560
  }
561
- else if (go.isMapType(field.type) && go.isInterfaceType(field.type.valueType)) {
561
+ else if (field.type.kind === 'map' && field.type.valueType.kind === 'interface') {
562
562
  return `${startingIndentation}${receiver}.${propertyName}, err = unmarshal${field.type.valueType.name}Map(val)\n`;
563
563
  }
564
564
  // nested case (e.g. [][]InterfaceType, map[string]map[string]InterfaceType etc)
@@ -570,7 +570,7 @@ function generateDiscriminatorUnmarshaller(field, receiver) {
570
570
  // create a local instantiation of the final type
571
571
  const finalTargetVar = field.serializedName;
572
572
  let finalTargetCtor = recursiveGetDiscriminatorTypeName(field.type, false);
573
- if (go.isSliceType(field.type)) {
573
+ if (field.type.kind === 'slice') {
574
574
  finalTargetCtor = `make(${finalTargetCtor}, len(${rawTargetVar}))`;
575
575
  }
576
576
  else {
@@ -589,13 +589,13 @@ function generateDiscriminatorUnmarshaller(field, receiver) {
589
589
  // !raw e.g. map[string]map[string]InterfaceType, [][]InterfaceType etc
590
590
  function recursiveGetDiscriminatorTypeName(item, raw) {
591
591
  // when raw is true, stop recursing at the level before the leaf schema
592
- if (go.isSliceType(item)) {
593
- if (!raw || !go.isInterfaceType(item.elementType)) {
592
+ if (item.kind === 'slice') {
593
+ if (!raw || item.elementType.kind !== 'interface') {
594
594
  return `[]${recursiveGetDiscriminatorTypeName(item.elementType, raw)}`;
595
595
  }
596
596
  }
597
- else if (go.isMapType(item)) {
598
- if (!raw || !go.isInterfaceType(item.valueType)) {
597
+ else if (item.kind === 'map') {
598
+ if (!raw || item.valueType.kind !== 'interface') {
599
599
  return `map[string]${recursiveGetDiscriminatorTypeName(item.valueType, raw)}`;
600
600
  }
601
601
  }
@@ -609,8 +609,8 @@ function recursivePopulateDiscriminator(item, receiver, rawSrc, dest, indent, ne
609
609
  let text = '';
610
610
  let interfaceName = '';
611
611
  let targetType = '';
612
- if (go.isSliceType(item)) {
613
- if (!go.isInterfaceType(item.elementType)) {
612
+ if (item.kind === 'slice') {
613
+ if (item.elementType.kind !== 'interface') {
614
614
  if (nesting > 1) {
615
615
  // at nestling level 1, the destination var was already created in generateDiscriminatorUnmarshaller()
616
616
  text += `${indent}${dest} = make(${recursiveGetDiscriminatorTypeName(item, false)}, len(${rawSrc}))\n`;
@@ -626,8 +626,8 @@ function recursivePopulateDiscriminator(item, receiver, rawSrc, dest, indent, ne
626
626
  interfaceName = go.getTypeDeclaration(item.elementType);
627
627
  targetType = 'Array';
628
628
  }
629
- else if (go.isMapType(item)) {
630
- if (!go.isInterfaceType(item.valueType)) {
629
+ else if (item.kind === 'map') {
630
+ if (item.valueType.kind !== 'interface') {
631
631
  if (nesting > 1) {
632
632
  // at nestling level 1, the destination var was already created in generateDiscriminatorUnmarshaller()
633
633
  text += `${indent}${dest} = ${recursiveGetDiscriminatorTypeName(item, false)}{}\n`;
@@ -657,15 +657,15 @@ function generateXMLMarshaller(modelType, modelDef, imports) {
657
657
  }
658
658
  text += generateAliasType(modelType, receiver, true);
659
659
  for (const field of values(modelDef.Fields)) {
660
- if (go.isSliceType(field.type)) {
660
+ if (field.type.kind === 'slice') {
661
661
  text += `\tif ${receiver}.${field.name} != nil {\n`;
662
662
  text += `\t\taux.${field.name} = &${receiver}.${field.name}\n`;
663
663
  text += '\t}\n';
664
664
  }
665
- else if (field.annotations.isAdditionalProperties || go.isMapType(field.type)) {
665
+ else if (field.annotations.isAdditionalProperties || field.type.kind === 'map') {
666
666
  text += `\taux.${field.name} = (additionalProperties)(${receiver}.${field.name})\n`;
667
667
  }
668
- else if (go.isBytesType(field.type)) {
668
+ else if (field.type.kind === 'encodedBytes') {
669
669
  imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime');
670
670
  text += `\tif ${receiver}.${field.name} != nil {\n`;
671
671
  text += `\t\tencoded${field.name} := runtime.EncodeByteArray(${receiver}.${field.name}, runtime.Base64${field.type.encoding}Format)\n`;
@@ -687,14 +687,14 @@ function generateXMLUnmarshaller(modelType, modelDef, imports) {
687
687
  text += '\t\treturn err\n';
688
688
  text += '\t}\n';
689
689
  for (const field of values(modelDef.Fields)) {
690
- if (go.isTimeType(field.type)) {
690
+ if (field.type.kind === 'time') {
691
691
  text += `\tif aux.${field.name} != nil && !(*time.Time)(aux.${field.name}).IsZero() {\n`;
692
692
  text += `\t\t${receiver}.${field.name} = (*time.Time)(aux.${field.name})\n\t}\n`;
693
693
  }
694
- else if (field.annotations.isAdditionalProperties || go.isMapType(field.type)) {
694
+ else if (field.annotations.isAdditionalProperties || field.type.kind === 'map') {
695
695
  text += `\t${receiver}.${field.name} = (map[string]*string)(aux.${field.name})\n`;
696
696
  }
697
- else if (go.isBytesType(field.type)) {
697
+ else if (field.type.kind === 'encodedBytes') {
698
698
  imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime');
699
699
  text += `\tif aux.${field.name} != nil {\n`;
700
700
  text += `\t\tif err := runtime.DecodeByteArray(*aux.${field.name}, &${receiver}.${field.name}, runtime.Base64${field.type.encoding}Format); err != nil {\n`;
@@ -714,16 +714,16 @@ function generateAliasType(modelType, receiver, forMarshal) {
714
714
  text += '\t\t*alias\n';
715
715
  for (const field of values(modelType.fields)) {
716
716
  const sn = getXMLSerialization(field, false);
717
- if (go.isTimeType(field.type)) {
718
- text += `\t\t${field.name} *${field.type.dateTimeFormat} \`xml:"${sn}"\`\n`;
717
+ if (field.type.kind === 'time') {
718
+ text += `\t\t${field.name} *${field.type.format} \`xml:"${sn}"\`\n`;
719
719
  }
720
- else if (field.annotations.isAdditionalProperties || go.isMapType(field.type)) {
720
+ else if (field.annotations.isAdditionalProperties || field.type.kind === 'map') {
721
721
  text += `\t\t${field.name} additionalProperties \`xml:"${sn}"\`\n`;
722
722
  }
723
- else if (go.isSliceType(field.type)) {
723
+ else if (field.type.kind === 'slice') {
724
724
  text += `\t\t${field.name} *${go.getTypeDeclaration(field.type)} \`xml:"${sn}"\`\n`;
725
725
  }
726
- else if (go.isBytesType(field.type)) {
726
+ else if (field.type.kind === 'encodedBytes') {
727
727
  text += `\t\t${field.name} *string \`xml:"${sn}"\`\n`;
728
728
  }
729
729
  }
@@ -736,10 +736,10 @@ function generateAliasType(modelType, receiver, forMarshal) {
736
736
  if (forMarshal) {
737
737
  // emit code to initialize time fields
738
738
  for (const field of modelType.fields) {
739
- if (!go.isTimeType(field.type)) {
739
+ if (field.type.kind !== 'time') {
740
740
  continue;
741
741
  }
742
- text += `\t\t${field.name}: (*${field.type.dateTimeFormat})(${receiver}.${field.name}),\n`;
742
+ text += `\t\t${field.name}: (*${field.type.format})(${receiver}.${field.name}),\n`;
743
743
  }
744
744
  }
745
745
  text += '\t}\n';
@@ -804,9 +804,9 @@ class ModelDef {
804
804
  text += helpers.formatDocComment(field.docs);
805
805
  }
806
806
  let typeName = go.getTypeDeclaration(field.type);
807
- if (go.isLiteralValue(field.type)) {
807
+ if (field.type.kind === 'literal') {
808
808
  // for constants we use the underlying type name
809
- typeName = go.getLiteralValueTypeName(field.type.type);
809
+ typeName = go.getLiteralTypeDeclaration(field.type.type);
810
810
  }
811
811
  let serialization = field.serializedName;
812
812
  if (this.Format === 'JSON') {
@@ -847,7 +847,7 @@ export function getXMLSerialization(field, isResponseEnvelope) {
847
847
  // value comes from an xml attribute
848
848
  serialization += ',attr';
849
849
  }
850
- else if (go.isSliceType(field.type)) {
850
+ else if (field.type.kind === 'slice') {
851
851
  // start with the serialized name of the element, preferring xml name if available
852
852
  let inner = go.getTypeDeclaration(field.type.elementType);
853
853
  if (field.xml?.name) {
@@ -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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"}