@azure-tools/typespec-ts 0.15.0 → 0.16.0-alpha.20230913.1

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 (98) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +14 -17
  4. package/dist/src/index.js.map +1 -1
  5. package/dist/src/lib.d.ts.map +1 -1
  6. package/dist/src/lib.js +3 -3
  7. package/dist/src/lib.js.map +1 -1
  8. package/dist/src/modular/buildClassicalClient.d.ts +2 -3
  9. package/dist/src/modular/buildClassicalClient.d.ts.map +1 -1
  10. package/dist/src/modular/buildClassicalClient.js +26 -12
  11. package/dist/src/modular/buildClassicalClient.js.map +1 -1
  12. package/dist/src/modular/buildClientContext.d.ts +3 -3
  13. package/dist/src/modular/buildClientContext.d.ts.map +1 -1
  14. package/dist/src/modular/buildClientContext.js +5 -4
  15. package/dist/src/modular/buildClientContext.js.map +1 -1
  16. package/dist/src/modular/buildCodeModel.d.ts +3 -2
  17. package/dist/src/modular/buildCodeModel.d.ts.map +1 -1
  18. package/dist/src/modular/buildCodeModel.js +141 -54
  19. package/dist/src/modular/buildCodeModel.js.map +1 -1
  20. package/dist/src/modular/buildOperations.d.ts +2 -2
  21. package/dist/src/modular/buildOperations.d.ts.map +1 -1
  22. package/dist/src/modular/buildOperations.js +15 -8
  23. package/dist/src/modular/buildOperations.js.map +1 -1
  24. package/dist/src/modular/buildProjectFiles.js +2 -2
  25. package/dist/src/modular/buildProjectFiles.js.map +1 -1
  26. package/dist/src/modular/buildRootIndex.d.ts +4 -4
  27. package/dist/src/modular/buildRootIndex.d.ts.map +1 -1
  28. package/dist/src/modular/buildRootIndex.js +12 -5
  29. package/dist/src/modular/buildRootIndex.js.map +1 -1
  30. package/dist/src/modular/buildSubpathIndex.d.ts +2 -2
  31. package/dist/src/modular/buildSubpathIndex.d.ts.map +1 -1
  32. package/dist/src/modular/buildSubpathIndex.js +7 -4
  33. package/dist/src/modular/buildSubpathIndex.js.map +1 -1
  34. package/dist/src/modular/emitModels.d.ts +3 -3
  35. package/dist/src/modular/emitModels.d.ts.map +1 -1
  36. package/dist/src/modular/emitModels.js +28 -18
  37. package/dist/src/modular/emitModels.js.map +1 -1
  38. package/dist/src/modular/helpers/clientHelpers.js +1 -1
  39. package/dist/src/modular/helpers/clientHelpers.js.map +1 -1
  40. package/dist/src/modular/helpers/operationHelpers.d.ts +1 -1
  41. package/dist/src/modular/helpers/operationHelpers.d.ts.map +1 -1
  42. package/dist/src/modular/helpers/operationHelpers.js +140 -77
  43. package/dist/src/modular/helpers/operationHelpers.js.map +1 -1
  44. package/dist/src/modular/helpers/typeHelpers.d.ts +2 -2
  45. package/dist/src/modular/helpers/typeHelpers.d.ts.map +1 -1
  46. package/dist/src/modular/helpers/typeHelpers.js +13 -7
  47. package/dist/src/modular/helpers/typeHelpers.js.map +1 -1
  48. package/dist/src/modular/modularCodeModel.d.ts +11 -0
  49. package/dist/src/modular/modularCodeModel.d.ts.map +1 -1
  50. package/dist/src/transform/transformHelperFunctionDetails.js +3 -4
  51. package/dist/src/transform/transformHelperFunctionDetails.js.map +1 -1
  52. package/dist/src/transform/transformParameters.d.ts +0 -10
  53. package/dist/src/transform/transformParameters.d.ts.map +1 -1
  54. package/dist/src/transform/transformParameters.js +7 -51
  55. package/dist/src/transform/transformParameters.js.map +1 -1
  56. package/dist/src/transform/transformResponses.js +3 -4
  57. package/dist/src/transform/transformResponses.js.map +1 -1
  58. package/dist/src/transform/transformSchemas.d.ts.map +1 -1
  59. package/dist/src/transform/transformSchemas.js +4 -8
  60. package/dist/src/transform/transformSchemas.js.map +1 -1
  61. package/dist/src/transform/transformTelemetryInfo.d.ts.map +1 -1
  62. package/dist/src/transform/transformTelemetryInfo.js +3 -10
  63. package/dist/src/transform/transformTelemetryInfo.js.map +1 -1
  64. package/dist/src/transform/transfromRLCOptions.d.ts.map +1 -1
  65. package/dist/src/transform/transfromRLCOptions.js +48 -9
  66. package/dist/src/transform/transfromRLCOptions.js.map +1 -1
  67. package/dist/src/utils/modelUtils.d.ts +2 -1
  68. package/dist/src/utils/modelUtils.d.ts.map +1 -1
  69. package/dist/src/utils/modelUtils.js +83 -73
  70. package/dist/src/utils/modelUtils.js.map +1 -1
  71. package/dist/src/utils/operationUtil.d.ts +15 -1
  72. package/dist/src/utils/operationUtil.d.ts.map +1 -1
  73. package/dist/src/utils/operationUtil.js +82 -3
  74. package/dist/src/utils/operationUtil.js.map +1 -1
  75. package/dist/tsconfig.tsbuildinfo +1 -1
  76. package/package.json +13 -11
  77. package/src/index.ts +24 -51
  78. package/src/lib.ts +3 -3
  79. package/src/modular/buildClassicalClient.ts +29 -16
  80. package/src/modular/buildClientContext.ts +8 -9
  81. package/src/modular/buildCodeModel.ts +183 -60
  82. package/src/modular/buildOperations.ts +16 -11
  83. package/src/modular/buildProjectFiles.ts +2 -2
  84. package/src/modular/buildRootIndex.ts +19 -12
  85. package/src/modular/buildSubpathIndex.ts +10 -8
  86. package/src/modular/emitModels.ts +35 -24
  87. package/src/modular/helpers/clientHelpers.ts +1 -1
  88. package/src/modular/helpers/operationHelpers.ts +231 -118
  89. package/src/modular/helpers/typeHelpers.ts +14 -7
  90. package/src/modular/modularCodeModel.ts +11 -0
  91. package/src/transform/transformHelperFunctionDetails.ts +10 -4
  92. package/src/transform/transformParameters.ts +15 -57
  93. package/src/transform/transformResponses.ts +2 -4
  94. package/src/transform/transformSchemas.ts +5 -9
  95. package/src/transform/transformTelemetryInfo.ts +4 -18
  96. package/src/transform/transfromRLCOptions.ts +67 -9
  97. package/src/utils/modelUtils.ts +81 -72
  98. package/src/utils/operationUtil.ts +121 -4
@@ -3,6 +3,7 @@ import { buildType } from "./typeHelpers.js";
3
3
  import { NameType, getResponseBaseName, getResponseTypeName, normalizeName } from "@azure-tools/rlc-common";
4
4
  import { getOperationName } from "./namingHelpers.js";
5
5
  import { getFixmeForMultilineDocs, getDocsFromDescription } from "./docsHelpers.js";
6
+ import { getCollectionFormatHelper, hasCollectionFormatInfo } from "../../utils/operationUtil.js";
6
7
  function getRLCResponseType(rlcResponse) {
7
8
  if (!(rlcResponse === null || rlcResponse === void 0 ? void 0 : rlcResponse.responses)) {
8
9
  return;
@@ -36,7 +37,7 @@ export function getSendPrivateFunction(operation, clientType, importSet) {
36
37
  export function getDeserializePrivateFunction(operation, needSubClient, needUnexpectedHelper, importSet) {
37
38
  var _a, _b, _c, _d, _e;
38
39
  const { name } = getOperationName(operation);
39
- let parameters = [
40
+ const parameters = [
40
41
  {
41
42
  name: "result",
42
43
  type: getRLCResponseType(operation.rlcResponse)
@@ -46,17 +47,9 @@ export function getDeserializePrivateFunction(operation, needSubClient, needUnex
46
47
  const response = operation.responses[0];
47
48
  let returnType;
48
49
  if ((_a = response === null || response === void 0 ? void 0 : response.type) === null || _a === void 0 ? void 0 : _a.type) {
49
- returnType = buildType(response.type.name, response.type);
50
+ returnType = buildType(response.type.name, response.type, response.type.format);
50
51
  }
51
52
  else {
52
- if (!needUnexpectedHelper) {
53
- parameters = [
54
- {
55
- name: "_result",
56
- type: getRLCResponseType(operation.rlcResponse)
57
- }
58
- ];
59
- }
60
53
  returnType = { name: "", type: "void" };
61
54
  }
62
55
  const functionStatement = {
@@ -70,11 +63,23 @@ export function getDeserializePrivateFunction(operation, needSubClient, needUnex
70
63
  if (needUnexpectedHelper) {
71
64
  statements.push(`if(${needSubClient ? "UnexpectedHelper." : ""}isUnexpected(result)){`, "throw result.body", "}");
72
65
  }
66
+ else {
67
+ const validStatus = [
68
+ ...new Set(operation.responses
69
+ .flatMap((r) => r.statusCodes)
70
+ .filter((s) => s !== "default"))
71
+ ];
72
+ if (validStatus.length > 0) {
73
+ statements.push(`if(${validStatus
74
+ .map((s) => `result.status !== "${s}"`)
75
+ .join(" || ")}){`, "throw result.body", "}");
76
+ }
77
+ }
73
78
  if (((_b = response === null || response === void 0 ? void 0 : response.type) === null || _b === void 0 ? void 0 : _b.type) === "any") {
74
79
  statements.push(`return result.body`);
75
80
  }
76
81
  else if ((_c = response === null || response === void 0 ? void 0 : response.type) === null || _c === void 0 ? void 0 : _c.elementType) {
77
- statements.push(`return ${deserializeResponseValue(response.type, "result.body", importSet, response.type.nullable !== undefined ? !response.type.nullable : false)}`);
82
+ statements.push(`return ${deserializeResponseValue(response.type, "result.body", importSet, response.type.nullable !== undefined ? !response.type.nullable : false, response.type.format)}`);
78
83
  }
79
84
  else if ((_d = response === null || response === void 0 ? void 0 : response.type) === null || _d === void 0 ? void 0 : _d.properties) {
80
85
  statements.push(`return {`, getResponseMapping((_e = response.type.properties) !== null && _e !== void 0 ? _e : [], "result.body", importSet).join(","), `}`);
@@ -98,22 +103,22 @@ function getOperationSignatureParameters(operation, clientType) {
98
103
  ((_c = (_b = operation.bodyParameter) === null || _b === void 0 ? void 0 : _b.type.properties) !== null && _c !== void 0 ? _c : [])
99
104
  .filter((p) => !p.optional)
100
105
  .filter((p) => !p.readonly)
101
- .map((p) => buildType(p.clientName, p.type))
106
+ .map((p) => buildType(p.clientName, p.type, p.format))
102
107
  .forEach((p) => parameters.set(p.name, p));
103
108
  }
104
109
  else if (((_d = operation.bodyParameter) === null || _d === void 0 ? void 0 : _d.type.type) === "list") {
105
110
  const bodyArray = operation.bodyParameter;
106
- parameters.set(bodyArray.clientName, buildType(bodyArray.clientName, bodyArray.type));
111
+ parameters.set(bodyArray.clientName, buildType(bodyArray.clientName, bodyArray.type, bodyArray.type.format));
107
112
  }
108
113
  else if (((_e = operation.bodyParameter) === null || _e === void 0 ? void 0 : _e.type.type) === "byte-array") {
109
- parameters.set(operation.bodyParameter.clientName, buildType(operation.bodyParameter.clientName, operation.bodyParameter.type));
114
+ parameters.set(operation.bodyParameter.clientName, buildType(operation.bodyParameter.clientName, operation.bodyParameter.type, operation.bodyParameter.type.format));
110
115
  }
111
116
  operation.parameters
112
117
  .filter((p) => p.implementation === "Method" &&
113
118
  p.type.type !== "constant" &&
114
119
  p.clientDefaultValue === undefined &&
115
120
  !p.optional)
116
- .map((p) => buildType(p.clientName, p.type))
121
+ .map((p) => buildType(p.clientName, p.type, p.format))
117
122
  .forEach((p) => {
118
123
  parameters.set(p.name, p);
119
124
  });
@@ -138,7 +143,7 @@ export function getOperationFunction(operation, clientType) {
138
143
  // TODO: Support operation overloads
139
144
  const response = operation.responses[0];
140
145
  const returnType = ((_a = response === null || response === void 0 ? void 0 : response.type) === null || _a === void 0 ? void 0 : _a.type)
141
- ? buildType(response.type.name, response.type)
146
+ ? buildType(response.type.name, response.type, response.type.format)
142
147
  : { name: "", type: "void" };
143
148
  const { name, fixme = [] } = getOperationName(operation);
144
149
  const functionStatement = {
@@ -162,8 +167,14 @@ export function getOperationFunction(operation, clientType) {
162
167
  statements
163
168
  };
164
169
  }
165
- export function getOperationOptionsName(operation) {
166
- return `${toPascalCase(operation.groupName)}${toPascalCase(operation.name)}Options`;
170
+ export function getOperationOptionsName(operation, includeGroupName = false) {
171
+ var _a;
172
+ const prefix = includeGroupName ? toPascalCase(operation.groupName) : "";
173
+ const optionName = `${prefix}${toPascalCase(operation.name)}Options`;
174
+ if (((_a = operation.bodyParameter) === null || _a === void 0 ? void 0 : _a.type.name) === optionName) {
175
+ return optionName.replace(/Options$/, "RequestOptions");
176
+ }
177
+ return optionName;
167
178
  }
168
179
  /**
169
180
  * This function build the request parameters that we will provide to the
@@ -191,7 +202,7 @@ function getRequestParameters(operation, importSet) {
191
202
  paramStr = `${getContentTypeValue(contentTypeParameter)},`;
192
203
  }
193
204
  if (parametersImplementation.header.length) {
194
- paramStr = `${paramStr}\nheaders: {${parametersImplementation.header.join(",\n") + ","},`;
205
+ paramStr = `${paramStr}\nheaders: {${parametersImplementation.header.join(",\n")}},`;
195
206
  }
196
207
  if (parametersImplementation.query.length) {
197
208
  paramStr = `${paramStr}\nqueryParameters: {${parametersImplementation.query.join(",\n")}},`;
@@ -206,23 +217,16 @@ function buildBodyParameter(bodyParameter, importSet) {
206
217
  }
207
218
  if (bodyParameter.type.type === "model") {
208
219
  const bodyParts = [];
209
- let hasSerializeBody = false;
210
220
  for (const param of (_b = (_a = bodyParameter === null || bodyParameter === void 0 ? void 0 : bodyParameter.type.properties) === null || _a === void 0 ? void 0 : _a.filter((p) => !p.readonly)) !== null && _b !== void 0 ? _b : []) {
211
221
  if (param.type.type === "model" && isRequired(param)) {
212
- hasSerializeBody = true;
213
- bodyParts.push(...getRequestModelMapping(param.type, param.clientName, importSet));
222
+ bodyParts.push(`"${param.restApiName}": {${getRequestModelMapping(param.type, param.clientName, importSet).join(",\n")}}`);
214
223
  }
215
224
  else {
216
225
  bodyParts.push(getParameterMap(param, importSet));
217
226
  }
218
227
  }
219
228
  if (bodyParameter && bodyParameter.type.properties) {
220
- if (hasSerializeBody) {
221
- return `\nbody: {"${bodyParameter.restApiName}": {${bodyParts.join(",\n")}}},`;
222
- }
223
- else {
224
- return `\nbody: {${bodyParts.join(",\n")}},`;
225
- }
229
+ return `\nbody: {${bodyParts.join(",\n")}},`;
226
230
  }
227
231
  }
228
232
  if (bodyParameter.type.type === "list") {
@@ -246,17 +250,31 @@ function getParameterMap(param, importSet) {
246
250
  if (isConstant(param)) {
247
251
  return getConstantValue(param);
248
252
  }
249
- if (isOptionalWithouDefault(param)) {
250
- return getOptionalWithoutDefault(param, importSet);
253
+ if (hasCollectionFormatInfo(param.location, param.format)) {
254
+ return getCollectionFormat(param, importSet);
251
255
  }
252
- if (isOptionalWithDefault(param)) {
253
- return getOptionalWithDefault(param, importSet);
256
+ // if the parameter or property is optional, we don't need to handle the default value
257
+ if (isOptional(param)) {
258
+ return getOptional(param, importSet);
254
259
  }
255
260
  if (isRequired(param)) {
256
261
  return getRequired(param, importSet);
257
262
  }
258
263
  throw new Error(`Parameter ${param.clientName} is not supported`);
259
264
  }
265
+ function getCollectionFormat(param, importSet) {
266
+ var _a, _b;
267
+ const collectionInfo = getCollectionFormatHelper(param.location, (_a = param.format) !== null && _a !== void 0 ? _a : "");
268
+ if (!collectionInfo) {
269
+ throw "Has collection format info but without helper function detected";
270
+ }
271
+ const isMulti = ((_b = param.format) !== null && _b !== void 0 ? _b : "").toLowerCase() === "multi";
272
+ const additionalParam = isMulti ? `, "${param.restApiName}"` : "";
273
+ if (!param.optional) {
274
+ return `"${param.restApiName}": ${collectionInfo}(${serializeRequestValue(param.type, param.clientName, importSet, true, param.format)}${additionalParam})`;
275
+ }
276
+ return `"${param.restApiName}": options?.${param.clientName} !== undefined ? ${collectionInfo}(${serializeRequestValue(param.type, "options?." + param.clientName, importSet, false, param.format)}${additionalParam}): undefined`;
277
+ }
260
278
  function isContentType(param) {
261
279
  return (param.location === "header" &&
262
280
  param.restApiName.toLowerCase() === "content-type");
@@ -281,7 +299,11 @@ function getRequired(param, importSet) {
281
299
  if (param.type.type === "model") {
282
300
  return `"${param.restApiName}": ${getRequestModelMapping(param.type, param.clientName, importSet).join(",")}`;
283
301
  }
284
- return `"${param.restApiName}": ${param.clientName}`;
302
+ return `"${param.restApiName}": ${serializeRequestValue(param.type, param.clientName, importSet, true, param.format === undefined &&
303
+ param.location === "header" &&
304
+ param.type.type === "datetime"
305
+ ? "headerDefault"
306
+ : param.format)}`;
285
307
  }
286
308
  function getConstantValue(param) {
287
309
  var _a;
@@ -294,31 +316,18 @@ function getConstantValue(param) {
294
316
  function isConstant(param) {
295
317
  return (param.type.type === "constant" && param.clientDefaultValue !== undefined);
296
318
  }
297
- function isOptionalWithouDefault(param) {
298
- return Boolean(param.optional && !param.clientDefaultValue);
319
+ function isOptional(param) {
320
+ return Boolean(param.optional);
299
321
  }
300
- function getOptionalWithoutDefault(param, importSet) {
322
+ function getOptional(param, importSet) {
301
323
  if (param.type.type === "model") {
302
324
  return `"${param.restApiName}": {${getRequestModelMapping(param.type, "options?." + param.clientName + "?", importSet).join(", ")}}`;
303
325
  }
304
- return `"${param.restApiName}": options?.${param.clientName}`;
305
- }
306
- function isOptionalWithDefault(param) {
307
- return Boolean(param.clientDefaultValue);
308
- }
309
- function getOptionalWithDefault(param, importSet) {
310
- if (param.type.type === "model") {
311
- return `"${param.restApiName}": {${getRequestModelMapping(param.type, "options?." + param.clientName, importSet).join(", ")}} ?? ${getQuotedValue(param)}`;
312
- }
313
- return `"${param.restApiName}": options.${param.clientName} ?? ${getQuotedValue(param)}`;
314
- }
315
- function getQuotedValue(param) {
316
- if (param.type.type === "string") {
317
- return `"${param.clientDefaultValue}"`;
318
- }
319
- else {
320
- return param.clientDefaultValue;
321
- }
326
+ return `"${param.restApiName}": ${serializeRequestValue(param.type, `options?.${param.clientName}`, importSet, false, param.format === undefined &&
327
+ param.location === "header" &&
328
+ param.type.type === "datetime"
329
+ ? "headerDefault"
330
+ : param.format)}`;
322
331
  }
323
332
  /**
324
333
  * Builds the assignment for when a property or parameter has a default value
@@ -365,6 +374,7 @@ function getNullableCheck(name, type) {
365
374
  * extracting properties from body and headers and building the RLC response object
366
375
  */
367
376
  function getRequestModelMapping(modelPropertyType, propertyPath = "body", importSet) {
377
+ var _a, _b;
368
378
  if (!modelPropertyType.properties || !modelPropertyType.properties) {
369
379
  return [];
370
380
  }
@@ -374,21 +384,38 @@ function getRequestModelMapping(modelPropertyType, propertyPath = "body", import
374
384
  if (property.readonly) {
375
385
  continue;
376
386
  }
377
- const propertyFullName = `${propertyPath}.${property.restApiName}`;
387
+ const propertyFullName = `${propertyPath}.${property.clientName}`;
378
388
  if (property.type.type === "model") {
379
389
  let definition;
380
390
  if (property.type.isCoreErrorType) {
381
391
  definition = `"${property.restApiName}": ${getNullableCheck(propertyFullName, property.type)} ${!property.optional ? "" : `!${propertyFullName} ? undefined :`} ${propertyFullName}`;
382
392
  }
393
+ else if ((property.restApiName === "message" ||
394
+ property.restApiName === "messages") &&
395
+ (property.type.name === "ChatMessage" ||
396
+ ((_a = property.type.elementType) === null || _a === void 0 ? void 0 : _a.name) === "ChatMessage")) {
397
+ definition = `"${property.restApiName}": ${!property.optional
398
+ ? `${propertyFullName} as any`
399
+ : `!${propertyFullName} ? undefined : ${propertyFullName} as any`}`;
400
+ }
383
401
  else {
384
- definition = `"${property.restApiName}": ${getNullableCheck(propertyFullName, property.type)} ${!property.optional ? "" : `!${propertyFullName} ? undefined :`} {${getRequestModelMapping(property.type, `${propertyPath}.${property.restApiName}${property.optional ? "?" : ""}`, importSet)}}`;
402
+ definition = `"${property.restApiName}": ${getNullableCheck(propertyFullName, property.type)} ${!property.optional ? "" : `!${propertyFullName} ? undefined :`} {${getRequestModelMapping(property.type, `${propertyPath}.${property.clientName}${property.optional ? "?" : ""}`, importSet)}}`;
385
403
  }
386
404
  props.push(definition);
387
405
  }
406
+ else if ((property.restApiName === "message" ||
407
+ property.restApiName === "messages") &&
408
+ (property.type.name === "ChatMessage" ||
409
+ ((_b = property.type.elementType) === null || _b === void 0 ? void 0 : _b.name) === "ChatMessage")) {
410
+ const definition = `"${property.restApiName}": ${!property.optional
411
+ ? `${propertyFullName} as any`
412
+ : `!${propertyFullName} ? undefined : ${propertyFullName} as any`}`;
413
+ props.push(definition);
414
+ }
388
415
  else {
389
416
  const dot = propertyPath.endsWith("?") ? "." : "";
390
- const restValue = `${propertyPath ? `${propertyPath}${dot}` : `${dot}`}["${property.clientName}"]`;
391
- props.push(`"${property.restApiName}": ${serializeRequestValue(property.type, restValue, importSet)}`);
417
+ const clientValue = `${propertyPath ? `${propertyPath}${dot}` : `${dot}`}["${property.clientName}"]`;
418
+ props.push(`"${property.restApiName}": ${serializeRequestValue(property.type, clientValue, importSet, !property.optional, property.format)}`);
392
419
  }
393
420
  }
394
421
  return props;
@@ -398,7 +425,7 @@ function getRequestModelMapping(modelPropertyType, propertyPath = "body", import
398
425
  * extracting properties from body and headers and building the HLC response object
399
426
  */
400
427
  export function getResponseMapping(properties, propertyPath = "result.body", importSet) {
401
- var _a;
428
+ var _a, _b, _c;
402
429
  const props = [];
403
430
  for (const property of properties) {
404
431
  // TODO: Do we need to also add headers in the result type?
@@ -408,15 +435,33 @@ export function getResponseMapping(properties, propertyPath = "result.body", imp
408
435
  if (property.type.isCoreErrorType) {
409
436
  definition = `"${property.clientName}": ${getNullableCheck(propertyFullName, property.type)} ${!property.optional ? "" : `!${propertyFullName} ? undefined :`} ${propertyFullName}`;
410
437
  }
438
+ else if ((property.restApiName === "message" ||
439
+ property.restApiName === "messages") &&
440
+ (property.type.name === "ChatMessage" ||
441
+ ((_a = property.type.elementType) === null || _a === void 0 ? void 0 : _a.name) === "ChatMessage")) {
442
+ definition = `"${property.clientName}": ${!property.optional
443
+ ? `${propertyFullName} as any`
444
+ : `!${propertyFullName} ? undefined : ${propertyFullName} as any`}`;
445
+ }
411
446
  else {
412
- definition = `"${property.clientName}": ${getNullableCheck(propertyFullName, property.type)} ${!property.optional ? "" : `!${propertyFullName} ? undefined :`} {${getResponseMapping((_a = property.type.properties) !== null && _a !== void 0 ? _a : [], `${propertyPath}.${property.restApiName}${property.optional ? "?" : ""}`, importSet)}}`;
447
+ definition = `"${property.clientName}": ${getNullableCheck(propertyFullName, property.type)} ${!property.optional ? "" : `!${propertyFullName} ? undefined :`} {${getResponseMapping((_b = property.type.properties) !== null && _b !== void 0 ? _b : [], `${propertyPath}.${property.restApiName}${property.optional ? "?" : ""}`, importSet)}}`;
413
448
  }
414
449
  props.push(definition);
415
450
  }
416
451
  else {
417
452
  const dot = propertyPath.endsWith("?") ? "." : "";
418
453
  const restValue = `${propertyPath ? `${propertyPath}${dot}` : `${dot}`}["${property.restApiName}"]`;
419
- props.push(`"${property.clientName}": ${deserializeResponseValue(property.type, restValue, importSet, property.optional !== undefined ? !property.optional : false)}`);
454
+ if ((property.restApiName === "message" ||
455
+ property.restApiName === "messages") &&
456
+ (property.type.name === "ChatMessage" ||
457
+ ((_c = property.type.elementType) === null || _c === void 0 ? void 0 : _c.name) === "ChatMessage")) {
458
+ props.push(`"${property.clientName}": ${!property.optional
459
+ ? `${propertyFullName} as any`
460
+ : `!${propertyFullName} ? undefined : ${propertyFullName} as any`}`);
461
+ }
462
+ else {
463
+ props.push(`"${property.clientName}": ${deserializeResponseValue(property.type, restValue, importSet, property.optional !== undefined ? !property.optional : false, property.format)}`);
464
+ }
420
465
  }
421
466
  }
422
467
  return props;
@@ -426,8 +471,8 @@ export function getResponseMapping(properties, propertyPath = "result.body", imp
426
471
  * We need to drill down into Array elements to make sure that the element type is
427
472
  * deserialized correctly
428
473
  */
429
- function deserializeResponseValue(type, restValue, importSet, required) {
430
- var _a, _b, _c, _d, _e, _f;
474
+ function deserializeResponseValue(type, restValue, importSet, required, format) {
475
+ var _a, _b, _c, _d;
431
476
  const coreUtilSet = importSet.get("@azure/core-util");
432
477
  switch (type.type) {
433
478
  case "datetime":
@@ -440,8 +485,8 @@ function deserializeResponseValue(type, restValue, importSet, required) {
440
485
  if (((_a = type.elementType) === null || _a === void 0 ? void 0 : _a.type) === "model") {
441
486
  return `(${restValue} ?? []).map(p => ({${getResponseMapping((_c = (_b = type.elementType) === null || _b === void 0 ? void 0 : _b.properties) !== null && _c !== void 0 ? _c : [], "p", importSet)}}))`;
442
487
  }
443
- else if ((_e = (_d = type.elementType) === null || _d === void 0 ? void 0 : _d.properties) === null || _e === void 0 ? void 0 : _e.some((p) => needsDeserialize(p.type))) {
444
- return `(${restValue} ?? []).map(p => ${deserializeResponseValue(type.elementType, "p", importSet, required)})`;
488
+ else if (needsDeserialize(type.elementType)) {
489
+ return `(${restValue} ?? []).map(p => ${deserializeResponseValue(type.elementType, "p", importSet, required, (_d = type.elementType) === null || _d === void 0 ? void 0 : _d.format)})`;
445
490
  }
446
491
  else {
447
492
  return restValue;
@@ -454,7 +499,7 @@ function deserializeResponseValue(type, restValue, importSet, required) {
454
499
  coreUtilSet.add("stringToUint8Array");
455
500
  }
456
501
  return `typeof ${restValue} === 'string'
457
- ? stringToUint8Array(${restValue}, "${(_f = type.format) !== null && _f !== void 0 ? _f : "base64"}")
502
+ ? stringToUint8Array(${restValue}, "${format !== null && format !== void 0 ? format : "base64"}")
458
503
  : ${restValue}`;
459
504
  default:
460
505
  return restValue;
@@ -465,21 +510,34 @@ function deserializeResponseValue(type, restValue, importSet, required) {
465
510
  * We need to drill down into Array elements to make sure that the element type is
466
511
  * deserialized correctly
467
512
  */
468
- function serializeRequestValue(type, restValue, importSet = new Map()) {
469
- var _a, _b, _c, _d, _e, _f;
513
+ function serializeRequestValue(type, clientValue, importSet, required, format) {
514
+ var _a, _b, _c;
470
515
  const coreUtilSet = importSet.get("@azure/core-util");
471
516
  switch (type.type) {
472
517
  case "datetime":
473
- return `${restValue} !== undefined ? new Date(${restValue}): undefined`;
518
+ switch ((_a = type.format) !== null && _a !== void 0 ? _a : format) {
519
+ case "date":
520
+ return `${clientValue}${required ? "" : "?"}.toDateString()`;
521
+ case "time":
522
+ return `${clientValue}${required ? "" : "?"}.toTimeString()`;
523
+ case "rfc7231":
524
+ case "headerDefault":
525
+ return `${clientValue}${required ? "" : "?"}.toUTCString()`;
526
+ case "unixTimestamp":
527
+ return `${clientValue}${required ? "" : "?"}.getTime()`;
528
+ case "rfc3339":
529
+ default:
530
+ return `${clientValue}${required ? "" : "?"}.toISOString()`;
531
+ }
474
532
  case "list":
475
- if (((_a = type.elementType) === null || _a === void 0 ? void 0 : _a.type) === "model") {
476
- return `(${restValue} ?? []).map(p => ({${getResponseMapping((_c = (_b = type.elementType) === null || _b === void 0 ? void 0 : _b.properties) !== null && _c !== void 0 ? _c : [], "p", importSet)}}))`;
533
+ if (((_b = type.elementType) === null || _b === void 0 ? void 0 : _b.type) === "model") {
534
+ return `(${clientValue} ?? []).map(p => ({${getRequestModelMapping(type.elementType, "p", importSet)}}))`;
477
535
  }
478
- else if ((_e = (_d = type.elementType) === null || _d === void 0 ? void 0 : _d.properties) === null || _e === void 0 ? void 0 : _e.some((p) => needsDeserialize(p.type))) {
479
- return `(${restValue} ?? []).map(p => ${serializeRequestValue(type.elementType, "p", importSet)})`;
536
+ else if (needsDeserialize(type.elementType)) {
537
+ return `(${clientValue} ?? []).map(p => ${serializeRequestValue(type.elementType, "p", importSet, required, (_c = type.elementType) === null || _c === void 0 ? void 0 : _c.format)})`;
480
538
  }
481
539
  else {
482
- return restValue;
540
+ return clientValue;
483
541
  }
484
542
  case "byte-array":
485
543
  if (!coreUtilSet) {
@@ -488,13 +546,18 @@ function serializeRequestValue(type, restValue, importSet = new Map()) {
488
546
  else {
489
547
  coreUtilSet.add("uint8ArrayToString");
490
548
  }
491
- return `${restValue} !== undefined ? uint8ArrayToString(${restValue}, "${(_f = type.format) !== null && _f !== void 0 ? _f : "base64"}"): undefined`;
549
+ return required
550
+ ? `uint8ArrayToString(${clientValue}, "${format !== null && format !== void 0 ? format : "base64"}")`
551
+ : `${clientValue} !== undefined ? uint8ArrayToString(${clientValue}, "${format !== null && format !== void 0 ? format : "base64"}"): undefined`;
492
552
  default:
493
- return restValue;
553
+ return clientValue;
494
554
  }
495
555
  }
496
556
  function needsDeserialize(type) {
497
- return (type === null || type === void 0 ? void 0 : type.type) === "datetime" || (type === null || type === void 0 ? void 0 : type.type) === "model";
557
+ return ((type === null || type === void 0 ? void 0 : type.type) === "datetime" ||
558
+ (type === null || type === void 0 ? void 0 : type.type) === "model" ||
559
+ (type === null || type === void 0 ? void 0 : type.type) === "list" ||
560
+ (type === null || type === void 0 ? void 0 : type.type) === "byte-array");
498
561
  }
499
562
  export function hasLROOperation(codeModel) {
500
563
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"operationHelpers.js","sourceRoot":"","sources":["../../../../src/modular/helpers/operationHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operationHelpers.js","sourceRoot":"","sources":["../../../../src/modular/helpers/operationHelpers.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,11 @@ export interface TypeMetadata {
5
5
  isRelative?: boolean;
6
6
  modifier?: "Array";
7
7
  }
8
- export declare function getType(type: Type): TypeMetadata;
8
+ export declare function getType(type: Type, format?: string): TypeMetadata;
9
9
  /**
10
10
  * Gets the Typescript representation of a TypeSpec type
11
11
  */
12
- export declare function buildType(clientName: string | undefined, type: Type | undefined): {
12
+ export declare function buildType(clientName: string | undefined, type: Type | undefined, format: string | undefined): {
13
13
  name: string;
14
14
  type: string;
15
15
  };
@@ -1 +1 @@
1
- {"version":3,"file":"typeHelpers.d.ts","sourceRoot":"","sources":["../../../../src/modular/helpers/typeHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAUD,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,CAwFhD;AAUD;;GAEG;AACH,wBAAgB,SAAS,CACvB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,IAAI,EAAE,IAAI,GAAG,SAAS;;;EAYvB"}
1
+ {"version":3,"file":"typeHelpers.d.ts","sourceRoot":"","sources":["../../../../src/modular/helpers/typeHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAUD,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CA8FjE;AAUD;;GAEG;AACH,wBAAgB,SAAS,CACvB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,IAAI,EAAE,IAAI,GAAG,SAAS,EACtB,MAAM,EAAE,MAAM,GAAG,SAAS;;;EAY3B"}
@@ -4,7 +4,7 @@ function getNullableType(name, type) {
4
4
  }
5
5
  return name;
6
6
  }
7
- export function getType(type) {
7
+ export function getType(type, format) {
8
8
  var _a, _b, _c;
9
9
  switch (type.type) {
10
10
  case "Key":
@@ -48,7 +48,7 @@ export function getType(type) {
48
48
  throw new Error("Unable to process Array with no elementType");
49
49
  }
50
50
  return {
51
- name: getNullableType(getType(type.elementType).name, type),
51
+ name: getNullableType(getType(type.elementType, type.elementType.format).name, type),
52
52
  modifier: "Array",
53
53
  originModule: ((_c = type.elementType) === null || _c === void 0 ? void 0 : _c.type) === "model" ? "models.js" : undefined
54
54
  };
@@ -62,14 +62,20 @@ export function getType(type) {
62
62
  };
63
63
  case "string":
64
64
  case "duration":
65
- return { name: getNullableType("string", type) };
65
+ switch (format) {
66
+ case "seconds":
67
+ return { name: getNullableType("number", type) };
68
+ case "ISO8601":
69
+ default:
70
+ return { name: getNullableType("string", type) };
71
+ }
66
72
  case "combined": {
67
73
  if (!type.types) {
68
74
  throw new Error("Unable to process combined without combinedTypes");
69
75
  }
70
76
  const name = type.types
71
77
  .map((t) => {
72
- const sdkType = getTypeName(getType(t));
78
+ const sdkType = getTypeName(getType(t, t.format));
73
79
  return `${sdkType}`;
74
80
  })
75
81
  .join(" | ");
@@ -80,7 +86,7 @@ export function getType(type) {
80
86
  throw new Error("Unable to process dict without elemetType info");
81
87
  }
82
88
  return {
83
- name: `Record<string, ${getTypeName(getType(type.elementType))}>`
89
+ name: `Record<string, ${getTypeName(getType(type.elementType, type.elementType.format))}>`
84
90
  };
85
91
  case "any":
86
92
  return {
@@ -103,11 +109,11 @@ function getTypeName(typeMetadata) {
103
109
  /**
104
110
  * Gets the Typescript representation of a TypeSpec type
105
111
  */
106
- export function buildType(clientName, type) {
112
+ export function buildType(clientName, type, format) {
107
113
  if (!type) {
108
114
  throw new Error("Type should be defined");
109
115
  }
110
- const typeMetadata = getType(type);
116
+ const typeMetadata = getType(type, format);
111
117
  let typeName = typeMetadata.name;
112
118
  if (typeMetadata.modifier === "Array") {
113
119
  typeName = `${typeName}[]`;
@@ -1 +1 @@
1
- {"version":3,"file":"typeHelpers.js","sourceRoot":"","sources":["../../../../src/modular/helpers/typeHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typeHelpers.js","sourceRoot":"","sources":["../../../../src/modular/helpers/typeHelpers.ts"],"names":[],"mappings":"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"}