@azure-tools/typespec-go 0.17.4 → 0.17.5-dev.5

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 (56) hide show
  1. package/dist/src/codegen/core/example.js +11 -11
  2. package/dist/src/codegen/core/example.js.map +1 -1
  3. package/dist/src/codegen/core/helpers.d.ts +3 -8
  4. package/dist/src/codegen/core/helpers.d.ts.map +1 -1
  5. package/dist/src/codegen/core/helpers.js +28 -44
  6. package/dist/src/codegen/core/helpers.js.map +1 -1
  7. package/dist/src/codegen/core/imports.d.ts.map +1 -1
  8. package/dist/src/codegen/core/imports.js +3 -0
  9. package/dist/src/codegen/core/imports.js.map +1 -1
  10. package/dist/src/codegen/core/models.js +98 -96
  11. package/dist/src/codegen/core/models.js.map +1 -1
  12. package/dist/src/codegen/core/operations.js +4 -4
  13. package/dist/src/codegen/core/operations.js.map +1 -1
  14. package/dist/src/codegen/core/options.js +1 -5
  15. package/dist/src/codegen/core/options.js.map +1 -1
  16. package/dist/src/codegen/core/request-handler.d.ts.map +1 -1
  17. package/dist/src/codegen/core/request-handler.js +19 -15
  18. package/dist/src/codegen/core/request-handler.js.map +1 -1
  19. package/dist/src/codegen/core/response-handler.js +12 -10
  20. package/dist/src/codegen/core/response-handler.js.map +1 -1
  21. package/dist/src/codegen/core/responses.js +2 -10
  22. package/dist/src/codegen/core/responses.js.map +1 -1
  23. package/dist/src/codegen/core/unions.js +21 -16
  24. package/dist/src/codegen/core/unions.js.map +1 -1
  25. package/dist/src/codegen/fake/servers.js +81 -68
  26. package/dist/src/codegen/fake/servers.js.map +1 -1
  27. package/dist/src/codemodel/client.js +1 -1
  28. package/dist/src/codemodel/client.js.map +1 -1
  29. package/dist/src/codemodel/method.d.ts +1 -3
  30. package/dist/src/codemodel/method.d.ts.map +1 -1
  31. package/dist/src/codemodel/method.js +1 -2
  32. package/dist/src/codemodel/method.js.map +1 -1
  33. package/dist/src/codemodel/param.d.ts +40 -26
  34. package/dist/src/codemodel/param.d.ts.map +1 -1
  35. package/dist/src/codemodel/param.js +33 -33
  36. package/dist/src/codemodel/param.js.map +1 -1
  37. package/dist/src/codemodel/result.d.ts +11 -9
  38. package/dist/src/codemodel/result.d.ts.map +1 -1
  39. package/dist/src/codemodel/result.js +2 -4
  40. package/dist/src/codemodel/result.js.map +1 -1
  41. package/dist/src/codemodel/type.d.ts +62 -27
  42. package/dist/src/codemodel/type.d.ts.map +1 -1
  43. package/dist/src/codemodel/type.js +53 -21
  44. package/dist/src/codemodel/type.js.map +1 -1
  45. package/dist/src/tcgcadapter/clients.d.ts.map +1 -1
  46. package/dist/src/tcgcadapter/clients.js +41 -44
  47. package/dist/src/tcgcadapter/clients.js.map +1 -1
  48. package/dist/src/tcgcadapter/helpers.d.ts +2 -8
  49. package/dist/src/tcgcadapter/helpers.d.ts.map +1 -1
  50. package/dist/src/tcgcadapter/helpers.js +20 -18
  51. package/dist/src/tcgcadapter/helpers.js.map +1 -1
  52. package/dist/src/tcgcadapter/types.d.ts +5 -3
  53. package/dist/src/tcgcadapter/types.d.ts.map +1 -1
  54. package/dist/src/tcgcadapter/types.js +73 -27
  55. package/dist/src/tcgcadapter/types.js.map +1 -1
  56. package/package.json +23 -23
@@ -51,9 +51,19 @@ export function getLiteralTypeDeclaration(literal) {
51
51
  *
52
52
  * @param type the type for which to emit the declaration
53
53
  * @param scope the scope in which the type declaration is emitted
54
+ * @param instance emit the type declaration used for defining an instance instead of a type.
55
+ * only useful for Ptr types so "&" is emitted instead of "*". the default is false.
54
56
  * @returns the Go type declaration
55
57
  */
56
- export function getTypeDeclaration(type, scope) {
58
+ export function getTypeDeclaration(type, scope, instance = false) {
59
+ // client/method options are always emitted as pointer-to-type thus aren't wrapped in a go.Ptr
60
+ const byRef = type.kind === "armClientOptions" ||
61
+ type.kind === "clientOptions" ||
62
+ (type.kind === "paramGroup" && !type.required)
63
+ ? instance
64
+ ? "&"
65
+ : "*"
66
+ : "";
57
67
  switch (type.kind) {
58
68
  case "any":
59
69
  case "string":
@@ -83,9 +93,9 @@ export function getTypeDeclaration(type, scope) {
83
93
  if (pkg !== scope) {
84
94
  // type is being referenced from a different package
85
95
  // then where it's defined, so add its package prefix
86
- return `${getPackageName(pkg)}.${typeName}`;
96
+ return `${byRef}${getPackageName(pkg)}.${typeName}`;
87
97
  }
88
- return typeName;
98
+ return `${byRef}${typeName}`;
89
99
  }
90
100
  case "constantDef":
91
101
  return type.literal.type.kind;
@@ -95,12 +105,14 @@ export function getTypeDeclaration(type, scope) {
95
105
  case "literal":
96
106
  return getTypeDeclaration(type.type, scope);
97
107
  case "map":
98
- return (`map[string]${type.valueTypeByValue ? "" : "*"}` + getTypeDeclaration(type.valueType, scope));
108
+ return `map[string]${getTypeDeclaration(type.valueType, scope)}`;
109
+ case "ptr":
110
+ return `${instance ? "&" : "*"}${getTypeDeclaration(type.ptrType, scope)}`;
99
111
  case "scalar":
100
112
  return type.type;
101
113
  case "slice":
102
114
  case "sliceArray":
103
- return (`[]${type.elementTypeByValue ? "" : "*"}` + getTypeDeclaration(type.elementType, scope));
115
+ return `[]${getTypeDeclaration(type.elementType, scope)}`;
104
116
  case "time":
105
117
  return "time.Time";
106
118
  case "armClientOptions":
@@ -110,7 +122,7 @@ export function getTypeDeclaration(type, scope) {
110
122
  case "readSeekCloser":
111
123
  case "tokenCredential":
112
124
  // strip module to just the leaf package as required
113
- return `${path.basename(type.module)}.${type.name}`;
125
+ return `${byRef}${path.basename(type.module)}.${type.name}`;
114
126
  }
115
127
  }
116
128
  /** narrows the field to the model's JSON additional properties bucket, whose type is always a map */
@@ -142,7 +154,16 @@ export function isMap(type, ...kinds) {
142
154
  if (type.kind !== "map") {
143
155
  return false;
144
156
  }
145
- return kinds.length === 0 || kinds.includes(type.valueType.kind);
157
+ return (kinds.length === 0 ||
158
+ kinds.includes(type.valueType.kind) ||
159
+ kinds.includes(unwrapPtr(type.valueType).kind));
160
+ }
161
+ /** narrows type to a ptr with one of the specified underlying types (any ptr when no types are given) */
162
+ export function isPtr(type, ...kinds) {
163
+ if (type.kind !== "ptr") {
164
+ return false;
165
+ }
166
+ return kinds.length === 0 || kinds.includes(type.ptrType.kind);
146
167
  }
147
168
  /** narrows type to a scalar with one of the specified underlying types (any scalar when no types are given) */
148
169
  export function isScalar(type, ...kinds) {
@@ -156,9 +177,11 @@ export function isSlice(type, ...kinds) {
156
177
  if (type.kind !== "slice") {
157
178
  return false;
158
179
  }
159
- return kinds.length === 0 || kinds.includes(type.elementType.kind);
180
+ return (kinds.length === 0 ||
181
+ kinds.includes(type.elementType.kind) ||
182
+ kinds.includes(unwrapPtr(type.elementType).kind));
160
183
  }
161
- /** narrows type to a UnionVariantType within the conditional block */
184
+ /** narrows type to a union variant wire type (prior to pointer-wrapping) within the conditional block */
162
185
  export function isUnionVariantType(type) {
163
186
  switch (type.kind) {
164
187
  case "constant":
@@ -173,14 +196,20 @@ export function isUnionVariantType(type) {
173
196
  return false;
174
197
  }
175
198
  }
199
+ /** unwraps type from a Ptr type, else returns type */
200
+ export function unwrapPtr(type) {
201
+ if (type.kind === "ptr") {
202
+ return type.ptrType;
203
+ }
204
+ return type;
205
+ }
176
206
  ///////////////////////////////////////////////////////////////////////////////////////////////////
177
207
  // exported base types
178
208
  ///////////////////////////////////////////////////////////////////////////////////////////////////
179
209
  export class StructField {
180
- constructor(name, type, byValue) {
210
+ constructor(name, type) {
181
211
  this.name = name;
182
212
  this.type = type;
183
- this.byValue = byValue;
184
213
  this.docs = {};
185
214
  }
186
215
  }
@@ -279,10 +308,9 @@ export class Literal {
279
308
  }
280
309
  }
281
310
  export class Map {
282
- constructor(valueType, valueTypeByValue) {
311
+ constructor(valueType) {
283
312
  this.kind = "map";
284
313
  this.valueType = valueType;
285
- this.valueTypeByValue = valueTypeByValue;
286
314
  }
287
315
  }
288
316
  export class ModelAnnotations {
@@ -292,8 +320,8 @@ export class ModelAnnotations {
292
320
  }
293
321
  }
294
322
  export class ModelField extends StructField {
295
- constructor(name, type, byValue, serializedName, annotations) {
296
- super(name, type, byValue);
323
+ constructor(name, type, serializedName, annotations) {
324
+ super(name, type);
297
325
  this.serializedName = serializedName;
298
326
  this.annotations = annotations;
299
327
  }
@@ -328,6 +356,12 @@ export class PolymorphicModel extends ModelBase {
328
356
  this.interface = iface;
329
357
  }
330
358
  }
359
+ export class Ptr {
360
+ constructor(ptrType) {
361
+ this.kind = "ptr";
362
+ this.ptrType = ptrType;
363
+ }
364
+ }
331
365
  export class RawJSON {
332
366
  constructor() {
333
367
  this.kind = "rawJSON";
@@ -353,17 +387,15 @@ export class Scalar {
353
387
  }
354
388
  }
355
389
  export class Slice {
356
- constructor(elementType, elementTypeByValue) {
390
+ constructor(elementType) {
357
391
  this.kind = "slice";
358
392
  this.elementType = elementType;
359
- this.elementTypeByValue = elementTypeByValue;
360
393
  }
361
394
  }
362
395
  export class SliceArray {
363
- constructor(elementType, elementTypeByValue, delimiter) {
396
+ constructor(elementType, delimiter) {
364
397
  this.kind = "sliceArray";
365
398
  this.elementType = elementType;
366
- this.elementTypeByValue = elementTypeByValue;
367
399
  this.delimiter = delimiter;
368
400
  }
369
401
  }
@@ -379,8 +411,8 @@ export class Struct extends StructBase {
379
411
  }
380
412
  }
381
413
  export class UnionField extends StructField {
382
- constructor(name, type, byValue) {
383
- super(name, type, byValue);
414
+ constructor(name, type) {
415
+ super(name, type);
384
416
  }
385
417
  }
386
418
  export class UnionStruct extends StructBase {
@@ -1 +1 @@
1
- {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../src/codemodel/type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../src/codemodel/type.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../../src/tcgcadapter/clients.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAc;IAKjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAI/D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiC;gBAErD,EAAE,EAAE,WAAW;IAM3B;;;OAGG;IACH,YAAY;IAyBZ,OAAO,CAAC,oBAAoB;IAiV5B;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IAiCjC;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAkC3B;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAqCrB,OAAO,CAAC,WAAW;IAmJnB;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAmH3B;;;;;;OAMG;IACH,OAAO,CAAC,oCAAoC;IAqC5C,OAAO,CAAC,cAAc;IAqGtB,OAAO,CAAC,qBAAqB;IAgY7B,OAAO,CAAC,gBAAgB;IAcxB;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IA6S5B;;;;;OAKG;IACH,OAAO,CAAC,2BAA2B;IAoDnC,OAAO,CAAC,0BAA0B;IAiBlC,OAAO,CAAC,qBAAqB;IA0T7B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,iBAAiB;IAwDzB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,qBAAqB;IAmB7B,OAAO,CAAC,4BAA4B;IAYpC,OAAO,CAAC,6BAA6B;IAYrC,OAAO,CAAC,mBAAmB;IAsC3B,OAAO,CAAC,0BAA0B;IA2JlC,OAAO,CAAC,gBAAgB;CA0HzB"}
1
+ {"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../../src/tcgcadapter/clients.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAc;IAKjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAI/D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiC;gBAErD,EAAE,EAAE,WAAW;IAM3B;;;OAGG;IACH,YAAY;IAyBZ,OAAO,CAAC,oBAAoB;IAiV5B;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IAiCjC;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAiCrB,OAAO,CAAC,WAAW;IAmJnB;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAmH3B;;;;;;OAMG;IACH,OAAO,CAAC,oCAAoC;IAqC5C,OAAO,CAAC,cAAc;IAqGtB,OAAO,CAAC,qBAAqB;IA+X7B,OAAO,CAAC,gBAAgB;IAcxB;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAqS5B;;;;;OAKG;IACH,OAAO,CAAC,2BAA2B;IAuDnC,OAAO,CAAC,0BAA0B;IAiBlC,OAAO,CAAC,qBAAqB;IA0T7B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,iBAAiB;IAwDzB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,qBAAqB;IAmB7B,OAAO,CAAC,4BAA4B;IAYpC,OAAO,CAAC,6BAA6B;IAYrC,OAAO,CAAC,mBAAmB;IAsC3B,OAAO,CAAC,0BAA0B;IA2JlC,OAAO,CAAC,gBAAgB;CA2HzB"}
@@ -379,7 +379,7 @@ export class ClientAdapter {
379
379
  if (existsOnParent) {
380
380
  continue;
381
381
  }
382
- const adaptedParam = new go.Parameter(getEscapedReservedName(helpers.getEffectiveName(param, true), "Param"), this.ta.getWireType(param.type, true, true), true);
382
+ const adaptedParam = new go.Parameter(getEscapedReservedName(helpers.getEffectiveName(param, true), "Param"), this.ta.getWireType(param.type, true, true));
383
383
  adaptedParam.docs.summary = param.summary;
384
384
  adaptedParam.docs.description = param.doc;
385
385
  clientAccessor.parameters.push(adaptedParam);
@@ -394,19 +394,15 @@ export class ClientAdapter {
394
394
  * @returns the adapted URI parameter
395
395
  */
396
396
  adaptURIParam(sdkParam, forceRequired) {
397
- let paramType;
398
- if (sdkParam.isApiVersionParam) {
399
- paramType = this.ta.getStringType();
400
- }
401
- else {
402
- paramType = this.ta.getWireType(sdkParam.type, true, false);
403
- }
397
+ const paramType = sdkParam.isApiVersionParam
398
+ ? this.ta.getStringType()
399
+ : this.ta.getWireType(sdkParam.type, true, false);
404
400
  if (go.isURIParameterType(paramType)) {
405
401
  const style = forceRequired ? "required" : this.adaptParameterStyle(sdkParam);
406
402
  if (this.ta.codeModel.type === "azure-arm" && !go.isRequiredParameter(style)) {
407
403
  throw new AdapterError("UnsupportedTsp", "optional client parameters for ARM is not supported", sdkParam.__raw?.node);
408
404
  }
409
- const uriParam = new go.URIParameter(sdkParam.name, sdkParam.serializedName, paramType, style, helpers.isTypePassedByValue(sdkParam.type) || !sdkParam.optional, "client");
405
+ const uriParam = new go.URIParameter(sdkParam.name, sdkParam.serializedName, sdkParam.optional ? this.ta.getPtrType(paramType) : paramType, style, "client");
410
406
  uriParam.docs.summary = sdkParam.summary;
411
407
  uriParam.docs.description = sdkParam.doc;
412
408
  uriParam.isApiVersion = sdkParam.isApiVersionParam;
@@ -749,9 +745,7 @@ export class ClientAdapter {
749
745
  const paramStyle = this.adaptParameterStyle(param);
750
746
  const paramName = getEscapedReservedName(helpers.getEffectiveName(param, paramStyle === "required"), "Param");
751
747
  // if the param is required then it's always passed by value
752
- const byVal = go.isRequiredParameter(paramStyle)
753
- ? true
754
- : helpers.isTypePassedByValue(param.type);
748
+ const isRequired = go.isRequiredParameter(paramStyle);
755
749
  const contentType = this.adaptContentType(opParam.defaultContentType);
756
750
  const getSerializedNameFromProperty = function (property) {
757
751
  if (contentType === "JSON") {
@@ -779,16 +773,19 @@ export class ClientAdapter {
779
773
  if (!serializedName) {
780
774
  throw new AdapterError("InternalError", `didn't find body model property for spread parameter ${param.name}`, param.__raw?.node);
781
775
  }
782
- adaptedParam = new go.PartialBodyParameter(paramName, serializedName, contentType, this.ta.getWireType(param.type, true, true), paramStyle, byVal);
776
+ const paramType = this.ta.getWireType(param.type, true, true);
777
+ adaptedParam = new go.PartialBodyParameter(paramName, serializedName, contentType, !isRequired && helpers.isPtrType(paramType)
778
+ ? this.ta.getPtrType(paramType)
779
+ : paramType, paramStyle);
783
780
  break;
784
781
  }
785
782
  case "binary":
786
783
  if (isMultipartBodyType(opParam.type)) {
787
- adaptedParam = this.adaptMultipartFormParameter(param.name, opParam.type, paramStyle, byVal);
784
+ adaptedParam = this.adaptMultipartFormParameter(param.name, opParam.type, paramStyle, isRequired);
788
785
  }
789
786
  else {
790
787
  const contentTypeLiteral = this.ta.getLiteral(this.ta.getStringType(), opParam.defaultContentType);
791
- adaptedParam = new go.BodyParameter(paramName, contentType, contentTypeLiteral, this.ta.getReadSeekCloser(false), paramStyle, byVal);
788
+ adaptedParam = new go.BodyParameter(paramName, contentType, contentTypeLiteral, this.ta.getReadSeekCloser(false), paramStyle);
792
789
  }
793
790
  break;
794
791
  default:
@@ -1002,13 +999,13 @@ export class ClientAdapter {
1002
999
  let apiVersionParam;
1003
1000
  switch (opParam.kind) {
1004
1001
  case "header":
1005
- apiVersionParam = new go.HeaderScalarParameter("apiVersion", opParam.serializedName, paramType, paramStyle, true, paramLoc);
1002
+ apiVersionParam = new go.HeaderScalarParameter("apiVersion", opParam.serializedName, paramType, paramStyle, paramLoc);
1006
1003
  break;
1007
1004
  case "path":
1008
- apiVersionParam = new go.PathScalarParameter("apiVersion", opParam.serializedName, true, paramType, paramType.kind === "literal" ? new go.ClientSideDefault(paramType) : paramStyle, true, paramLoc);
1005
+ apiVersionParam = new go.PathScalarParameter("apiVersion", opParam.serializedName, true, paramType, paramType.kind === "literal" ? new go.ClientSideDefault(paramType) : paramStyle, paramLoc);
1009
1006
  break;
1010
1007
  case "query":
1011
- apiVersionParam = new go.QueryScalarParameter("apiVersion", opParam.serializedName, true, paramType, paramStyle, true, paramLoc);
1008
+ apiVersionParam = new go.QueryScalarParameter("apiVersion", opParam.serializedName, true, paramType, paramStyle, paramLoc);
1012
1009
  break;
1013
1010
  default:
1014
1011
  throw new AdapterError("UnsupportedTsp", `unsupported API version param kind ${opParam.kind}`, opParam.__raw?.node);
@@ -1053,9 +1050,8 @@ export class ClientAdapter {
1053
1050
  }
1054
1051
  }
1055
1052
  const paramName = getEscapedReservedName(helpers.getEffectiveName(methodParam, paramStyle === "required"), "Param");
1056
- const byVal = go.isRequiredParameter(paramStyle)
1057
- ? true
1058
- : helpers.isTypePassedByValue(methodParam.type);
1053
+ // required and literal params are always passed by value
1054
+ const byVal = go.isRequiredParameter(paramStyle) || paramStyle === "literal";
1059
1055
  let adaptedParam;
1060
1056
  switch (opParam.kind) {
1061
1057
  case "body":
@@ -1070,7 +1066,7 @@ export class ClientAdapter {
1070
1066
  bodyType = this.ta.getReadSeekCloser(methodParam.type.kind === "array");
1071
1067
  }
1072
1068
  const contentTypeLiteral = this.ta.getLiteral(this.ta.getStringType(), opParam.defaultContentType);
1073
- adaptedParam = new go.BodyParameter(paramName, contentType, contentTypeLiteral, bodyType, paramStyle, byVal);
1069
+ adaptedParam = new go.BodyParameter(paramName, contentType, contentTypeLiteral, !byVal && helpers.isPtrType(bodyType) ? this.ta.getPtrType(bodyType) : bodyType, paramStyle);
1074
1070
  if (contentType === "XML" && methodParam.type.kind === "array") {
1075
1071
  // this is for compat with legacy behavior
1076
1072
  adaptedParam.xml = new go.XMLInfo();
@@ -1081,32 +1077,34 @@ export class ClientAdapter {
1081
1077
  case "cookie":
1082
1078
  // TODO: currently we don't have Azure service using cookie parameter. need to add support if needed in the future.
1083
1079
  throw new AdapterError("UnsupportedTsp", "unsupported parameter type cookie", opParam.__raw?.node);
1084
- case "header":
1080
+ case "header": {
1085
1081
  const type = this.ta.getWireType(methodParam.type, true, false);
1086
1082
  if (type.kind === "map") {
1087
1083
  if (opParam.serializedName !== "x-ms-meta") {
1088
1084
  throw new AdapterError("InternalError", `unexpected kind ${type.kind} for header ${opParam.serializedName}`, opParam.__raw?.node);
1089
1085
  }
1090
- adaptedParam = new go.HeaderMapParameter(paramName, `${opParam.serializedName}-`, type, paramStyle, byVal, location);
1086
+ adaptedParam = new go.HeaderMapParameter(paramName, `${opParam.serializedName}-`, type, paramStyle, location);
1091
1087
  }
1092
1088
  else if (opParam.collectionFormat) {
1093
1089
  if (opParam.collectionFormat === "multi" || opParam.collectionFormat === "form") {
1094
1090
  throw new AdapterError("InternalError", `unexpected collection format ${opParam.collectionFormat} for HeaderCollectionParameter`, opParam.__raw?.node);
1095
1091
  }
1096
- // TODO: is hard-coded false for element type by value correct?
1097
- const type = this.ta.getWireType(methodParam.type, true, false);
1098
1092
  if (type.kind !== "slice") {
1099
1093
  throw new AdapterError("InternalError", `unexpected kind ${type.kind} for HeaderCollectionParameter ${methodParam.name}`, opParam.__raw?.node);
1100
1094
  }
1101
- adaptedParam = new go.HeaderCollectionParameter(paramName, opParam.serializedName, type, opParam.collectionFormat === "simple" ? "csv" : opParam.collectionFormat, paramStyle, byVal, location);
1095
+ adaptedParam = new go.HeaderCollectionParameter(paramName, opParam.serializedName, type, opParam.collectionFormat === "simple" ? "csv" : opParam.collectionFormat, paramStyle, location);
1102
1096
  }
1103
1097
  else {
1104
- adaptedParam = new go.HeaderScalarParameter(paramName, opParam.serializedName, this.adaptHeaderScalarType(methodParam.type, true), paramStyle, byVal, location);
1098
+ const type = this.adaptHeaderScalarType(methodParam.type, true);
1099
+ adaptedParam = new go.HeaderScalarParameter(paramName, opParam.serializedName, !byVal && helpers.isPtrType(type) ? this.ta.getPtrType(type) : type, paramStyle, location);
1105
1100
  }
1106
1101
  break;
1107
- case "path":
1108
- adaptedParam = new go.PathScalarParameter(paramName, opParam.serializedName, !opParam.allowReserved, this.adaptPathScalarParameterType(methodParam.type), paramStyle, byVal, location);
1102
+ }
1103
+ case "path": {
1104
+ const type = this.adaptPathScalarParameterType(methodParam.type);
1105
+ adaptedParam = new go.PathScalarParameter(paramName, opParam.serializedName, !opParam.allowReserved, !byVal && helpers.isPtrType(type) ? this.ta.getPtrType(type) : type, paramStyle, location);
1109
1106
  break;
1107
+ }
1110
1108
  case "query":
1111
1109
  if (opParam.collectionFormat) {
1112
1110
  const type = this.ta.getWireType(methodParam.type, true, false);
@@ -1118,11 +1116,12 @@ export class ClientAdapter {
1118
1116
  ? "csv"
1119
1117
  : opParam.collectionFormat === "form"
1120
1118
  ? "multi"
1121
- : opParam.collectionFormat, paramStyle, byVal, location);
1119
+ : opParam.collectionFormat, paramStyle, location);
1122
1120
  }
1123
1121
  else {
1124
1122
  // TODO: unencoded query param
1125
- adaptedParam = new go.QueryScalarParameter(paramName, opParam.serializedName, true, this.adaptQueryScalarParameterType(methodParam.type), paramStyle, byVal, location);
1123
+ const type = this.adaptQueryScalarParameterType(methodParam.type);
1124
+ adaptedParam = new go.QueryScalarParameter(paramName, opParam.serializedName, true, !byVal && helpers.isPtrType(type) ? this.ta.getPtrType(type) : type, paramStyle, location);
1126
1125
  }
1127
1126
  break;
1128
1127
  }
@@ -1168,9 +1167,12 @@ export class ClientAdapter {
1168
1167
  }
1169
1168
  else {
1170
1169
  type = this.ta.getWireType(paramAsSdkType, true, true);
1170
+ if (!byVal && helpers.isPtrType(type)) {
1171
+ type = this.ta.getPtrType(type);
1172
+ }
1171
1173
  }
1172
1174
  paramName = getEscapedReservedName(helpers.getEffectiveName({ name: paramName, isExactName }, paramStyle === "required"), "Param");
1173
- return new go.MultipartFormBodyParameter(paramName, type, paramStyle, byVal);
1175
+ return new go.MultipartFormBodyParameter(paramName, type, paramStyle);
1174
1176
  }
1175
1177
  getMethodNameForDocComment(method) {
1176
1178
  let methodName;
@@ -1229,7 +1231,8 @@ export class ClientAdapter {
1229
1231
  headerResp = new go.HeaderMapResponse(helpers.getEffectiveName(httpHeader), type, `${httpHeader.serializedName}-`);
1230
1232
  }
1231
1233
  else {
1232
- headerResp = new go.HeaderScalarResponse(helpers.getEffectiveName(httpHeader), this.adaptHeaderScalarType(httpHeader.type, false), httpHeader.serializedName, helpers.isTypePassedByValue(httpHeader.type));
1234
+ const type = this.adaptHeaderScalarType(httpHeader.type, false);
1235
+ headerResp = new go.HeaderScalarResponse(helpers.getEffectiveName(httpHeader), helpers.isPtrType(type) ? this.ta.getPtrType(type) : type, httpHeader.serializedName);
1233
1236
  if (go.isPageableMethod(method)) {
1234
1237
  pageableRespHeadersMap.set(httpHeader, headerResp);
1235
1238
  }
@@ -1393,7 +1396,7 @@ export class ClientAdapter {
1393
1396
  // this is for compat with legacy behavior
1394
1397
  xmlInfo = new go.XMLInfo();
1395
1398
  fieldName = sdkResponseType.name;
1396
- const elementType = resultType.elementType;
1399
+ const elementType = go.unwrapPtr(resultType.elementType);
1397
1400
  const elementTypeXmlName = helpers.hasXMLInfo(elementType)?.name;
1398
1401
  xmlInfo.wraps =
1399
1402
  elementTypeXmlName ?? go.getTypeDeclaration(elementType, method.receiver.type.pkg);
@@ -1406,7 +1409,7 @@ export class ClientAdapter {
1406
1409
  if (customName) {
1407
1410
  fieldName = customName;
1408
1411
  }
1409
- respEnv.result = new go.MonomorphicResult(fieldName, contentType, resultType, helpers.isTypePassedByValue(sdkResponseType));
1412
+ respEnv.result = new go.MonomorphicResult(fieldName, contentType, helpers.isPtrType(resultType) ? this.ta.getPtrType(resultType) : resultType);
1410
1413
  respEnv.result.xml = xmlInfo;
1411
1414
  }
1412
1415
  else {
@@ -1486,14 +1489,7 @@ export class ClientAdapter {
1486
1489
  if (param.style === "literal") {
1487
1490
  continue;
1488
1491
  }
1489
- let byValue = param.style === "required" ||
1490
- (param.location === "client" && go.isClientSideDefault(param.style));
1491
- // if the param isn't required, check if it should be passed by value or not.
1492
- // optional params that are implicitly nil-able shouldn't be pointer-to-type.
1493
- if (!byValue) {
1494
- byValue = param.byValue;
1495
- }
1496
- const field = new go.StructField(param.name, param.type, byValue);
1492
+ const field = new go.StructField(param.name, param.type);
1497
1493
  field.docs = param.docs;
1498
1494
  structType.fields.push(field);
1499
1495
  }
@@ -1663,6 +1659,7 @@ export class ClientAdapter {
1663
1659
  }
1664
1660
  }
1665
1661
  adaptExampleType(exampleType, goType) {
1662
+ goType = go.unwrapPtr(goType);
1666
1663
  switch (exampleType.kind) {
1667
1664
  case "string":
1668
1665
  switch (goType.kind) {