@azure-tools/typespec-ts 0.15.0 → 0.16.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 (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
@@ -1,14 +1,13 @@
1
1
  import { getPagedResult, isFixed } from "@azure-tools/typespec-azure-core";
2
- import { getDoc, getFriendlyName, getMaxLength, getMaxValue, getMinLength, getMinValue, getPattern, getSummary, getVisibility, ignoreDiagnostics, isErrorModel, isNeverType, getEffectiveModelType, getDiscriminator, isKey, isStringType, getPropertyType, isNumericType, getFormat, getMinItems, getMaxItems, listServices, getProjectedName, isNullType, getEncode, isTemplateDeclarationOrInstance } from "@typespec/compiler";
3
- import { getAuthentication, getHeaderFieldName, getHttpOperation, getPathParamName, getQueryParamName, getServers, isStatusCode, isHeader } from "@typespec/http";
2
+ import { getDoc, getFriendlyName, getMaxLength, getMaxValue, getMinLength, getMinValue, getPattern, getSummary, getVisibility, ignoreDiagnostics, isErrorModel, isNeverType, getEffectiveModelType, getDiscriminator, isKey, isStringType, getPropertyType, isNumericType, getMinItems, getMaxItems, listServices, getProjectedName, isNullType, getEncode, isTemplateDeclarationOrInstance, getFormat } from "@typespec/compiler";
3
+ import { getAuthentication, getHeaderFieldName, getPathParamName, getQueryParamName, getServers, isStatusCode, isHeader, getHttpOperation } from "@typespec/http";
4
4
  import { getAddedOnVersions } from "@typespec/versioning";
5
- import { listClients, listOperationGroups, listOperationsInOperationGroup, isApiVersion, getDefaultApiVersion, getClientNamespaceString, createSdkContext, getSdkUnion, getAllModels, getSdkSimpleType } from "@azure-tools/typespec-client-generator-core";
5
+ import { listClients, listOperationGroups, listOperationsInOperationGroup, isApiVersion, getDefaultApiVersion, getClientNamespaceString, getSdkUnion, getAllModels, getSdkSimpleType } from "@azure-tools/typespec-client-generator-core";
6
6
  import { getResourceOperation } from "@typespec/rest";
7
- import { transformRLCOptions } from "../transform/transfromRLCOptions.js";
8
- import { getEnrichedDefaultApiVersion } from "../utils/modelUtils.js";
7
+ import { getEnrichedDefaultApiVersion, isAzureCoreErrorType } from "../utils/modelUtils.js";
9
8
  import { camelToSnakeCase, toCamelCase } from "../utils/casingUtils.js";
10
- import { getClientName } from "@azure-tools/rlc-common";
11
- import { getOperationGroupName, getOperationName } from "../utils/operationUtil.js";
9
+ import { getClientName, NameType, normalizeName } from "@azure-tools/rlc-common";
10
+ import { getOperationGroupName, getOperationName, isIgnoredHeaderParam } from "../utils/operationUtil.js";
12
11
  let CASING = "snake";
13
12
  function applyCasing(name, options = { casing: "snake" }) {
14
13
  if (options.casing === "camel") {
@@ -28,7 +27,8 @@ function isSimpleType(program, type) {
28
27
  getMaxValue,
29
28
  getMinLength,
30
29
  getMaxLength,
31
- getPattern
30
+ getPattern,
31
+ getEncode
32
32
  ];
33
33
  for (const func of funcs) {
34
34
  if (func(program, type)) {
@@ -65,7 +65,7 @@ function handleDiscriminator(context, type, model) {
65
65
  }
66
66
  }
67
67
  }
68
- // it is not included in properties of cadl but needed by python codegen
68
+ // it is not included in properties of typespec but needed by python codegen
69
69
  if (discriminatorProperty) {
70
70
  const discriminatorType = { ...discriminatorProperty.type };
71
71
  discriminatorType.value = null;
@@ -132,7 +132,7 @@ function processModelProperties(context, newValue, model) {
132
132
  }
133
133
  function getType(context, type, options = {}) {
134
134
  // don't cache simple type(string, int, etc) since decorators may change the result
135
- const enableCache = !isSimpleType(context.program, type) && !isEmptyModel(type);
135
+ const enableCache = !isSimpleType(context.program, type);
136
136
  const effectiveModel = !options.disableEffectiveModel &&
137
137
  (type.kind === "Model" || type.kind === "Union")
138
138
  ? getEffectiveSchemaType(context.program, type)
@@ -151,6 +151,9 @@ function getType(context, type, options = {}) {
151
151
  else {
152
152
  newValue = emitType(context, type);
153
153
  }
154
+ if (type.kind === "ModelProperty" || type.kind === "Scalar") {
155
+ newValue = applyEncoding(context.program, type, newValue);
156
+ }
154
157
  if (enableCache) {
155
158
  typesMap.set(effectiveModel, newValue);
156
159
  if (type.kind === "Union") {
@@ -187,11 +190,14 @@ function emitParamBase(program, parameter) {
187
190
  let name;
188
191
  let description = "";
189
192
  let addedOn;
193
+ let format;
190
194
  if (parameter.kind === "ModelProperty") {
195
+ const newParameter = applyEncoding(program, parameter, parameter);
191
196
  optional = parameter.optional;
192
197
  name = parameter.name;
193
198
  description = getDocStr(program, parameter);
194
199
  addedOn = getAddedOnVersion(program, parameter);
200
+ format = newParameter.format;
195
201
  }
196
202
  else {
197
203
  optional = false;
@@ -202,7 +208,8 @@ function emitParamBase(program, parameter) {
202
208
  description,
203
209
  addedOn,
204
210
  clientName: applyCasing(name, { casing: CASING }),
205
- inOverload: false
211
+ inOverload: false,
212
+ format
206
213
  };
207
214
  }
208
215
  function getBodyType(program, route) {
@@ -266,6 +273,7 @@ function emitBodyParameter(context, httpOperation) {
266
273
  };
267
274
  }
268
275
  function emitParameter(context, parameter, implementation) {
276
+ var _a;
269
277
  const base = emitParamBase(context.program, parameter.param);
270
278
  let type = getType(context, parameter.param.type);
271
279
  let clientDefaultValue = undefined;
@@ -279,9 +287,10 @@ function emitParameter(context, parameter, implementation) {
279
287
  const paramMap = {
280
288
  restApiName: parameter.name,
281
289
  location: parameter.type,
282
- type: type,
290
+ type: base.format ? { ...type, format: base.format } : type,
283
291
  implementation: implementation,
284
- skipUrlEncoding: parameter.type === "endpointPath"
292
+ skipUrlEncoding: parameter.type === "endpointPath",
293
+ format: (_a = parameter.format) !== null && _a !== void 0 ? _a : base.format
285
294
  };
286
295
  if (paramMap.type.type === "constant") {
287
296
  clientDefaultValue = paramMap.type.value;
@@ -352,19 +361,6 @@ function emitResponseHeaders(context, headers) {
352
361
  }
353
362
  return retval;
354
363
  }
355
- function isAzureCoreErrorType(t) {
356
- var _a;
357
- if ((t === null || t === void 0 ? void 0 : t.kind) !== "Model" ||
358
- !["Error", "ErrorResponse", "InnerError"].includes(t.name))
359
- return false;
360
- const namespaces = ".Azure.Core.Foundations".split(".");
361
- while (namespaces.length > 0 &&
362
- ((t === null || t === void 0 ? void 0 : t.kind) === "Model" || (t === null || t === void 0 ? void 0 : t.kind) === "Namespace") &&
363
- ((_a = t.namespace) === null || _a === void 0 ? void 0 : _a.name) === namespaces.pop()) {
364
- t = t.namespace;
365
- }
366
- return namespaces.length == 0;
367
- }
368
364
  function emitResponse(context, response, innerResponse) {
369
365
  var _a, _b;
370
366
  let type = undefined;
@@ -468,6 +464,9 @@ function emitBasicOperation(context, operation, operationGroupName, rlcModels) {
468
464
  op.path === sourceRoutePath);
469
465
  });
470
466
  for (const param of httpOperation.parameters.parameters) {
467
+ if (isIgnoredHeaderParam(param)) {
468
+ continue;
469
+ }
471
470
  const emittedParam = emitParameter(context, param, "Method");
472
471
  if (isApiVersion(context, param) && apiVersionParam === undefined) {
473
472
  apiVersionParam = emittedParam;
@@ -482,7 +481,7 @@ function emitBasicOperation(context, operation, operationGroupName, rlcModels) {
482
481
  for (const innerResponse of response.responses) {
483
482
  const emittedResponse = emitResponse(context, response, innerResponse);
484
483
  if (isErrorModel(context.program, response.type)) {
485
- // * is valid status code in cadl but invalid for autorest.python
484
+ // * is valid status code in typespec but invalid for autorest.python
486
485
  if (response.statusCode === "*") {
487
486
  exceptions.push(emittedResponse);
488
487
  }
@@ -532,7 +531,7 @@ function emitBasicOperation(context, operation, operationGroupName, rlcModels) {
532
531
  };
533
532
  }
534
533
  function isReadOnly(program, type) {
535
- // https://microsoft.github.io/cadl/standard-library/rest/operations#automatic-visibility
534
+ // https://microsoft.github.io/typespec/standard-library/http/operations#automatic-visibility
536
535
  // Only "read" should be readOnly
537
536
  const visibility = getVisibility(program, type);
538
537
  if (visibility) {
@@ -543,7 +542,8 @@ function isReadOnly(program, type) {
543
542
  }
544
543
  }
545
544
  function emitProperty(context, property) {
546
- var _a, _b;
545
+ var _a, _b, _c;
546
+ const newProperty = applyEncoding(context.program, property, property);
547
547
  let clientDefaultValue = undefined;
548
548
  const propertyDefaultKind = (_a = property.default) === null || _a === void 0 ? void 0 : _a.kind;
549
549
  if (property.default &&
@@ -552,21 +552,26 @@ function emitProperty(context, property) {
552
552
  propertyDefaultKind === "Boolean")) {
553
553
  clientDefaultValue = property.default.value;
554
554
  }
555
+ if (propertyDefaultKind === "EnumMember") {
556
+ clientDefaultValue = (_b = property.default.value) !== null && _b !== void 0 ? _b : property.default.name;
557
+ }
555
558
  // const [clientName, jsonName] = getPropertyNames(context, property);
556
559
  const clientName = property.name;
557
- const jsonName = (_b = getProjectedName(context.program, property, "json")) !== null && _b !== void 0 ? _b : property.name;
560
+ const jsonName = (_c = getProjectedName(context.program, property, "json")) !== null && _c !== void 0 ? _c : property.name;
558
561
  if (property.model) {
559
562
  getType(context, property.model);
560
563
  }
564
+ const type = getType(context, property.type);
561
565
  return {
562
566
  clientName: applyCasing(clientName, { casing: CASING }),
563
567
  restApiName: jsonName,
564
- type: getType(context, property.type),
568
+ type: newProperty.format ? { ...type, format: newProperty.format } : type,
565
569
  optional: property.optional,
566
570
  description: getDocStr(context.program, property),
567
571
  addedOn: getAddedOnVersion(context.program, property),
568
572
  readonly: isReadOnly(context.program, property) || isKey(context.program, property),
569
- clientDefaultValue: clientDefaultValue
573
+ clientDefaultValue: clientDefaultValue,
574
+ format: newProperty.format
570
575
  };
571
576
  }
572
577
  function getName(program, type) {
@@ -589,6 +594,7 @@ function getName(program, type) {
589
594
  }
590
595
  }
591
596
  function emitModel(context, type) {
597
+ var _a, _b;
592
598
  // Now we know it's a defined model
593
599
  const properties = [];
594
600
  let baseModel = undefined;
@@ -596,9 +602,27 @@ function emitModel(context, type) {
596
602
  baseModel = getType(context, type.baseModel);
597
603
  }
598
604
  const effectiveName = getEffectiveSchemaType(context.program, type).name;
599
- const modelName = effectiveName
600
- ? effectiveName
601
- : getName(context.program, type);
605
+ const overridedModelName = (_b = (_a = getProjectedName(context.program, type, "javascript")) !== null && _a !== void 0 ? _a : getProjectedName(context.program, type, "client")) !== null && _b !== void 0 ? _b : getFriendlyName(context.program, type);
606
+ let modelName = overridedModelName !== null && overridedModelName !== void 0 ? overridedModelName : (effectiveName ? effectiveName : getName(context.program, type));
607
+ if (!overridedModelName &&
608
+ type.templateMapper &&
609
+ type.templateMapper.args &&
610
+ type.templateMapper.args.length > 0 &&
611
+ getPagedResult(context.program, type)) {
612
+ modelName =
613
+ type.templateMapper.args
614
+ .map((it) => {
615
+ switch (it.kind) {
616
+ case "Model":
617
+ return it.name;
618
+ case "String":
619
+ return it.value;
620
+ default:
621
+ return "";
622
+ }
623
+ })
624
+ .join("") + "List";
625
+ }
602
626
  return {
603
627
  type: "model",
604
628
  name: modelName,
@@ -690,9 +714,11 @@ function emitCredentialUnion(cred_types) {
690
714
  return result;
691
715
  }
692
716
  function emitStdScalar(program, scalar) {
717
+ var _a, _b, _c;
718
+ const newScalar = applyEncoding(program, scalar, scalar);
693
719
  switch (scalar.name) {
694
720
  case "bytes":
695
- return { type: "byte-array", format: getEncode(program, scalar) };
721
+ return { type: "byte-array", format: newScalar.format };
696
722
  case "int8":
697
723
  case "int16":
698
724
  case "int32":
@@ -714,31 +740,55 @@ function emitStdScalar(program, scalar) {
714
740
  case "boolean":
715
741
  return { type: "boolean" };
716
742
  case "plainDate":
717
- return { type: "date" };
743
+ return { type: "datetime", format: (_a = newScalar.format) !== null && _a !== void 0 ? _a : "date" };
718
744
  case "utcDateTime":
719
- return { type: "datetime", format: "date-time" };
745
+ return { type: "datetime", format: newScalar.format };
720
746
  case "plainTime":
721
- return { type: "time" };
747
+ return { type: "datetime", format: (_b = newScalar.format) !== null && _b !== void 0 ? _b : "time" };
748
+ case "offsetDateTime":
749
+ return { type: "datetime", format: (_c = newScalar.format) !== null && _c !== void 0 ? _c : "rfc7231" };
722
750
  case "duration":
723
- return { type: "duration" };
751
+ return { type: "duration", format: newScalar.format };
724
752
  case "numeric":
725
753
  return {}; // Waiting on design for more precise type https://github.com/microsoft/cadl/issues/1260
726
754
  default:
727
755
  return {};
728
756
  }
729
757
  }
758
+ function applyEncoding(program, typespecType, target = {}) {
759
+ const encodeData = getEncode(program, typespecType);
760
+ const formatData = getFormat(program, typespecType);
761
+ formatData;
762
+ if (encodeData) {
763
+ const newTarget = { ...target };
764
+ const newType = emitScalar(program, encodeData.type);
765
+ // newTarget["type"] = newType["type"];
766
+ // If the target already has a format it takes priority. (e.g. int32)
767
+ newTarget["format"] = mergeFormatAndEncoding(newTarget.format, encodeData.encoding, newType["format"]);
768
+ return newTarget;
769
+ }
770
+ return target;
771
+ }
772
+ function mergeFormatAndEncoding(format, encoding, encodeAsFormat) {
773
+ switch (format) {
774
+ case undefined:
775
+ return encodeAsFormat !== null && encodeAsFormat !== void 0 ? encodeAsFormat : encoding;
776
+ case "date-time":
777
+ return encoding;
778
+ case "duration":
779
+ default:
780
+ return encodeAsFormat !== null && encodeAsFormat !== void 0 ? encodeAsFormat : encoding;
781
+ }
782
+ }
730
783
  function applyIntrinsicDecorators(program, type, result) {
731
- const newResult = { ...result };
784
+ let newResult = { ...result };
732
785
  const docStr = getDoc(program, type);
733
786
  const isString = isStringType(program, getPropertyType(type));
734
787
  const isNumeric = isNumericType(program, getPropertyType(type));
735
788
  if (!result.description && docStr) {
736
789
  newResult.description = docStr;
737
790
  }
738
- const formatStr = getFormat(program, type);
739
- if (isString && !result.format && formatStr) {
740
- newResult.format = formatStr;
741
- }
791
+ newResult = applyEncoding(program, type, newResult);
742
792
  const pattern = getPattern(program, type);
743
793
  if (isString && !result.pattern && pattern) {
744
794
  newResult.pattern = pattern;
@@ -771,7 +821,8 @@ function applyIntrinsicDecorators(program, type, result) {
771
821
  }
772
822
  function emitScalar(program, scalar) {
773
823
  let result = {};
774
- if (program.checker.isStdType(scalar)) {
824
+ const isStd = program.checker.isStdType(scalar);
825
+ if (isStd) {
775
826
  result = emitStdScalar(program, scalar);
776
827
  }
777
828
  else if (scalar.baseScalar) {
@@ -799,7 +850,7 @@ function emitListOrDict(context, type) {
799
850
  }
800
851
  return undefined;
801
852
  }
802
- function mapCadlType(context, type) {
853
+ function mapTypeSpecType(context, type) {
803
854
  switch (type.kind) {
804
855
  case "Number":
805
856
  return constantType(type.value, intOrFloat(type.value));
@@ -893,7 +944,7 @@ function emitType(context, type) {
893
944
  if (type.kind === "CredentialTypeUnion") {
894
945
  return emitCredentialUnion(type);
895
946
  }
896
- const builtinType = mapCadlType(context, type);
947
+ const builtinType = mapTypeSpecType(context, type);
897
948
  if (builtinType !== undefined) {
898
949
  // add in description elements for types derived from primitive types (SecureString, etc.)
899
950
  const doc = getDoc(context.program, type);
@@ -944,8 +995,32 @@ function emitOperationGroups(context, client, rlcModels) {
944
995
  operations: clientOperations
945
996
  });
946
997
  }
998
+ resolveConflictIfExist(operationGroups);
947
999
  return operationGroups;
948
1000
  }
1001
+ function resolveConflictIfExist(operationGroups) {
1002
+ if (operationGroups.length < 2) {
1003
+ return;
1004
+ }
1005
+ const nameSet = new Set();
1006
+ const hasConflict = operationGroups.some((g) => g.operations.some((op) => {
1007
+ if (nameSet.has(op.name)) {
1008
+ return true;
1009
+ }
1010
+ else {
1011
+ nameSet.add(op.name);
1012
+ return false;
1013
+ }
1014
+ }));
1015
+ if (!hasConflict) {
1016
+ return;
1017
+ }
1018
+ // Append operation group prefix
1019
+ operationGroups.forEach((g) => g.operations.forEach((op) => {
1020
+ op.oriName = op.name;
1021
+ op.name = `${g.propertyName}_${op.name}`;
1022
+ }));
1023
+ }
949
1024
  function getServerHelper(program, namespace) {
950
1025
  const servers = getServers(program, namespace);
951
1026
  if (servers === undefined) {
@@ -1097,7 +1172,8 @@ function emitClients(context, namespace, rlcModelsMap) {
1097
1172
  operationGroups: emitOperationGroups(context, client, rlcModels),
1098
1173
  url: server ? server.url : "",
1099
1174
  apiVersions: [],
1100
- rlcClientName: rlcModels ? getClientName(rlcModels) : client.name
1175
+ rlcClientName: rlcModels ? getClientName(rlcModels) : client.name,
1176
+ subfolder: ""
1101
1177
  };
1102
1178
  const emittedApiVersionParam = getApiVersionParameter(context);
1103
1179
  if (emittedApiVersionParam) {
@@ -1125,19 +1201,22 @@ function getNamespaces(context) {
1125
1201
  }
1126
1202
  return namespaces;
1127
1203
  }
1128
- export function emitCodeModel(context, rlcModelsMap, options = { casing: "snake" }) {
1129
- var _a, _b;
1204
+ export function emitCodeModel(dpgContext, rlcModelsMap, modularSourcesRoot, project, options = { casing: "snake" }) {
1205
+ var _a, _b, _c;
1130
1206
  CASING = (_a = options.casing) !== null && _a !== void 0 ? _a : CASING;
1131
- const dpgContext = createSdkContext(context);
1132
1207
  const clientNamespaceString = (_b = getClientNamespaceString(dpgContext)) === null || _b === void 0 ? void 0 : _b.toLowerCase();
1133
1208
  // Get types
1134
1209
  const codeModel = {
1135
- options: transformRLCOptions(context.options, dpgContext),
1210
+ options: (_c = dpgContext.rlcOptions) !== null && _c !== void 0 ? _c : {},
1211
+ modularOptions: { sourceRoot: modularSourcesRoot },
1136
1212
  namespace: clientNamespaceString,
1137
1213
  subnamespaceToClients: {},
1138
1214
  clients: [],
1139
- types: []
1215
+ types: [],
1216
+ project
1140
1217
  };
1218
+ typesMap.clear();
1219
+ simpleTypesMap.clear();
1141
1220
  const allModels = getAllModels(dpgContext);
1142
1221
  for (const model of allModels) {
1143
1222
  getType(dpgContext, model);
@@ -1145,9 +1224,17 @@ export function emitCodeModel(context, rlcModelsMap, options = { casing: "snake"
1145
1224
  for (const namespace of getNamespaces(dpgContext)) {
1146
1225
  if (namespace === clientNamespaceString) {
1147
1226
  codeModel.clients = emitClients(dpgContext, namespace, rlcModelsMap);
1227
+ codeModel.clients.length > 1 &&
1228
+ codeModel.clients.map((client) => {
1229
+ client["subfolder"] = normalizeName(client.name.replace("Client", ""), NameType.File);
1230
+ });
1148
1231
  }
1149
1232
  else {
1150
1233
  codeModel["subnamespaceToClients"][namespace] = emitClients(dpgContext, namespace, rlcModelsMap);
1234
+ codeModel["subnamespaceToClients"][namespace].length > 1 &&
1235
+ codeModel["subnamespaceToClients"][namespace].map((client) => {
1236
+ client["subfolder"] = normalizeName(client.name, NameType.File);
1237
+ });
1151
1238
  }
1152
1239
  }
1153
1240
  codeModel["types"] = [
@@ -1 +1 @@
1
- {"version":3,"file":"buildCodeModel.js","sourceRoot":"","sources":["../../../src/modular/buildCodeModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildCodeModel.js","sourceRoot":"","sources":["../../../src/modular/buildCodeModel.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { Project, SourceFile } from "ts-morph";
2
- import { Client, Operation } from "./modularCodeModel.js";
2
+ import { Client, ModularCodeModel, Operation } from "./modularCodeModel.js";
3
3
  import { SdkContext } from "../utils/interfaces.js";
4
4
  /**
5
5
  * This function creates a file under /api for each operation group.
6
6
  * If there is no operation group in the TypeSpec program, we create a single
7
7
  * file called operations.ts where all operations are generated.
8
8
  */
9
- export declare function buildOperationFiles(dpgContext: SdkContext, client: Client, project: Project, srcPath?: string, subfolder?: string, needUnexpectedHelper?: boolean): void;
9
+ export declare function buildOperationFiles(dpgContext: SdkContext, codeModel: ModularCodeModel, client: Client, needUnexpectedHelper?: boolean): SourceFile[];
10
10
  export declare function importModels(srcPath: string, sourceFile: SourceFile, project: Project, subfolder?: string): void;
11
11
  /**
12
12
  * This function generates the interfaces for each operation options
@@ -1 +1 @@
1
- {"version":3,"file":"buildOperations.d.ts","sourceRoot":"","sources":["../../../src/modular/buildOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAS/C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAG1D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,MAAc,EACvB,SAAS,GAAE,MAAW,EACtB,oBAAoB,GAAE,OAAc,QA4FrC;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,MAAW,QAqBvB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,QAwBvB"}
1
+ {"version":3,"file":"buildOperations.d.ts","sourceRoot":"","sources":["../../../src/modular/buildOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAS/C,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAG5E,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,gBAAgB,EAC3B,MAAM,EAAE,MAAM,EACd,oBAAoB,GAAE,OAAc,gBAiGrC;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,MAAW,QAuBvB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,QAwBvB"}