@azure-tools/typespec-ts 0.21.0 → 0.22.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 (34) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +2 -0
  4. package/dist/src/index.js.map +1 -1
  5. package/dist/src/lib.d.ts +1 -1
  6. package/dist/src/lib.d.ts.map +1 -1
  7. package/dist/src/modular/buildCodeModel.d.ts.map +1 -1
  8. package/dist/src/modular/buildCodeModel.js +65 -42
  9. package/dist/src/modular/buildCodeModel.js.map +1 -1
  10. package/dist/src/modular/buildOperations.d.ts +1 -0
  11. package/dist/src/modular/buildOperations.d.ts.map +1 -1
  12. package/dist/src/modular/buildOperations.js +25 -3
  13. package/dist/src/modular/buildOperations.js.map +1 -1
  14. package/dist/src/modular/buildProjectFiles.js +7 -7
  15. package/dist/src/modular/buildProjectFiles.js.map +1 -1
  16. package/dist/src/modular/buildSerializeUtils.d.ts +14 -0
  17. package/dist/src/modular/buildSerializeUtils.d.ts.map +1 -0
  18. package/dist/src/modular/buildSerializeUtils.js +526 -0
  19. package/dist/src/modular/buildSerializeUtils.js.map +1 -0
  20. package/dist/src/modular/helpers/operationHelpers.d.ts +27 -4
  21. package/dist/src/modular/helpers/operationHelpers.d.ts.map +1 -1
  22. package/dist/src/modular/helpers/operationHelpers.js +91 -22
  23. package/dist/src/modular/helpers/operationHelpers.js.map +1 -1
  24. package/dist/src/modular/modularCodeModel.d.ts +7 -0
  25. package/dist/src/modular/modularCodeModel.d.ts.map +1 -1
  26. package/dist/tsconfig.tsbuildinfo +1 -1
  27. package/package.json +26 -20
  28. package/src/index.ts +2 -0
  29. package/src/modular/buildCodeModel.ts +91 -43
  30. package/src/modular/buildOperations.ts +59 -3
  31. package/src/modular/buildProjectFiles.ts +8 -8
  32. package/src/modular/buildSerializeUtils.ts +740 -0
  33. package/src/modular/helpers/operationHelpers.ts +135 -28
  34. package/src/modular/modularCodeModel.ts +7 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## 0.22.0 (2024-02-06)
2
+
3
+ - [Feature] Upgrade TypeSpec compiler to 0.52.0. Please refer to [#2262](https://github.com/Azure/autorest.typescript/pull/2262).
4
+ - [Feature] Add serialize util for polymorphic base and named union. Please refer to [#2169](https://github.com/Azure/autorest.typescript/pull/2169).
5
+ - [Feature] Support scalar type being used in body type. Please refer to [#2275](https://github.com/Azure/autorest.typescript/pull/2275).
6
+ - [Feature] Dependencies update. Please refer to [#2282](https://github.com/Azure/autorest.typescript/pull/2282) and [#2174](https://github.com/Azure/autorest.typescript/pull/2174) and [#2248](https://github.com/Azure/autorest.typescript/pull/2248).
7
+ - [BugFix] Fix reserved parameter name being used as mapper identifier in Autorest codegen. Please refer to [#2205](https://github.com/Azure/autorest.typescript/pull/2205).
8
+ - [BugFix] Fix union of KeyCredential and TokenCredential in RLC client. Please refer to [#2195](https://github.com/Azure/autorest.typescript/pull/2195).
9
+ - [BugFix] Fix optional or nullable property being used in serialize utils. Please refer to [#2283](https://github.com/Azure/autorest.typescript/pull/2283).
10
+
1
11
  ## 0.21.0 (2024-01-26)
2
12
 
3
13
  - [Feature] Upgrade TypeSpec compiler to 0.51.0。 Please refer to pr [#2203](https://github.com/Azure/autorest.typescript/pull/2203).
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAkC1D,OAAO,EAAE,OAAO,EAAc,MAAM,UAAU,CAAC;AAwB/C,cAAc,UAAU,CAAC;AAEzB,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,iBA2PjD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,QA+EtD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAkC1D,OAAO,EAAE,OAAO,EAAc,MAAM,UAAU,CAAC;AAyB/C,cAAc,UAAU,CAAC;AAEzB,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,iBA4PjD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,QA+EtD"}
package/dist/src/index.js CHANGED
@@ -17,6 +17,7 @@ import { buildClassicalClient } from "./modular/buildClassicalClient.js";
17
17
  import { buildClassicOperationFiles } from "./modular/buildClassicalOperationGroups.js";
18
18
  import { emitPackage, emitTsConfig } from "./modular/buildProjectFiles.js";
19
19
  import { getRLCClients } from "./utils/clientUtils.js";
20
+ import { buildSerializeUtils } from "./modular/buildSerializeUtils.js";
20
21
  import { join } from "path";
21
22
  import { transformRLCOptions } from "./transform/transfromRLCOptions.js";
22
23
  import { getClientName } from "@azure-tools/rlc-common";
@@ -109,6 +110,7 @@ export async function $onEmit(context) {
109
110
  buildModels(modularCodeModel, subClient);
110
111
  buildModelsOptions(modularCodeModel, subClient);
111
112
  const hasClientUnexpectedHelper = (_c = needUnexpectedHelper.get(subClient.rlcClientName)) !== null && _c !== void 0 ? _c : false;
113
+ buildSerializeUtils(modularCodeModel);
112
114
  buildPagingTypes(modularCodeModel, subClient);
113
115
  buildModularPagingHelpers(modularCodeModel, subClient, hasClientUnexpectedHelper, isMultiClients);
114
116
  buildOperationFiles(dpgContext, modularCodeModel, subClient, hasClientUnexpectedHelper);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,IAAI,sBAAsB,EAC7C,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,WAAW,EAEX,mBAAmB,EAEnB,YAAY,EACb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EACL,gBAAgB,EAChB,kBAAkB,IAAI,yBAAyB,EAChD,MAAM,+BAA+B,CAAC;AAEvC,cAAc,UAAU,CAAC;AAEzB,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAoB;IAChD,oBAAoB;IACpB,MAAM,OAAO,GAAY,OAAO,CAAC,OAAO,CAAC;IACzC,MAAM,cAAc,GAAe,OAAO,CAAC,OAAO,CAAC;IACnD,MAAM,UAAU,GAAG,gBAAgB,CACjC,OAAO,EACP,0BAA0B,CACb,CAAC;IAChB,MAAM,oBAAoB,GAAyB,IAAI,GAAG,EAAmB,CAAC;IAC9E,MAAM,yBAAyB,GAA0B,IAAI,GAAG,EAG7D,CAAC;IACJ,MAAM,aAAa,GAAe,EAAE,CAAC;IACrC,IAAI,gBAAkC,CAAC;IACvC,gEAAgE;IAChE,MAAM,gBAAgB,EAAE,CAAC;IACzB,0BAA0B;IAC1B,MAAM,cAAc,EAAE,CAAC;IACvB,0BAA0B;IAC1B,MAAM,kBAAkB,EAAE,CAAC;IAC3B,8BAA8B;IAC9B,MAAM,sBAAsB,EAAE,CAAC;IAC/B,sCAAsC;IACtC,MAAM,uBAAuB,EAAE,CAAC;IAEhC,KAAK,UAAU,gBAAgB;QAC7B,MAAM,oBAAoB,GACxB,MAAM,sBAAsB,EAAE,CAAC;QACjC,UAAU,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACvD,MAAM,OAAO,GAAe,mBAAmB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAC5E,UAAU,CAAC,UAAU,GAAG,OAAO,CAAC;IAClC,CAAC;IAED,KAAK,UAAU,sBAAsB;;QACnC,MAAM,WAAW,GAAG,MAAA,OAAO,CAAC,gBAAgB,mCAAI,EAAE,CAAC;QACnD,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACzD,IAAI,MAAM,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE;YACjD,WAAW,GAAG,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;SAC7D;QACD,OAAO;YACL,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,WAAW;YACxB,aAAa,EAAE,IAAI,CACjB,WAAW,EACX,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,mEAAmE;aAClH;YACD,iBAAiB,EAAE,cAAc,CAAC,gBAAgB;gBAChD,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,SAAS;SACd,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,cAAc;;QAC3B,MAAM,OAAO,CAAC,QAAQ,CACpB,MAAA,MAAA,MAAA,UAAU,CAAC,oBAAoB,0CAAE,iBAAiB,mCAChD,MAAA,UAAU,CAAC,oBAAoB,0CAAE,aAAa,mCAC9C,EAAE,CACL,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,kBAAkB;;QAC/B,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QAC1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAC9D,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9B,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC9D,oBAAoB,CAAC,GAAG,CACtB,aAAa,CAAC,SAAS,CAAC,EACxB,mBAAmB,CAAC,SAAS,CAAC,CAC/B,CAAC;YAEF,MAAM,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACrC,MAAM,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;YACvE,MAAM,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC;YACnE,MAAM,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;YAC5D,MAAM,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;YACpE,MAAM,oBAAoB,CAAC,OAAO,EAAE,uBAAuB,EAAE,SAAS,CAAC,CAAC;YACxE,MAAM,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;YAC/D,MAAM,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;YAC5D,MAAM,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC;YACnE,MAAM,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;YACvE,MAAM,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC;YACnE,MAAM,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC;YACrE,MAAM,oBAAoB,CACxB,OAAO,EACP,YAAY,EACZ,SAAS,EACT,MAAA,UAAU,CAAC,oBAAoB,0CAAE,WAAW,CAC7C,CAAC;SACH;IACH,CAAC;IAED,KAAK,UAAU,sBAAsB;;QACnC,IAAI,cAAc,CAAC,gBAAgB,EAAE;YACnC,0CAA0C;YAC1C,MAAM,kBAAkB,GACtB,MAAA,MAAA,UAAU,CAAC,oBAAoB,0CAAE,iBAAiB,mCAAI,KAAK,CAAC;YAC9D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;YAC9B,gBAAgB,GAAG,aAAa,CAC9B,UAAU,EACV,yBAAyB,EACzB,kBAAkB,EAClB,OAAO,EACP;gBACE,MAAM,EAAE,OAAO;aAChB,CACF,CAAC;YACF,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAC5C,GAAG,kBAAkB,WAAW,EAChC,EAAE,EACF;gBACE,SAAS,EAAE,IAAI;aAChB,CACF,CAAC;YAEF,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3D,KAAK,MAAM,SAAS,IAAI,gBAAgB,CAAC,OAAO,EAAE;gBAChD,WAAW,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;gBACzC,kBAAkB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;gBAChD,MAAM,yBAAyB,GAC7B,MAAA,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,mCAAI,KAAK,CAAC;gBAC7D,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;gBACtC,gBAAgB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;gBAC9C,yBAAyB,CACvB,gBAAgB,EAChB,SAAS,EACT,yBAAyB,EACzB,cAAc,CACf,CAAC;gBACF,mBAAmB,CACjB,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,yBAAyB,CAC1B,CAAC;gBACF,kBAAkB,CAAC,UAAU,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;gBAC5D,qBAAqB,CAAC,gBAAgB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC7D,IAAI,MAAA,UAAU,CAAC,UAAU,0CAAE,eAAe,EAAE;oBAC1C,qBAAqB,CAAC,gBAAgB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;iBAC3D;qBAAM;oBACL,qBAAqB,CAAC,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE;wBACxD,WAAW,EAAE,IAAI;qBAClB,CAAC,CAAC;iBACJ;gBAED,oBAAoB,CAAC,UAAU,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;gBAC9D,0BAA0B,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;gBACxD,qBAAqB,CAAC,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE;oBAC5D,WAAW,EAAE,IAAI;oBACjB,aAAa,EAAE,IAAI;iBACpB,CAAC,CAAC;gBACH,IAAI,cAAc,EAAE;oBAClB,uBAAuB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;iBACtD;gBACD,cAAc,CAAC,gBAAgB,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;aAC5D;YAED,sBAAsB,CAAC,OAAO,CAAC,CAAC;YAEhC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,EAAE;gBAC3C,MAAM,oBAAoB,CACxB,OAAO,EACP,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,EACjE,gBAAuB,CACxB,CAAC;gBACF,6EAA6E;aAC9E;SACF;IACH,CAAC;IAED,KAAK,UAAU,uBAAuB;;QACpC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;YACnD,OAAO;SACR;QACD,MAAM,SAAS,GAAa,aAAa,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,UAAW,CAAC;QACtC,MAAM,SAAS,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,IAAI,CAAC;QACzC,oBAAoB;QACpB,MAAM,cAAc,GAAG,MAAM,UAAU,CACrC,IAAI,CAAC,MAAA,MAAA,UAAU,CAAC,oBAAoB,0CAAE,WAAW,mCAAI,EAAE,EAAE,cAAc,CAAC,CACzE,CAAC;QACF,MAAM,sBAAsB,GAC1B,MAAM,CAAC,gBAAgB,KAAK,IAAI;YAChC,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS,IAAI,CAAC,cAAc,CAAC,CAAC;QAE7D,IAAI,sBAAsB,EAAE;YAC1B,MAAM,cAAc,GAAG;gBACrB,iBAAiB;gBACjB,uBAAuB;gBACvB,eAAe;aAChB,CAAC;YACF,IAAI,SAAS,EAAE;gBACb,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;gBAC5B,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACtC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACpC;YACD,gCAAgC;YAChC,MAAM,oBAAoB,CACxB,OAAO,EACP,cAAc,EACd,SAAS,EACT,MAAA,UAAU,CAAC,oBAAoB,0CAAE,WAAW,CAC7C,CAAC;YAEF,IAAI,MAAM,CAAC,gBAAgB,EAAE;gBAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC9B,WAAW,CACT,OAAO,EACP,MAAA,MAAA,UAAU,CAAC,oBAAoB,0CAAE,WAAW,mCAAI,EAAE,EAClD,gBAAgB,CACjB,CAAC;gBACF,YAAY,CACV,OAAO,EACP,MAAA,MAAA,UAAU,CAAC,oBAAoB,0CAAE,WAAW,mCAAI,EAAE,EAClD,gBAAgB,CACjB,CAAC;gBACF,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,EAAE;oBAC3C,MAAM,oBAAoB,CACxB,OAAO,EACP,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,EACjE,gBAAuB,CACxB,CAAC;iBACH;aACF;SACF;QAED,+BAA+B;QAC/B,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,UAAU,CAC5C,IAAI,CAAC,MAAA,MAAA,UAAU,CAAC,oBAAoB,0CAAE,WAAW,mCAAI,EAAE,EAAE,MAAM,CAAC,CACjE,CAAC;QACF,MAAM,kBAAkB,GACtB,MAAM,CAAC,YAAY,KAAK,IAAI;YAC5B,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,kBAAkB,IAAI,SAAS,EAAE;YACnC,MAAM,oBAAoB,CACxB,OAAO,EACP;gBACE,oBAAoB;gBACpB,YAAY;gBACZ,mBAAmB;gBACnB,uBAAuB;gBACvB,eAAe;aAChB,EACD,SAAS,EACT,MAAA,UAAU,CAAC,oBAAoB,0CAAE,WAAW,CAC7C,CAAC;SACH;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,aAAa,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9D,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,oBAAoB,EAAE,EAAE;QAChD,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;IAChE,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,oBAAoB,EAAE,EAAE;QACrE,MAAM,UAAU,GAAG,oBAAoB,CAAC,oBAAoB;aACzD,qBAAqB,EAAE;aACvB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;;YACf,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,SAAS,EAAE,0CAAE,OAAO,EAAE,CAAC;YACzC,OAAO,CACL,IAAI,KAAK,UAAU,CAAC,eAAe;gBACnC,IAAI,KAAK,UAAU,CAAC,oBAAoB,CACzC,CAAC;QACJ,CAAC,CAAC,CAAC;QACL,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,gBAAgB,CAAC,OAAO,CAAC,CAAC,oBAAoB,EAAE,EAAE;QAChD,MAAM,UAAU,GAAG,oBAAoB,CAAC,oBAAoB;aACzD,qBAAqB,EAAE;aACvB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;;YACf,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,SAAS,EAAE,0CAAE,OAAO,EAAE,CAAC;YACzC,OAAO,IAAI,KAAK,UAAU,CAAC,eAAe,CAAC;QAC7C,CAAC,CAAC,CAAC;QACL,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,WAAW,EAAE,CAAC;YACtD,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,wBAAwB;QACxB,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1D,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC,CAAC,wCAAwC;QAC5C,uDAAuD;QACvD,MAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YACtD,OAAO,CACL,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM;gBACpC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CACrC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,eAAe,GAAa,EAAE,CAAC;QACrC,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE;YACxC,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YACzC,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBACrB,8BAA8B;gBAC9B,MAAM,kBAAkB,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC;gBAE7D,uCAAuC;gBACvC,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,EAAE;oBAC/C,qDAAqD;oBACrD,MAAM,eAAe,GAAG,iBAAiB;yBACtC,eAAe,EAAE;yBACjB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE;;wBACb,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC;wBACpC,IACE,SAAS;4BACT,SAAS,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;4BACzC,EAAE,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAClC;4BACA,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;yBAC3C;wBACD,OAAO,CACL,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;4BAC1C,EAAE,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;4BAClC,CAAA,MAAA,EAAE,CAAC,YAAY,EAAE,0CAAE,OAAO,EAAE,MAAK,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CACnD,CAAC;oBACJ,CAAC,CAAC,CAAC;oBACL,8BAA8B;oBAC9B,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/C,CAAC,CAAC,CAAC;aACJ;SACF;QACD,oBAAoB,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/src/lib.d.ts CHANGED
@@ -64,7 +64,7 @@ export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
64
64
  "unable-serialized-type": {
65
65
  readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
66
66
  };
67
- }, RLCOptions>;
67
+ }, RLCOptions, never>;
68
68
  export declare const reportDiagnostic: <C extends "security-service-namespace" | "more-than-one-service" | "no-service-defined" | "resource-namespace" | "missing-path-param" | "duplicate-body-types" | "duplicate-header" | "duplicate-example" | "invalid-schema" | "union-null" | "union-unsupported" | "discriminator" | "discriminator-value" | "invalid-default" | "no-credential-scopes" | "nullable-required-header" | "no-paging-items-defined" | "decimal-to-number" | "unable-serialized-type", M extends keyof {
69
69
  "security-service-namespace": {
70
70
  readonly default: "Cannot add security details to a namespace other than the service namespace.";
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,cAAc,EACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,eAAO,MAAM,gBAAgB,EAAE,cAAc,CAAC,UAAU,CAuEvD,CAAC;AAyIF,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAAgC,CAAC;AAClD,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAS,CAAC;AAEzC,eAAO,MAAM,yBAAyB,EAAE,OASvC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,OAKjC,CAAC"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,cAAc,EACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,eAAO,MAAM,gBAAgB,EAAE,cAAc,CAAC,UAAU,CAuEvD,CAAC;AAyIF,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAAgC,CAAC;AAClD,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAS,CAAC;AAEzC,eAAO,MAAM,yBAAyB,EAAE,OASvC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,OAKjC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildCodeModel.d.ts","sourceRoot":"","sources":["../../../src/modular/buildCodeModel.ts"],"names":[],"mappings":"AAsEA,OAAO,EACL,gBAAgB,EASjB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EACL,QAAQ,EAIT,MAAM,yBAAyB,CAAC;AAUjC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AA0BnC,MAAM,WAAW,cAAc;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAopDD,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EACnC,kBAAkB,EAAE,MAAM,EAC1B,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;IAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAA;CAAwB,GAC3D,gBAAgB,CAsDlB"}
1
+ {"version":3,"file":"buildCodeModel.d.ts","sourceRoot":"","sources":["../../../src/modular/buildCodeModel.ts"],"names":[],"mappings":"AAuEA,OAAO,EACL,gBAAgB,EASjB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EACL,QAAQ,EAIT,MAAM,yBAAyB,CAAC;AAUjC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AA0BnC,MAAM,WAAW,cAAc;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAmsDD,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EACnC,kBAAkB,EAAE,MAAM,EAC1B,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;IAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAA;CAAwB,GAC3D,gBAAgB,CAsDlB"}
@@ -1,5 +1,5 @@
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, isStringType, getPropertyType, isNumericType, getMinItems, getMaxItems, listServices, getProjectedName, isNullType, getEncode, isTemplateDeclarationOrInstance } from "@typespec/compiler";
2
+ import { getDoc, getFriendlyName, getMaxLength, getMaxValue, getMinLength, getMinValue, getPattern, getSummary, getVisibility, ignoreDiagnostics, isErrorModel, isNeverType, getEffectiveModelType, getDiscriminator, isStringType, getPropertyType, isNumericType, getMinItems, getMaxItems, listServices, getProjectedName, isNullType, getEncode, isTemplateDeclarationOrInstance, UsageFlags } from "@typespec/compiler";
3
3
  import { getAuthentication, getHeaderFieldName, getPathParamName, getQueryParamName, getServers, isStatusCode, getHttpOperation, isSharedRoute } from "@typespec/http";
4
4
  import { getAddedOnVersions } from "@typespec/versioning";
5
5
  import { listClients, listOperationGroups, listOperationsInOperationGroup, isApiVersion, getDefaultApiVersion, getClientNamespaceString, getSdkUnion, getAllModels, getSdkBuiltInType, getClientType } from "@azure-tools/typespec-client-generator-core";
@@ -52,13 +52,14 @@ function isDiscriminator(context, type, propertyName) {
52
52
  }
53
53
  return false;
54
54
  }
55
- function handleDiscriminator(context, type) {
55
+ function handleDiscriminator(context, type, usage) {
56
56
  const discriminator = getDiscriminator(context.program, type);
57
57
  if (discriminator) {
58
58
  const discriminatorValues = [];
59
59
  const aliases = [];
60
+ const discriminatedSubtypes = [];
60
61
  for (const childModel of type.derivedModels) {
61
- const modelType = getType(context, childModel);
62
+ const modelType = getType(context, childModel, { usage });
62
63
  aliases.push(modelType.name);
63
64
  for (const property of modelType.properties) {
64
65
  if (property.restApiName === discriminator.propertyName) {
@@ -66,6 +67,7 @@ function handleDiscriminator(context, type) {
66
67
  discriminatorValues.push(modelType.discriminatorValue);
67
68
  }
68
69
  }
70
+ discriminatedSubtypes.push(modelType);
69
71
  }
70
72
  const discriminatorInfo = {
71
73
  description: discriminatorValues.length > 0
@@ -77,7 +79,8 @@ function handleDiscriminator(context, type) {
77
79
  name: discriminator.propertyName,
78
80
  isPolymorphic: true,
79
81
  isDiscriminator: true,
80
- aliases
82
+ aliases,
83
+ discriminatedSubtypes
81
84
  };
82
85
  return discriminatorInfo;
83
86
  }
@@ -117,9 +120,9 @@ function getEffectiveSchemaType(program, type) {
117
120
  }
118
121
  return type;
119
122
  }
120
- function processModelProperties(context, newValue, model) {
123
+ function processModelProperties(context, newValue, model, usage) {
121
124
  // need to do properties after insertion to avoid infinite recursion
122
- const discriminatorInfo = handleDiscriminator(context, model);
125
+ const discriminatorInfo = handleDiscriminator(context, model, usage);
123
126
  let hasDiscriminator = false;
124
127
  for (const property of model.properties.values()) {
125
128
  if (!isSchemaProperty(context.program, property)) {
@@ -131,7 +134,7 @@ function processModelProperties(context, newValue, model) {
131
134
  if (newValue.properties === undefined || newValue.properties === null) {
132
135
  newValue.properties = [];
133
136
  }
134
- let newProperty = emitProperty(context, property);
137
+ let newProperty = emitProperty(context, property, usage);
135
138
  if (isDiscriminator(context, model, property.name)) {
136
139
  hasDiscriminator = true;
137
140
  newProperty = {
@@ -146,10 +149,18 @@ function processModelProperties(context, newValue, model) {
146
149
  if (!hasDiscriminator) {
147
150
  newValue.properties.push({ ...discriminatorInfo });
148
151
  }
149
- newValue.alias = `${newValue.name}Parent`;
150
- newValue.isPolyBaseModel = true;
151
- discriminatorInfo === null || discriminatorInfo === void 0 ? void 0 : discriminatorInfo.aliases.push(`${newValue.alias}`);
152
- newValue.aliasType = discriminatorInfo === null || discriminatorInfo === void 0 ? void 0 : discriminatorInfo.aliases.join(" | ");
152
+ // we don't need to add the discriminator info if it's an anonymous model
153
+ // because it's impossible to have a anonymous model as the polymorphic base in typespec
154
+ // the only possibility is the anonymous model is an alias for an union type which has already been taken care of in the combined types.
155
+ if (newValue.name) {
156
+ discriminatorInfo === null || discriminatorInfo === void 0 ? void 0 : discriminatorInfo.aliases.push(`${newValue.name}`);
157
+ newValue.alias = `${newValue.name}`;
158
+ newValue.name = `${newValue.name}Union`;
159
+ newValue.aliasType = discriminatorInfo === null || discriminatorInfo === void 0 ? void 0 : discriminatorInfo.aliases.join(" | ");
160
+ newValue.types = discriminatorInfo === null || discriminatorInfo === void 0 ? void 0 : discriminatorInfo.discriminatedSubtypes;
161
+ newValue.isPolymorphicBaseModel = true;
162
+ newValue.discriminator = discriminatorInfo.restApiName;
163
+ }
153
164
  }
154
165
  }
155
166
  function isEmptyAnonymousModel(type) {
@@ -180,7 +191,7 @@ function getType(context, type, options = {}) {
180
191
  newValue = { type: "any" };
181
192
  }
182
193
  else {
183
- newValue = emitType(context, type);
194
+ newValue = emitType(context, type, options.usage);
184
195
  }
185
196
  if (type.kind === "ModelProperty" || type.kind === "Scalar") {
186
197
  newValue = applyEncoding(context.program, type, newValue);
@@ -192,13 +203,13 @@ function getType(context, type, options = {}) {
192
203
  if (type.kind === "Union") {
193
204
  for (const t of type.variants.values()) {
194
205
  if (t.type.kind === "Model") {
195
- processModelProperties(context, newValue, t.type);
206
+ processModelProperties(context, newValue, t.type, options.usage);
196
207
  }
197
208
  }
198
209
  }
199
210
  if (type.kind === "Model") {
200
211
  // need to do properties after insertion to avoid infinite recursion
201
- processModelProperties(context, newValue, type);
212
+ processModelProperties(context, newValue, type, options.usage);
202
213
  }
203
214
  }
204
215
  else {
@@ -255,7 +266,8 @@ function emitBodyParameter(context, httpOperation) {
255
266
  contentTypes = ["application/json"];
256
267
  }
257
268
  const type = getType(context, getBodyType(context.program, httpOperation), {
258
- disableEffectiveModel: true
269
+ disableEffectiveModel: true,
270
+ usage: UsageFlags.Input
259
271
  });
260
272
  return {
261
273
  contentTypes,
@@ -269,7 +281,9 @@ function emitBodyParameter(context, httpOperation) {
269
281
  function emitParameter(context, parameter, implementation) {
270
282
  var _a;
271
283
  const base = emitParamBase(context.program, parameter.param);
272
- let type = getType(context, parameter.param.type);
284
+ let type = getType(context, parameter.param.type, {
285
+ usage: UsageFlags.Input
286
+ });
273
287
  let clientDefaultValue = undefined;
274
288
  if (parameter.name.toLowerCase() === "content-type" &&
275
289
  type["type"] === "constant") {
@@ -349,7 +363,7 @@ function emitResponseHeaders(context, headers) {
349
363
  }
350
364
  for (const [key, value] of Object.entries(headers)) {
351
365
  retval.push({
352
- type: getType(context, value.type),
366
+ type: getType(context, value.type, { usage: UsageFlags.Output }),
353
367
  restApiName: key
354
368
  });
355
369
  }
@@ -370,10 +384,12 @@ function emitResponse(context, response, innerResponse) {
370
384
  if (innerResponse.body.type.kind === "Model" &&
371
385
  candidate.find((e) => e === originType.name)) {
372
386
  const modelType = getEffectiveSchemaType(context.program, originType);
373
- type = getType(context, modelType);
387
+ type = getType(context, modelType, { usage: UsageFlags.Output });
374
388
  }
375
389
  else {
376
- type = getType(context, innerResponse.body.type);
390
+ type = getType(context, innerResponse.body.type, {
391
+ usage: UsageFlags.Output
392
+ });
377
393
  }
378
394
  }
379
395
  const statusCodes = [];
@@ -591,7 +607,7 @@ function isReadOnly(program, type) {
591
607
  return false;
592
608
  }
593
609
  }
594
- function emitProperty(context, property) {
610
+ function emitProperty(context, property, usage) {
595
611
  var _a, _b, _c;
596
612
  const newProperty = applyEncoding(context.program, property, property);
597
613
  let clientDefaultValue = undefined;
@@ -609,9 +625,9 @@ function emitProperty(context, property) {
609
625
  const clientName = property.name;
610
626
  const jsonName = (_c = getProjectedName(context.program, property, "json")) !== null && _c !== void 0 ? _c : property.name;
611
627
  if (property.model) {
612
- getType(context, property.model);
628
+ getType(context, property.model, { usage });
613
629
  }
614
- const type = getType(context, property.type);
630
+ const type = getType(context, property.type, { usage });
615
631
  return {
616
632
  clientName: applyCasing(clientName, { casing: CASING }),
617
633
  restApiName: jsonName,
@@ -643,13 +659,13 @@ function getName(program, type) {
643
659
  }
644
660
  }
645
661
  }
646
- function emitModel(context, type) {
662
+ function emitModel(context, type, usage) {
647
663
  var _a, _b, _c;
648
664
  // Now we know it's a defined model
649
665
  const properties = [];
650
666
  let baseModel = undefined;
651
667
  if (type.baseModel) {
652
- baseModel = getType(context, type.baseModel);
668
+ baseModel = getType(context, type.baseModel, { usage });
653
669
  }
654
670
  const effectiveName = getEffectiveSchemaType(context.program, type).name;
655
671
  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);
@@ -688,14 +704,15 @@ function emitModel(context, type) {
688
704
  name: modelName,
689
705
  description: getDocStr(context.program, type),
690
706
  parents: baseModel ? [baseModel] : [],
691
- discriminatedSubtypes: {},
707
+ discriminatedSubtypes: [],
692
708
  properties: properties,
693
709
  addedOn: getAddedOnVersion(context.program, type),
694
710
  snakeCaseName: modelName
695
711
  ? applyCasing(modelName, { casing: CASING })
696
712
  : modelName,
697
713
  base: modelName === "" ? "json" : "dpg",
698
- isCoreErrorType: isAzureCoreErrorType(type)
714
+ isCoreErrorType: isAzureCoreErrorType(type),
715
+ usage
699
716
  };
700
717
  }
701
718
  function intOrFloat(value) {
@@ -907,27 +924,27 @@ function emitScalar(program, scalar) {
907
924
  }
908
925
  return applyIntrinsicDecorators(program, scalar, result);
909
926
  }
910
- function emitListOrDict(context, type) {
927
+ function emitListOrDict(context, type, usage) {
911
928
  if (type.indexer !== undefined) {
912
929
  if (!isNeverType(type.indexer.key)) {
913
930
  const name = type.indexer.key.name;
914
931
  if (name === "string") {
915
932
  return {
916
933
  type: "dict",
917
- elementType: getType(context, type.indexer.value)
934
+ elementType: getType(context, type.indexer.value, { usage })
918
935
  };
919
936
  }
920
937
  else if (name === "integer") {
921
938
  return {
922
939
  type: "list",
923
- elementType: getType(context, type.indexer.value)
940
+ elementType: getType(context, type.indexer.value, { usage })
924
941
  };
925
942
  }
926
943
  }
927
944
  }
928
945
  return undefined;
929
946
  }
930
- function mapTypeSpecType(context, type) {
947
+ function mapTypeSpecType(context, type, usage) {
931
948
  switch (type.kind) {
932
949
  case "Number":
933
950
  return constantType(type.value, intOrFloat(type.value));
@@ -936,10 +953,10 @@ function mapTypeSpecType(context, type) {
936
953
  case "Boolean":
937
954
  return constantType(type.value, "boolean");
938
955
  case "Model":
939
- return emitListOrDict(context, type);
956
+ return emitListOrDict(context, type, usage);
940
957
  }
941
958
  }
942
- function emitUnion(context, type) {
959
+ function emitUnion(context, type, usage) {
943
960
  var _a, _b;
944
961
  const sdkType = getSdkUnion(context, type);
945
962
  const nonNullOptions = getNonNullOptions(type);
@@ -950,7 +967,7 @@ function emitUnion(context, type) {
950
967
  const unionName = type.name;
951
968
  const discriminatorPropertyName = (_a = getDiscriminator(context.program, type)) === null || _a === void 0 ? void 0 : _a.propertyName;
952
969
  const variantTypes = sdkType.values.map((x) => {
953
- const valueType = getType(context, x.__raw);
970
+ const valueType = getType(context, x.__raw, { usage });
954
971
  if (valueType.properties && discriminatorPropertyName) {
955
972
  valueType.discriminatorValue = valueType.properties.filter((p) => p.clientName === discriminatorPropertyName)[0].type.value;
956
973
  }
@@ -964,6 +981,7 @@ function emitUnion(context, type) {
964
981
  type: "combined",
965
982
  types: variantTypes,
966
983
  xmlMetadata: {},
984
+ usage,
967
985
  discriminator: discriminatorPropertyName,
968
986
  alias: unionName === "" || unionName === undefined ? undefined : unionName,
969
987
  aliasType: unionName === "" || unionName === undefined
@@ -981,7 +999,8 @@ function emitUnion(context, type) {
981
999
  valueType: emitSimpleType(context, sdkType.valueType),
982
1000
  values: sdkType.values.map((x) => emitEnumMember(context, x)),
983
1001
  isFixed: sdkType.isFixed,
984
- xmlMetadata: {}
1002
+ xmlMetadata: {},
1003
+ usage
985
1004
  };
986
1005
  }
987
1006
  else if (isStringOrNumberKind(context.program, sdkType.kind) &&
@@ -1000,7 +1019,10 @@ function emitUnion(context, type) {
1000
1019
  };
1001
1020
  }
1002
1021
  else {
1003
- return { ...emitType(context, sdkType.__raw), nullable: sdkType.nullable };
1022
+ return {
1023
+ ...emitType(context, sdkType.__raw, usage),
1024
+ nullable: sdkType.nullable
1025
+ };
1004
1026
  }
1005
1027
  }
1006
1028
  function isStringOrNumberKind(program, kind) {
@@ -1054,14 +1076,14 @@ function emitSimpleType(context, type) {
1054
1076
  format: undefined
1055
1077
  };
1056
1078
  }
1057
- function emitType(context, type) {
1079
+ function emitType(context, type, usage) {
1058
1080
  if (type.kind === "Credential") {
1059
1081
  return emitCredential(type.scheme);
1060
1082
  }
1061
1083
  if (type.kind === "CredentialTypeUnion") {
1062
1084
  return emitCredentialUnion(type);
1063
1085
  }
1064
- const builtinType = mapTypeSpecType(context, type);
1086
+ const builtinType = mapTypeSpecType(context, type, usage);
1065
1087
  if (builtinType !== undefined) {
1066
1088
  // add in description elements for types derived from primitive types (SecureString, etc.)
1067
1089
  const doc = getDoc(context.program, type);
@@ -1074,11 +1096,11 @@ function emitType(context, type) {
1074
1096
  case "Intrinsic":
1075
1097
  return { type: type.name };
1076
1098
  case "Model":
1077
- return emitModel(context, type);
1099
+ return emitModel(context, type, usage);
1078
1100
  case "Scalar":
1079
1101
  return emitScalar(context.program, type);
1080
1102
  case "Union":
1081
- return emitUnion(context, type);
1103
+ return emitUnion(context, type, usage);
1082
1104
  case "UnionVariant":
1083
1105
  return {};
1084
1106
  case "Enum":
@@ -1257,7 +1279,7 @@ function emitCredentialParam(context, namespace) {
1257
1279
  };
1258
1280
  }
1259
1281
  return {
1260
- type: getType(context, type),
1282
+ type: getType(context, type, { usage: UsageFlags.Input }),
1261
1283
  optional: false,
1262
1284
  description: "Credential needed for the client to connect to Azure.",
1263
1285
  clientName: "credential",
@@ -1325,7 +1347,8 @@ function emitClients(context, namespace, rlcModelsMap) {
1325
1347
  url: server ? server.url : "",
1326
1348
  apiVersions: [],
1327
1349
  rlcClientName: rlcModels ? getClientName(rlcModels) : client.name,
1328
- subfolder: ""
1350
+ subfolder: "",
1351
+ rlcHelperDetails: rlcModels && rlcModels.helperDetails ? rlcModels.helperDetails : {}
1329
1352
  };
1330
1353
  const emittedApiVersionParam = getApiVersionParameter(context);
1331
1354
  if (emittedApiVersionParam) {
@@ -1372,7 +1395,7 @@ export function emitCodeModel(dpgContext, rlcModelsMap, modularSourcesRoot, proj
1372
1395
  simpleTypesMap.clear();
1373
1396
  const allModels = getAllModels(dpgContext);
1374
1397
  for (const model of allModels) {
1375
- getType(dpgContext, model.__raw);
1398
+ getType(dpgContext, model.__raw, { usage: model.usage });
1376
1399
  }
1377
1400
  for (const namespace of getNamespaces(dpgContext)) {
1378
1401
  if (namespace === clientNamespaceString) {