@azure-tools/typespec-ts 0.13.0 → 0.13.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 (511) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +37 -1
  4. package/dist/src/index.js.map +1 -1
  5. package/dist/src/modelUtils.d.ts +2 -0
  6. package/dist/src/modelUtils.d.ts.map +1 -1
  7. package/dist/src/modelUtils.js +82 -13
  8. package/dist/src/modelUtils.js.map +1 -1
  9. package/dist/src/modular/buildApiIndex.d.ts.map +1 -1
  10. package/dist/src/modular/buildApiIndex.js +1 -1
  11. package/dist/src/modular/buildApiIndex.js.map +1 -1
  12. package/dist/src/modular/buildClassicalClient.d.ts.map +1 -1
  13. package/dist/src/modular/buildClassicalClient.js +6 -6
  14. package/dist/src/modular/buildClassicalClient.js.map +1 -1
  15. package/dist/src/modular/buildClientContext.d.ts.map +1 -1
  16. package/dist/src/modular/buildClientContext.js +9 -3
  17. package/dist/src/modular/buildClientContext.js.map +1 -1
  18. package/dist/src/modular/buildCodeModel.d.ts.map +1 -1
  19. package/dist/src/modular/buildCodeModel.js +190 -169
  20. package/dist/src/modular/buildCodeModel.js.map +1 -1
  21. package/dist/src/modular/buildOperations.d.ts.map +1 -1
  22. package/dist/src/modular/buildOperations.js +20 -2
  23. package/dist/src/modular/buildOperations.js.map +1 -1
  24. package/dist/src/modular/buildRootIndex.js +2 -2
  25. package/dist/src/modular/buildRootIndex.js.map +1 -1
  26. package/dist/src/modular/buildSharedTypes.d.ts.map +1 -1
  27. package/dist/src/modular/buildSharedTypes.js +8 -10
  28. package/dist/src/modular/buildSharedTypes.js.map +1 -1
  29. package/dist/src/modular/emitModels.d.ts.map +1 -1
  30. package/dist/src/modular/emitModels.js +19 -6
  31. package/dist/src/modular/emitModels.js.map +1 -1
  32. package/dist/src/modular/helpers/clientHelpers.d.ts.map +1 -1
  33. package/dist/src/modular/helpers/clientHelpers.js +2 -11
  34. package/dist/src/modular/helpers/clientHelpers.js.map +1 -1
  35. package/dist/src/modular/helpers/credentialHelpers.js +1 -1
  36. package/dist/src/modular/helpers/credentialHelpers.js.map +1 -1
  37. package/dist/src/modular/helpers/fixmeHelpers.d.ts +2 -0
  38. package/dist/src/modular/helpers/fixmeHelpers.d.ts.map +1 -0
  39. package/dist/src/modular/helpers/fixmeHelpers.js +4 -0
  40. package/dist/src/modular/helpers/fixmeHelpers.js.map +1 -0
  41. package/dist/src/modular/helpers/namingHelpers.d.ts +19 -1
  42. package/dist/src/modular/helpers/namingHelpers.d.ts.map +1 -1
  43. package/dist/src/modular/helpers/namingHelpers.js +99 -0
  44. package/dist/src/modular/helpers/namingHelpers.js.map +1 -1
  45. package/dist/src/modular/helpers/operationHelpers.d.ts +2 -0
  46. package/dist/src/modular/helpers/operationHelpers.d.ts.map +1 -1
  47. package/dist/src/modular/helpers/operationHelpers.js +117 -35
  48. package/dist/src/modular/helpers/operationHelpers.js.map +1 -1
  49. package/dist/src/modular/helpers/parameterHelpers.js +1 -1
  50. package/dist/src/modular/helpers/parameterHelpers.js.map +1 -1
  51. package/dist/src/modular/helpers/typeHelpers.d.ts.map +1 -1
  52. package/dist/src/modular/helpers/typeHelpers.js +31 -12
  53. package/dist/src/modular/helpers/typeHelpers.js.map +1 -1
  54. package/dist/src/modular/modularCodeModel.d.ts +2 -1
  55. package/dist/src/modular/modularCodeModel.d.ts.map +1 -1
  56. package/dist/src/operationUtil.d.ts +1 -1
  57. package/dist/src/operationUtil.d.ts.map +1 -1
  58. package/dist/src/operationUtil.js +21 -3
  59. package/dist/src/operationUtil.js.map +1 -1
  60. package/dist/src/transform/transform.d.ts.map +1 -1
  61. package/dist/src/transform/transform.js +2 -2
  62. package/dist/src/transform/transform.js.map +1 -1
  63. package/dist/src/transform/transformApiVersionInfo.js +9 -0
  64. package/dist/src/transform/transformApiVersionInfo.js.map +1 -1
  65. package/dist/src/transform/transformHelperFunctionDetails.d.ts.map +1 -1
  66. package/dist/src/transform/transformHelperFunctionDetails.js +18 -0
  67. package/dist/src/transform/transformHelperFunctionDetails.js.map +1 -1
  68. package/dist/src/transform/transformParameters.d.ts.map +1 -1
  69. package/dist/src/transform/transformParameters.js +27 -34
  70. package/dist/src/transform/transformParameters.js.map +1 -1
  71. package/dist/src/transform/transformPaths.d.ts.map +1 -1
  72. package/dist/src/transform/transformPaths.js +9 -0
  73. package/dist/src/transform/transformPaths.js.map +1 -1
  74. package/dist/src/transform/transformResponses.d.ts.map +1 -1
  75. package/dist/src/transform/transformResponses.js +10 -1
  76. package/dist/src/transform/transformResponses.js.map +1 -1
  77. package/dist/src/transform/transformSchemas.d.ts.map +1 -1
  78. package/dist/src/transform/transformSchemas.js +9 -0
  79. package/dist/src/transform/transformSchemas.js.map +1 -1
  80. package/dist/tsconfig.tsbuildinfo +1 -1
  81. package/package.json +14 -7
  82. package/src/index.ts +47 -2
  83. package/src/modelUtils.ts +90 -15
  84. package/src/modular/buildApiIndex.ts +3 -1
  85. package/src/modular/buildClassicalClient.ts +8 -6
  86. package/src/modular/buildClientContext.ts +11 -3
  87. package/src/modular/buildCodeModel.ts +221 -196
  88. package/src/modular/buildOperations.ts +23 -1
  89. package/src/modular/buildRootIndex.ts +2 -2
  90. package/src/modular/buildSharedTypes.ts +8 -10
  91. package/src/modular/emitModels.ts +14 -0
  92. package/src/modular/helpers/clientHelpers.ts +3 -13
  93. package/src/modular/helpers/credentialHelpers.ts +1 -1
  94. package/src/modular/helpers/fixmeHelpers.ts +3 -0
  95. package/src/modular/helpers/namingHelpers.ts +121 -1
  96. package/src/modular/helpers/operationHelpers.ts +173 -66
  97. package/src/modular/helpers/parameterHelpers.ts +1 -1
  98. package/src/modular/helpers/typeHelpers.ts +33 -12
  99. package/src/modular/modularCodeModel.ts +3 -1
  100. package/src/operationUtil.ts +24 -3
  101. package/src/transform/transform.ts +4 -1
  102. package/src/transform/transformApiVersionInfo.ts +8 -0
  103. package/src/transform/transformHelperFunctionDetails.ts +16 -0
  104. package/src/transform/transformParameters.ts +42 -40
  105. package/src/transform/transformPaths.ts +8 -0
  106. package/src/transform/transformResponses.ts +9 -1
  107. package/src/transform/transformSchemas.ts +8 -0
  108. package/.eslintrc.json +0 -23
  109. package/.prettierignore +0 -1
  110. package/.prettierrc +0 -7
  111. package/.rush/temp/operation/build/all.log +0 -1
  112. package/.rush/temp/operation/build/state.json +0 -3
  113. package/.rush/temp/package-deps_build.json +0 -442
  114. package/.rush/temp/shrinkwrap-deps.json +0 -490
  115. package/CONTRIBUTING.md +0 -137
  116. package/test/commands/cadl-ranch-list.ts +0 -116
  117. package/test/commands/check-clean-tree.ts +0 -55
  118. package/test/commands/childProcessOnExit.ts +0 -16
  119. package/test/commands/gen-cadl-ranch.ts +0 -25
  120. package/test/commands/run.ts +0 -31
  121. package/test/integration/arrayItemTypes.spec.ts +0 -96
  122. package/test/integration/authApiKey.spec.ts +0 -38
  123. package/test/integration/authOauth2.spec.ts +0 -65
  124. package/test/integration/authUnion.spec.ts +0 -72
  125. package/test/integration/azurecore.spec.ts +0 -170
  126. package/test/integration/collectionFormat.spec.ts +0 -118
  127. package/test/integration/dictionary.spec.ts +0 -106
  128. package/test/integration/extensibleEnums.spec.ts +0 -61
  129. package/test/integration/fixedEnums.spec.ts +0 -52
  130. package/test/integration/generated/arrays/itemTypes/src/arrayItemTypesClient.ts +0 -35
  131. package/test/integration/generated/arrays/itemTypes/src/clientDefinitions.ts +0 -165
  132. package/test/integration/generated/arrays/itemTypes/src/index.ts +0 -13
  133. package/test/integration/generated/arrays/itemTypes/src/logger.ts +0 -5
  134. package/test/integration/generated/arrays/itemTypes/src/models.ts +0 -9
  135. package/test/integration/generated/arrays/itemTypes/src/outputModels.ts +0 -9
  136. package/test/integration/generated/arrays/itemTypes/src/parameters.ts +0 -86
  137. package/test/integration/generated/arrays/itemTypes/src/responses.ts +0 -115
  138. package/test/integration/generated/arrays/itemTypes/tspconfig.yaml +0 -15
  139. package/test/integration/generated/authentication/apiKey/.eslintrc.json +0 -11
  140. package/test/integration/generated/authentication/apiKey/README.md +0 -56
  141. package/test/integration/generated/authentication/apiKey/api-extractor.json +0 -18
  142. package/test/integration/generated/authentication/apiKey/karma.conf.js +0 -133
  143. package/test/integration/generated/authentication/apiKey/package.json +0 -103
  144. package/test/integration/generated/authentication/apiKey/rollup.config.js +0 -118
  145. package/test/integration/generated/authentication/apiKey/src/authApiKeyClient.ts +0 -45
  146. package/test/integration/generated/authentication/apiKey/src/clientDefinitions.ts +0 -33
  147. package/test/integration/generated/authentication/apiKey/src/index.ts +0 -12
  148. package/test/integration/generated/authentication/apiKey/src/logger.ts +0 -5
  149. package/test/integration/generated/authentication/apiKey/src/outputModels.ts +0 -6
  150. package/test/integration/generated/authentication/apiKey/src/parameters.ts +0 -7
  151. package/test/integration/generated/authentication/apiKey/src/responses.ts +0 -21
  152. package/test/integration/generated/authentication/apiKey/test/public/sampleTest.spec.ts +0 -23
  153. package/test/integration/generated/authentication/apiKey/test/public/utils/env.browser.ts +0 -2
  154. package/test/integration/generated/authentication/apiKey/test/public/utils/env.ts +0 -6
  155. package/test/integration/generated/authentication/apiKey/test/public/utils/recordedClient.ts +0 -29
  156. package/test/integration/generated/authentication/apiKey/tsconfig.json +0 -25
  157. package/test/integration/generated/authentication/apiKey/tspconfig.yaml +0 -13
  158. package/test/integration/generated/authentication/oauth2/karma.conf.js +0 -133
  159. package/test/integration/generated/authentication/oauth2/src/authOauth2Client.ts +0 -45
  160. package/test/integration/generated/authentication/oauth2/src/clientDefinitions.ts +0 -33
  161. package/test/integration/generated/authentication/oauth2/src/index.ts +0 -12
  162. package/test/integration/generated/authentication/oauth2/src/logger.ts +0 -5
  163. package/test/integration/generated/authentication/oauth2/src/outputModels.ts +0 -6
  164. package/test/integration/generated/authentication/oauth2/src/parameters.ts +0 -7
  165. package/test/integration/generated/authentication/oauth2/src/responses.ts +0 -21
  166. package/test/integration/generated/authentication/oauth2/test/public/sampleTest.spec.ts +0 -23
  167. package/test/integration/generated/authentication/oauth2/test/public/utils/env.browser.ts +0 -2
  168. package/test/integration/generated/authentication/oauth2/test/public/utils/env.ts +0 -6
  169. package/test/integration/generated/authentication/oauth2/test/public/utils/recordedClient.ts +0 -29
  170. package/test/integration/generated/authentication/oauth2/tspconfig.yaml +0 -15
  171. package/test/integration/generated/authentication/union/karma.conf.js +0 -133
  172. package/test/integration/generated/authentication/union/src/authUnionClient.ts +0 -46
  173. package/test/integration/generated/authentication/union/src/clientDefinitions.ts +0 -27
  174. package/test/integration/generated/authentication/union/src/index.ts +0 -11
  175. package/test/integration/generated/authentication/union/src/logger.ts +0 -5
  176. package/test/integration/generated/authentication/union/src/parameters.ts +0 -7
  177. package/test/integration/generated/authentication/union/src/responses.ts +0 -14
  178. package/test/integration/generated/authentication/union/test/public/sampleTest.spec.ts +0 -23
  179. package/test/integration/generated/authentication/union/test/public/utils/env.browser.ts +0 -2
  180. package/test/integration/generated/authentication/union/test/public/utils/env.ts +0 -6
  181. package/test/integration/generated/authentication/union/test/public/utils/recordedClient.ts +0 -29
  182. package/test/integration/generated/authentication/union/tspconfig.yaml +0 -15
  183. package/test/integration/generated/azure/core/.eslintrc.json +0 -11
  184. package/test/integration/generated/azure/core/README.md +0 -56
  185. package/test/integration/generated/azure/core/api-extractor.json +0 -18
  186. package/test/integration/generated/azure/core/package.json +0 -81
  187. package/test/integration/generated/azure/core/rollup.config.js +0 -118
  188. package/test/integration/generated/azure/core/src/azureCoreClient.ts +0 -35
  189. package/test/integration/generated/azure/core/src/clientDefinitions.ts +0 -108
  190. package/test/integration/generated/azure/core/src/index.ts +0 -16
  191. package/test/integration/generated/azure/core/src/isUnexpected.ts +0 -178
  192. package/test/integration/generated/azure/core/src/logger.ts +0 -5
  193. package/test/integration/generated/azure/core/src/models.ts +0 -18
  194. package/test/integration/generated/azure/core/src/outputModels.ts +0 -38
  195. package/test/integration/generated/azure/core/src/paginateHelper.ts +0 -204
  196. package/test/integration/generated/azure/core/src/parameters.ts +0 -68
  197. package/test/integration/generated/azure/core/src/responses.ts +0 -158
  198. package/test/integration/generated/azure/core/src/serializeHelper.ts +0 -16
  199. package/test/integration/generated/azure/core/tsconfig.json +0 -25
  200. package/test/integration/generated/azure/core/tspconfig.yaml +0 -15
  201. package/test/integration/generated/azure/core-traits/.eslintrc.json +0 -11
  202. package/test/integration/generated/azure/core-traits/README.md +0 -56
  203. package/test/integration/generated/azure/core-traits/api-extractor.json +0 -18
  204. package/test/integration/generated/azure/core-traits/package.json +0 -80
  205. package/test/integration/generated/azure/core-traits/rollup.config.js +0 -118
  206. package/test/integration/generated/azure/core-traits/src/azureCoreTraitsClient.ts +0 -35
  207. package/test/integration/generated/azure/core-traits/src/clientDefinitions.ts +0 -22
  208. package/test/integration/generated/azure/core-traits/src/index.ts +0 -13
  209. package/test/integration/generated/azure/core-traits/src/isUnexpected.ts +0 -97
  210. package/test/integration/generated/azure/core-traits/src/logger.ts +0 -5
  211. package/test/integration/generated/azure/core-traits/src/outputModels.ts +0 -25
  212. package/test/integration/generated/azure/core-traits/src/parameters.ts +0 -26
  213. package/test/integration/generated/azure/core-traits/src/responses.ts +0 -32
  214. package/test/integration/generated/azure/core-traits/tsconfig.json +0 -25
  215. package/test/integration/generated/azure/core-traits/tspconfig.yaml +0 -15
  216. package/test/integration/generated/dictionary/.eslintrc.json +0 -11
  217. package/test/integration/generated/dictionary/README.md +0 -56
  218. package/test/integration/generated/dictionary/api-extractor.json +0 -18
  219. package/test/integration/generated/dictionary/package.json +0 -80
  220. package/test/integration/generated/dictionary/rollup.config.js +0 -118
  221. package/test/integration/generated/dictionary/src/clientDefinitions.ts +0 -180
  222. package/test/integration/generated/dictionary/src/dictClient.ts +0 -33
  223. package/test/integration/generated/dictionary/src/index.ts +0 -13
  224. package/test/integration/generated/dictionary/src/logger.ts +0 -5
  225. package/test/integration/generated/dictionary/src/models.ts +0 -9
  226. package/test/integration/generated/dictionary/src/outputModels.ts +0 -9
  227. package/test/integration/generated/dictionary/src/parameters.ts +0 -94
  228. package/test/integration/generated/dictionary/src/responses.ts +0 -126
  229. package/test/integration/generated/dictionary/tsconfig.json +0 -25
  230. package/test/integration/generated/dictionary/tspconfig.yaml +0 -15
  231. package/test/integration/generated/enums/extensible/.eslintrc.json +0 -11
  232. package/test/integration/generated/enums/extensible/README.md +0 -56
  233. package/test/integration/generated/enums/extensible/api-extractor.json +0 -18
  234. package/test/integration/generated/enums/extensible/package.json +0 -80
  235. package/test/integration/generated/enums/extensible/rollup.config.js +0 -118
  236. package/test/integration/generated/enums/extensible/src/clientDefinitions.ts +0 -45
  237. package/test/integration/generated/enums/extensible/src/index.ts +0 -11
  238. package/test/integration/generated/enums/extensible/src/logger.ts +0 -5
  239. package/test/integration/generated/enums/extensible/src/parameters.ts +0 -23
  240. package/test/integration/generated/enums/extensible/src/responses.ts +0 -26
  241. package/test/integration/generated/enums/extensible/src/typeEnumExtensible.ts +0 -35
  242. package/test/integration/generated/enums/extensible/tsconfig.json +0 -25
  243. package/test/integration/generated/enums/extensible/tspconfig.yaml +0 -14
  244. package/test/integration/generated/enums/fixed/.eslintrc.json +0 -11
  245. package/test/integration/generated/enums/fixed/README.md +0 -56
  246. package/test/integration/generated/enums/fixed/api-extractor.json +0 -18
  247. package/test/integration/generated/enums/fixed/package.json +0 -80
  248. package/test/integration/generated/enums/fixed/rollup.config.js +0 -118
  249. package/test/integration/generated/enums/fixed/src/clientDefinitions.ts +0 -43
  250. package/test/integration/generated/enums/fixed/src/index.ts +0 -11
  251. package/test/integration/generated/enums/fixed/src/logger.ts +0 -5
  252. package/test/integration/generated/enums/fixed/src/parameters.ts +0 -36
  253. package/test/integration/generated/enums/fixed/src/responses.ts +0 -27
  254. package/test/integration/generated/enums/fixed/src/typeEnumFixed.ts +0 -35
  255. package/test/integration/generated/enums/fixed/tsconfig.json +0 -25
  256. package/test/integration/generated/enums/fixed/tspconfig.yaml +0 -14
  257. package/test/integration/generated/hello/.eslintrc.json +0 -11
  258. package/test/integration/generated/hello/README.md +0 -56
  259. package/test/integration/generated/hello/api-extractor.json +0 -18
  260. package/test/integration/generated/hello/package.json +0 -80
  261. package/test/integration/generated/hello/rollup.config.js +0 -118
  262. package/test/integration/generated/hello/src/clientDefinitions.ts +0 -19
  263. package/test/integration/generated/hello/src/hello.ts +0 -29
  264. package/test/integration/generated/hello/src/index.ts +0 -11
  265. package/test/integration/generated/hello/src/parameters.ts +0 -6
  266. package/test/integration/generated/hello/src/responses.ts +0 -10
  267. package/test/integration/generated/hello/tsconfig.json +0 -25
  268. package/test/integration/generated/hello/tspconfig.yaml +0 -14
  269. package/test/integration/generated/internal/src/clientDefinitions.ts +0 -53
  270. package/test/integration/generated/internal/src/index.ts +0 -12
  271. package/test/integration/generated/internal/src/internalClient.ts +0 -35
  272. package/test/integration/generated/internal/src/logger.ts +0 -5
  273. package/test/integration/generated/internal/src/outputModels.ts +0 -17
  274. package/test/integration/generated/internal/src/parameters.ts +0 -45
  275. package/test/integration/generated/internal/src/responses.ts +0 -33
  276. package/test/integration/generated/internal/tspconfig.yaml +0 -14
  277. package/test/integration/generated/lro/lroCore/.eslintrc.json +0 -11
  278. package/test/integration/generated/lro/lroCore/README.md +0 -56
  279. package/test/integration/generated/lro/lroCore/api-extractor.json +0 -18
  280. package/test/integration/generated/lro/lroCore/package.json +0 -82
  281. package/test/integration/generated/lro/lroCore/rollup.config.js +0 -118
  282. package/test/integration/generated/lro/lroCore/src/clientDefinitions.ts +0 -54
  283. package/test/integration/generated/lro/lroCore/src/index.ts +0 -15
  284. package/test/integration/generated/lro/lroCore/src/isUnexpected.ts +0 -135
  285. package/test/integration/generated/lro/lroCore/src/logger.ts +0 -5
  286. package/test/integration/generated/lro/lroCore/src/models.ts +0 -8
  287. package/test/integration/generated/lro/lroCore/src/outputModels.ts +0 -50
  288. package/test/integration/generated/lro/lroCore/src/parameters.ts +0 -25
  289. package/test/integration/generated/lro/lroCore/src/pollingHelper.ts +0 -113
  290. package/test/integration/generated/lro/lroCore/src/responses.ts +0 -109
  291. package/test/integration/generated/lro/lroCore/src/specsAzureCoreLroStandard.ts +0 -35
  292. package/test/integration/generated/lro/lroCore/tsconfig.json +0 -25
  293. package/test/integration/generated/lro/lroCore/tspconfig.yaml +0 -14
  294. package/test/integration/generated/lro/lroRPC/.eslintrc.json +0 -11
  295. package/test/integration/generated/lro/lroRPC/README.md +0 -56
  296. package/test/integration/generated/lro/lroRPC/api-extractor.json +0 -18
  297. package/test/integration/generated/lro/lroRPC/package.json +0 -82
  298. package/test/integration/generated/lro/lroRPC/rollup.config.js +0 -118
  299. package/test/integration/generated/lro/lroRPC/src/clientDefinitions.ts +0 -79
  300. package/test/integration/generated/lro/lroRPC/src/index.ts +0 -15
  301. package/test/integration/generated/lro/lroRPC/src/isUnexpected.ts +0 -153
  302. package/test/integration/generated/lro/lroRPC/src/logger.ts +0 -5
  303. package/test/integration/generated/lro/lroRPC/src/models.ts +0 -8
  304. package/test/integration/generated/lro/lroRPC/src/outputModels.ts +0 -40
  305. package/test/integration/generated/lro/lroRPC/src/parameters.ts +0 -20
  306. package/test/integration/generated/lro/lroRPC/src/pollingHelper.ts +0 -127
  307. package/test/integration/generated/lro/lroRPC/src/responses.ts +0 -124
  308. package/test/integration/generated/lro/lroRPC/src/specsAzureCoreLroRpc.ts +0 -35
  309. package/test/integration/generated/lro/lroRPC/tsconfig.json +0 -25
  310. package/test/integration/generated/lro/lroRPC/tspconfig.yaml +0 -14
  311. package/test/integration/generated/models/inheritance/.eslintrc.json +0 -11
  312. package/test/integration/generated/models/inheritance/README.md +0 -56
  313. package/test/integration/generated/models/inheritance/api-extractor.json +0 -18
  314. package/test/integration/generated/models/inheritance/package.json +0 -80
  315. package/test/integration/generated/models/inheritance/rollup.config.js +0 -118
  316. package/test/integration/generated/models/inheritance/src/clientDefinitions.ts +0 -81
  317. package/test/integration/generated/models/inheritance/src/index.ts +0 -13
  318. package/test/integration/generated/models/inheritance/src/logger.ts +0 -5
  319. package/test/integration/generated/models/inheritance/src/models.ts +0 -52
  320. package/test/integration/generated/models/inheritance/src/outputModels.ts +0 -52
  321. package/test/integration/generated/models/inheritance/src/parameters.ts +0 -35
  322. package/test/integration/generated/models/inheritance/src/responses.ts +0 -56
  323. package/test/integration/generated/models/inheritance/src/typeModelInheritance.ts +0 -35
  324. package/test/integration/generated/models/inheritance/tsconfig.json +0 -25
  325. package/test/integration/generated/models/inheritance/tspconfig.yaml +0 -14
  326. package/test/integration/generated/models/propertyNullable/.eslintrc.json +0 -11
  327. package/test/integration/generated/models/propertyNullable/README.md +0 -56
  328. package/test/integration/generated/models/propertyNullable/api-extractor.json +0 -18
  329. package/test/integration/generated/models/propertyNullable/package.json +0 -80
  330. package/test/integration/generated/models/propertyNullable/rollup.config.js +0 -118
  331. package/test/integration/generated/models/propertyNullable/src/clientDefinitions.ts +0 -227
  332. package/test/integration/generated/models/propertyNullable/src/index.ts +0 -13
  333. package/test/integration/generated/models/propertyNullable/src/logger.ts +0 -5
  334. package/test/integration/generated/models/propertyNullable/src/models.ts +0 -56
  335. package/test/integration/generated/models/propertyNullable/src/outputModels.ts +0 -56
  336. package/test/integration/generated/models/propertyNullable/src/parameters.ts +0 -197
  337. package/test/integration/generated/models/propertyNullable/src/responses.ts +0 -144
  338. package/test/integration/generated/models/propertyNullable/src/typePropertyNullable.ts +0 -35
  339. package/test/integration/generated/models/propertyNullable/tsconfig.json +0 -25
  340. package/test/integration/generated/models/propertyNullable/tspconfig.yaml +0 -14
  341. package/test/integration/generated/models/propertyOptional/.eslintrc.json +0 -11
  342. package/test/integration/generated/models/propertyOptional/README.md +0 -56
  343. package/test/integration/generated/models/propertyOptional/api-extractor.json +0 -18
  344. package/test/integration/generated/models/propertyOptional/package.json +0 -80
  345. package/test/integration/generated/models/propertyOptional/rollup.config.js +0 -118
  346. package/test/integration/generated/models/propertyOptional/src/clientDefinitions.ts +0 -263
  347. package/test/integration/generated/models/propertyOptional/src/index.ts +0 -13
  348. package/test/integration/generated/models/propertyOptional/src/logger.ts +0 -5
  349. package/test/integration/generated/models/propertyOptional/src/models.ts +0 -46
  350. package/test/integration/generated/models/propertyOptional/src/outputModels.ts +0 -46
  351. package/test/integration/generated/models/propertyOptional/src/parameters.ts +0 -125
  352. package/test/integration/generated/models/propertyOptional/src/responses.ts +0 -169
  353. package/test/integration/generated/models/propertyOptional/src/typePropertyOptional.ts +0 -35
  354. package/test/integration/generated/models/propertyOptional/tsconfig.json +0 -25
  355. package/test/integration/generated/models/propertyOptional/tspconfig.yaml +0 -14
  356. package/test/integration/generated/models/propertyTypes/.eslintrc.json +0 -11
  357. package/test/integration/generated/models/propertyTypes/README.md +0 -56
  358. package/test/integration/generated/models/propertyTypes/api-extractor.json +0 -18
  359. package/test/integration/generated/models/propertyTypes/package.json +0 -80
  360. package/test/integration/generated/models/propertyTypes/rollup.config.js +0 -118
  361. package/test/integration/generated/models/propertyTypes/src/clientDefinitions.ts +0 -310
  362. package/test/integration/generated/models/propertyTypes/src/index.ts +0 -13
  363. package/test/integration/generated/models/propertyTypes/src/logger.ts +0 -5
  364. package/test/integration/generated/models/propertyTypes/src/models.ts +0 -123
  365. package/test/integration/generated/models/propertyTypes/src/outputModels.ts +0 -123
  366. package/test/integration/generated/models/propertyTypes/src/parameters.ts +0 -189
  367. package/test/integration/generated/models/propertyTypes/src/responses.ts +0 -234
  368. package/test/integration/generated/models/propertyTypes/src/typePropertyValueTypes.ts +0 -35
  369. package/test/integration/generated/models/propertyTypes/tsconfig.json +0 -25
  370. package/test/integration/generated/models/propertyTypes/tspconfig.yaml +0 -14
  371. package/test/integration/generated/models/usage/.eslintrc.json +0 -11
  372. package/test/integration/generated/models/usage/README.md +0 -56
  373. package/test/integration/generated/models/usage/api-extractor.json +0 -18
  374. package/test/integration/generated/models/usage/package.json +0 -80
  375. package/test/integration/generated/models/usage/rollup.config.js +0 -118
  376. package/test/integration/generated/models/usage/src/clientDefinitions.ts +0 -41
  377. package/test/integration/generated/models/usage/src/index.ts +0 -13
  378. package/test/integration/generated/models/usage/src/logger.ts +0 -5
  379. package/test/integration/generated/models/usage/src/models.ts +0 -12
  380. package/test/integration/generated/models/usage/src/outputModels.ts +0 -12
  381. package/test/integration/generated/models/usage/src/parameters.ts +0 -19
  382. package/test/integration/generated/models/usage/src/responses.ts +0 -22
  383. package/test/integration/generated/models/usage/src/typeModelUsage.ts +0 -35
  384. package/test/integration/generated/models/usage/tsconfig.json +0 -25
  385. package/test/integration/generated/models/usage/tspconfig.yaml +0 -14
  386. package/test/integration/generated/models/visibility/.eslintrc.json +0 -11
  387. package/test/integration/generated/models/visibility/README.md +0 -56
  388. package/test/integration/generated/models/visibility/api-extractor.json +0 -18
  389. package/test/integration/generated/models/visibility/package.json +0 -80
  390. package/test/integration/generated/models/visibility/rollup.config.js +0 -118
  391. package/test/integration/generated/models/visibility/src/clientDefinitions.ts +0 -40
  392. package/test/integration/generated/models/visibility/src/index.ts +0 -13
  393. package/test/integration/generated/models/visibility/src/logger.ts +0 -5
  394. package/test/integration/generated/models/visibility/src/models.ts +0 -14
  395. package/test/integration/generated/models/visibility/src/outputModels.ts +0 -16
  396. package/test/integration/generated/models/visibility/src/parameters.ts +0 -41
  397. package/test/integration/generated/models/visibility/src/responses.ts +0 -36
  398. package/test/integration/generated/models/visibility/src/typeModelVisibility.ts +0 -35
  399. package/test/integration/generated/models/visibility/tsconfig.json +0 -25
  400. package/test/integration/generated/models/visibility/tspconfig.yaml +0 -14
  401. package/test/integration/generated/parameters/collection-format/src/clientDefinitions.ts +0 -63
  402. package/test/integration/generated/parameters/collection-format/src/collectionFormatClient.ts +0 -35
  403. package/test/integration/generated/parameters/collection-format/src/index.ts +0 -12
  404. package/test/integration/generated/parameters/collection-format/src/logger.ts +0 -5
  405. package/test/integration/generated/parameters/collection-format/src/parameters.ts +0 -71
  406. package/test/integration/generated/parameters/collection-format/src/responses.ts +0 -34
  407. package/test/integration/generated/parameters/collection-format/src/serializeHelper.ts +0 -28
  408. package/test/integration/generated/parameters/collection-format/tspconfig.yaml +0 -14
  409. package/test/integration/generated/parameters/spread/src/clientDefinitions.ts +0 -61
  410. package/test/integration/generated/parameters/spread/src/index.ts +0 -12
  411. package/test/integration/generated/parameters/spread/src/logger.ts +0 -5
  412. package/test/integration/generated/parameters/spread/src/models.ts +0 -7
  413. package/test/integration/generated/parameters/spread/src/parameters.ts +0 -61
  414. package/test/integration/generated/parameters/spread/src/parametersSpread.ts +0 -35
  415. package/test/integration/generated/parameters/spread/src/responses.ts +0 -25
  416. package/test/integration/generated/parameters/spread/tspconfig.yaml +0 -12
  417. package/test/integration/generated/projection/src/clientDefinitions.ts +0 -71
  418. package/test/integration/generated/projection/src/index.ts +0 -12
  419. package/test/integration/generated/projection/src/logger.ts +0 -5
  420. package/test/integration/generated/projection/src/models.ts +0 -22
  421. package/test/integration/generated/projection/src/parameters.ts +0 -48
  422. package/test/integration/generated/projection/src/projectionClient.ts +0 -35
  423. package/test/integration/generated/projection/src/responses.ts +0 -34
  424. package/test/integration/generated/projection/tspconfig.yaml +0 -14
  425. package/test/integration/generated/resiliency/srvDriven1/.eslintrc.json +0 -11
  426. package/test/integration/generated/resiliency/srvDriven1/README.md +0 -56
  427. package/test/integration/generated/resiliency/srvDriven1/api-extractor.json +0 -18
  428. package/test/integration/generated/resiliency/srvDriven1/package.json +0 -80
  429. package/test/integration/generated/resiliency/srvDriven1/rollup.config.js +0 -118
  430. package/test/integration/generated/resiliency/srvDriven1/src/clientDefinitions.ts +0 -46
  431. package/test/integration/generated/resiliency/srvDriven1/src/index.ts +0 -11
  432. package/test/integration/generated/resiliency/srvDriven1/src/logger.ts +0 -5
  433. package/test/integration/generated/resiliency/srvDriven1/src/parameters.ts +0 -30
  434. package/test/integration/generated/resiliency/srvDriven1/src/responses.ts +0 -19
  435. package/test/integration/generated/resiliency/srvDriven1/src/serviceDrivenOldClient.ts +0 -43
  436. package/test/integration/generated/resiliency/srvDriven1/tsconfig.json +0 -25
  437. package/test/integration/generated/resiliency/srvDriven1/tspconfig.yaml +0 -15
  438. package/test/integration/generated/resiliency/srvDriven2/.eslintrc.json +0 -11
  439. package/test/integration/generated/resiliency/srvDriven2/README.md +0 -65
  440. package/test/integration/generated/resiliency/srvDriven2/api-extractor.json +0 -18
  441. package/test/integration/generated/resiliency/srvDriven2/package.json +0 -80
  442. package/test/integration/generated/resiliency/srvDriven2/rollup.config.js +0 -118
  443. package/test/integration/generated/resiliency/srvDriven2/src/clientDefinitions.ts +0 -57
  444. package/test/integration/generated/resiliency/srvDriven2/src/index.ts +0 -11
  445. package/test/integration/generated/resiliency/srvDriven2/src/logger.ts +0 -5
  446. package/test/integration/generated/resiliency/srvDriven2/src/parameters.ts +0 -45
  447. package/test/integration/generated/resiliency/srvDriven2/src/responses.ts +0 -24
  448. package/test/integration/generated/resiliency/srvDriven2/src/serviceDrivenNewClient.ts +0 -43
  449. package/test/integration/generated/resiliency/srvDriven2/tsconfig.json +0 -25
  450. package/test/integration/generated/resiliency/srvDriven2/tspconfig.yaml +0 -15
  451. package/test/integration/generated/server/path/multiple/src/clientDefinitions.ts +0 -35
  452. package/test/integration/generated/server/path/multiple/src/index.ts +0 -11
  453. package/test/integration/generated/server/path/multiple/src/logger.ts +0 -5
  454. package/test/integration/generated/server/path/multiple/src/multipleParamInServerPathClient.ts +0 -43
  455. package/test/integration/generated/server/path/multiple/src/parameters.ts +0 -7
  456. package/test/integration/generated/server/path/multiple/src/responses.ts +0 -14
  457. package/test/integration/generated/server/path/multiple/tspconfig.yaml +0 -14
  458. package/test/integration/generated/server/path/single/src/clientDefinitions.ts +0 -19
  459. package/test/integration/generated/server/path/single/src/index.ts +0 -11
  460. package/test/integration/generated/server/path/single/src/logger.ts +0 -5
  461. package/test/integration/generated/server/path/single/src/parameters.ts +0 -6
  462. package/test/integration/generated/server/path/single/src/responses.ts +0 -9
  463. package/test/integration/generated/server/path/single/src/singleParamInServerPathClient.ts +0 -38
  464. package/test/integration/generated/server/path/single/tspconfig.yaml +0 -14
  465. package/test/integration/generated/specialWords/src/clientDefinitions.ts +0 -61
  466. package/test/integration/generated/specialWords/src/index.ts +0 -13
  467. package/test/integration/generated/specialWords/src/logger.ts +0 -5
  468. package/test/integration/generated/specialWords/src/models.ts +0 -17
  469. package/test/integration/generated/specialWords/src/outputModels.ts +0 -17
  470. package/test/integration/generated/specialWords/src/parameters.ts +0 -37
  471. package/test/integration/generated/specialWords/src/responses.ts +0 -31
  472. package/test/integration/generated/specialWords/src/specialWordsClient.ts +0 -35
  473. package/test/integration/generated/specialWords/tspconfig.yaml +0 -14
  474. package/test/integration/generated/unions/src/clientDefinitions.ts +0 -53
  475. package/test/integration/generated/unions/src/index.ts +0 -12
  476. package/test/integration/generated/unions/src/logger.ts +0 -5
  477. package/test/integration/generated/unions/src/models.ts +0 -27
  478. package/test/integration/generated/unions/src/parameters.ts +0 -34
  479. package/test/integration/generated/unions/src/responses.ts +0 -24
  480. package/test/integration/generated/unions/src/unionsClient.ts +0 -35
  481. package/test/integration/generated/unions/tspconfig.yaml +0 -14
  482. package/test/integration/internal.spec.ts +0 -76
  483. package/test/integration/lroCore.spec.ts +0 -89
  484. package/test/integration/modelInheritance.spec.ts +0 -192
  485. package/test/integration/modelPropertyNullable.spec.ts +0 -115
  486. package/test/integration/modelPropertyOptional.spec.ts +0 -362
  487. package/test/integration/modelPropertyType.spec.ts +0 -135
  488. package/test/integration/modelUsage.spec.ts +0 -47
  489. package/test/integration/projection.spec.ts +0 -102
  490. package/test/integration/resiliencyDpgCustomization.spec.ts +0 -147
  491. package/test/integration/server.spec.ts +0 -59
  492. package/test/integration/specialWords.spec.ts +0 -73
  493. package/test/integration/spreadParameters.spec.ts +0 -82
  494. package/test/integration/unions.spec.ts +0 -69
  495. package/test/tsconfig.json +0 -4
  496. package/test/unit/apiVersion.spec.ts +0 -400
  497. package/test/unit/azureCoreOperationsGenerator.spec.ts +0 -71
  498. package/test/unit/clientDefinitionGenerator.spec.ts +0 -73
  499. package/test/unit/clientFactoryGenerator.spec.ts +0 -404
  500. package/test/unit/docsGenerator.spec.ts +0 -201
  501. package/test/unit/modelsGenerator.spec.ts +0 -1529
  502. package/test/unit/parametersGenerator.spec.ts +0 -561
  503. package/test/unit/responsesGenerator.spec.ts +0 -462
  504. package/test/unit/spreadAndAlias.spec.ts +0 -200
  505. package/test/unit/util/emitUtil.ts +0 -166
  506. package/test/unit/util/testUtil.ts +0 -88
  507. package/test/util/customBearerTokenTestingPolicy.ts +0 -78
  508. package/test/util/matrix.ts +0 -48
  509. package/tsconfig.json +0 -36
  510. package/tsconfig.test.json +0 -7
  511. package/typespec-ts.build.log +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure-tools/typespec-ts",
3
- "version": "0.13.0",
3
+ "version": "0.13.1",
4
4
  "description": "An experimental CADL emitter for TypeScript RLC",
5
5
  "main": "dist/src/index.js",
6
6
  "type": "module",
@@ -23,10 +23,10 @@
23
23
  "ts-node": "^10.9.1",
24
24
  "typescript": "~5.0.0",
25
25
  "prettier": "~2.7.1",
26
- "@azure-tools/cadl-ranch-specs": "~0.14.10",
26
+ "@azure-tools/cadl-ranch-specs": "~0.15.4",
27
27
  "@typespec/versioning": "~0.44.0",
28
- "@azure-tools/cadl-ranch-expect": "^0.3.0",
29
- "@azure-tools/cadl-ranch": "~0.4.13",
28
+ "@azure-tools/cadl-ranch-expect": "^0.3.2",
29
+ "@azure-tools/cadl-ranch": "~0.4.17",
30
30
  "chalk": "^4.0.0",
31
31
  "@azure-rest/core-client": "^1.1.3",
32
32
  "@azure/core-auth": "^1.3.2",
@@ -47,10 +47,17 @@
47
47
  "dependencies": {
48
48
  "prettier": "^2.6.1",
49
49
  "tslib": "^2.3.1",
50
- "@azure-tools/rlc-common": "^0.13.0",
50
+ "@azure-tools/rlc-common": "^0.13.1",
51
51
  "ts-morph": "^15.1.0",
52
52
  "fs-extra": "^11.1.0"
53
53
  },
54
+ "files": [
55
+ "src",
56
+ "dist/**",
57
+ "README.md",
58
+ "CHANGELOG.md",
59
+ "LICENSE"
60
+ ],
54
61
  "mocha": {
55
62
  "extension": [
56
63
  "ts"
@@ -73,11 +80,11 @@
73
80
  "check:tree": "ts-node ./test/commands/check-clean-tree.ts",
74
81
  "integration-test-ci": "npm run start-test-server & npm run copy:typespec && npm run generate-and-run",
75
82
  "start-test-server": "mkdirp -p coverage && npx cadl-ranch serve ./node_modules/@azure-tools/cadl-ranch-specs/http --coverageFile ./coverage/cadl-ranch-coverage-typescript.json",
76
- "copy:typespec": "rm -rf temp && mkdirp -p temp && cp -r ./node_modules/@azure-tools/cadl-ranch-specs/http ./temp",
83
+ "copy:typespec": "rm -rf temp && mkdirp -p temp && cp -r ./node_modules/@azure-tools/cadl-ranch-specs/http ./temp && cp -r ./test/integration/typespec/* ./temp/http",
77
84
  "generate-and-run": "npm run generate-cadl-only && npm run integration-test:alone && npm run stop-test-server",
78
85
  "generate-cadl-only": "ts-node ./test/commands/gen-cadl-ranch.ts",
79
86
  "integration-test:alone": "cross-env TS_NODE_PROJECT=tsconfig.test.json mocha -r ts-node/register --experimental-specifier-resolution=node --timeout 4000 ./test/integration/*.spec.ts",
80
87
  "stop-test-server": "npx cadl-ranch server stop",
81
- "unit-test": "cross-env TS_NODE_PROJECT=tsconfig.json mocha -r ts-node/register --experimental-specifier-resolution=node --experimental-modules=true './test/unit/**/*.spec.ts'"
88
+ "unit-test": "cross-env TS_NODE_PROJECT=tsconfig.json mocha -r ts-node/register --experimental-specifier-resolution=node --experimental-modules=true --timeout 4000 './test/unit/**/*.spec.ts'"
82
89
  }
83
90
  }
package/src/index.ts CHANGED
@@ -36,7 +36,7 @@ import {
36
36
  } from "@azure-tools/typespec-client-generator-core";
37
37
  import * as path from "path";
38
38
  import { buildSharedTypes } from "./modular/buildSharedTypes.js";
39
- import { Project } from "ts-morph";
39
+ import { Project, SyntaxKind } from "ts-morph";
40
40
  import { buildClientContext } from "./modular/buildClientContext.js";
41
41
  import { emitCodeModel } from "./modular/buildCodeModel.js";
42
42
  import { buildRootIndex } from "./modular/buildRootIndex.js";
@@ -120,11 +120,12 @@ export async function $onEmit(context: EmitContext) {
120
120
  buildApiIndexFile(project, srcPath);
121
121
  buildClassicalClient(client, project, srcPath);
122
122
  buildRootIndex(client, project, srcPath);
123
-
124
123
  emitPackage(project, srcPath, modularCodeModel);
125
124
  emitTsConfig(project, srcPath, modularCodeModel);
126
125
  }
127
126
 
127
+ removeUnusedInterfaces(project);
128
+
128
129
  for (const file of project.getSourceFiles()) {
129
130
  await emitContentByBuilder(
130
131
  program,
@@ -136,6 +137,50 @@ export async function $onEmit(context: EmitContext) {
136
137
  }
137
138
  }
138
139
 
140
+ function removeUnusedInterfaces(project: Project) {
141
+ const allInterfaces = project
142
+ .getSourceFiles()
143
+ .flatMap((file) => file.getInterfaces());
144
+
145
+ const unusedInterfaces = allInterfaces.filter((interfaceDeclaration) => {
146
+ const references = interfaceDeclaration
147
+ .findReferencesAsNodes()
148
+ .filter((node) => {
149
+ const kind = node.getParent()?.getKind();
150
+ return (
151
+ kind !== SyntaxKind.ExportSpecifier &&
152
+ kind !== SyntaxKind.InterfaceDeclaration
153
+ );
154
+ });
155
+ return references.length === 0;
156
+ });
157
+
158
+ unusedInterfaces.forEach((interfaceDeclaration) => {
159
+ const interfaceName = interfaceDeclaration.getName();
160
+
161
+ // Get the index.ts file
162
+ const indexFiles = project.getSourceFiles("**/index.ts"); // Adjust the path to your index.ts file
163
+
164
+ for (const indexFile of indexFiles) {
165
+ // Get all export declarations
166
+ const exportDeclarations = indexFile.getExportDeclarations();
167
+
168
+ // Iterate over each export declaration
169
+ exportDeclarations.forEach((exportDeclaration) => {
170
+ // Find named exports that match the unused interface
171
+ const matchingExports = exportDeclaration
172
+ .getNamedExports()
173
+ .filter((ne) => ne.getName() === interfaceName);
174
+
175
+ // Remove the matching exports
176
+ matchingExports.forEach((me) => me.remove());
177
+ });
178
+ }
179
+
180
+ interfaceDeclaration.remove();
181
+ });
182
+ }
183
+
139
184
  function clearSrcFolder(
140
185
  srcPath: string,
141
186
  count: number,
package/src/modelUtils.ts CHANGED
@@ -74,6 +74,60 @@ export function getBinaryType(usage: SchemaContext[]) {
74
74
  : "string | Uint8Array | ReadableStream<Uint8Array> | NodeJS.ReadableStream";
75
75
  }
76
76
 
77
+ export function isByteOrByteUnion(
78
+ program: Program,
79
+ dpgContext: SdkContext,
80
+ type: Type
81
+ ) {
82
+ const schema = getSchemaForType(program, dpgContext, type);
83
+ return isByteType(schema) || isByteUnion(schema);
84
+ }
85
+
86
+ function isByteType(schema: any) {
87
+ return schema.type === "string" && schema.format === "byte";
88
+ }
89
+
90
+ function isByteUnion(schema: any) {
91
+ if (!Array.isArray(schema.enum)) {
92
+ return false;
93
+ }
94
+ for (const ele of schema.enum) {
95
+ if (isByteType(ele)) {
96
+ return true;
97
+ }
98
+ }
99
+ return false;
100
+ }
101
+
102
+ function refineByteType(schema: any) {
103
+ schema.typeName = getBinaryType([
104
+ SchemaContext.Input,
105
+ SchemaContext.Exception
106
+ ]);
107
+ schema.outputTypeName = getBinaryType([SchemaContext.Output]);
108
+ return schema;
109
+ }
110
+
111
+ export function enrichBinaryTypeInBody(schema: any) {
112
+ if (isByteType(schema)) {
113
+ refineByteType(schema);
114
+ } else if (isByteUnion(schema)) {
115
+ const inputType: string[] = [];
116
+ for (const item of schema.enum) {
117
+ if (isByteType(item)) {
118
+ refineByteType(item);
119
+ }
120
+ // ignore the string type for input because we already have it in bytes union
121
+ if (getTypeName(item, [SchemaContext.Input]) !== "string") {
122
+ inputType.push(getTypeName(item, [SchemaContext.Input]));
123
+ }
124
+ }
125
+ // refine the input type
126
+ schema.typeName = inputType.join(" | ");
127
+ }
128
+ return schema;
129
+ }
130
+
77
131
  export function getSchemaForType(
78
132
  program: Program,
79
133
  dpgContext: SdkContext,
@@ -102,8 +156,17 @@ export function getSchemaForType(
102
156
  needRef
103
157
  ) as any;
104
158
  if (usage && usage.includes(SchemaContext.Output)) {
105
- schema.outputTypeName = `${schema.name}Output`;
106
- schema.typeName = `${schema.name}`;
159
+ if (!schema.name) {
160
+ //TODO: HANDLE ANONYMOUS
161
+ schema.outputTypeName =
162
+ schema.type === "object" ? "Record<string, any>" : "any";
163
+ schema.typeName =
164
+ schema.type === "object" ? "Record<string, unknown>" : "unknown";
165
+ schema.type = "unknown";
166
+ } else {
167
+ schema.outputTypeName = `${schema.name}Output`;
168
+ schema.typeName = `${schema.name}`;
169
+ }
107
170
  }
108
171
  schema.usage = usage;
109
172
  return schema;
@@ -169,7 +232,10 @@ function getSchemaForScalar(
169
232
  scalar: Scalar,
170
233
  relevantProperty?: ModelProperty
171
234
  ) {
172
- let result = getSchemaForStdScalar(program, scalar, relevantProperty);
235
+ const encodeData = getEncode(program, scalar);
236
+ let result: any = encodeData
237
+ ? getSchemaForScalar(program, dpgContext, encodeData.type)
238
+ : getSchemaForStdScalar(program, scalar, relevantProperty);
173
239
  if (!result && scalar.baseScalar) {
174
240
  result = getSchemaForScalar(program, dpgContext, scalar.baseScalar);
175
241
  }
@@ -789,23 +855,27 @@ function mapCadlStdTypeToTypeScript(
789
855
  }
790
856
  } else {
791
857
  if (schema.items.typeName) {
792
- schema.typeName = schema.items.typeName
793
- .split("|")
794
- .map((typeName: string) => {
795
- return `${typeName}[]`;
796
- })
797
- .join(" | ");
798
- if (
799
- schema.items.outputTypeName &&
800
- usage &&
801
- usage.includes(SchemaContext.Output)
802
- ) {
803
- schema.outputTypeName = schema.items.outputTypeName
858
+ if (schema.items.type === "dictionary") {
859
+ schema.typeName = `${schema.items.typeName}[]`;
860
+ } else {
861
+ schema.typeName = schema.items.typeName
804
862
  .split("|")
805
863
  .map((typeName: string) => {
806
864
  return `${typeName}[]`;
807
865
  })
808
866
  .join(" | ");
867
+ if (
868
+ schema.items.outputTypeName &&
869
+ usage &&
870
+ usage.includes(SchemaContext.Output)
871
+ ) {
872
+ schema.outputTypeName = schema.items.outputTypeName
873
+ .split("|")
874
+ .map((typeName: string) => {
875
+ return `${typeName}[]`;
876
+ })
877
+ .join(" | ");
878
+ }
809
879
  }
810
880
  } else if (schema.items.type.includes("|")) {
811
881
  schema.typeName = `(${schema.items.type})[]`;
@@ -909,6 +979,11 @@ function getSchemaForStdScalar(
909
979
  type: "number",
910
980
  format: "float"
911
981
  });
982
+ case "float":
983
+ return applyIntrinsicDecorators(program, cadlType, {
984
+ type: "number",
985
+ format: "float"
986
+ });
912
987
  case "string":
913
988
  return applyIntrinsicDecorators(program, cadlType, {
914
989
  type: "string"
@@ -4,7 +4,9 @@ export function buildApiIndexFile(project: Project, srcPath: string) {
4
4
  const apiFiles = project.getSourceFiles("**/src/api/**");
5
5
  const indexFile = project.createSourceFile(`${srcPath}/src/api/index.ts`);
6
6
  for (const file of apiFiles) {
7
- const exports = [...file.getExportedDeclarations().keys()];
7
+ const exports = [...file.getExportedDeclarations().keys()].filter(
8
+ (k) => !k.startsWith("_")
9
+ );
8
10
  indexFile.addExportDeclaration({
9
11
  moduleSpecifier: `./${file.getBaseNameWithoutExtension()}.js`,
10
12
  namedExports: exports
@@ -27,6 +27,12 @@ export function buildClassicalClient(
27
27
  const clientFile = project.createSourceFile(
28
28
  `${srcPath}/src/${classicalClientname}.ts`
29
29
  );
30
+
31
+ clientFile.addExportDeclaration({
32
+ namedExports: [`${classicalClientname}Options`],
33
+ moduleSpecifier: `./api/${modularClientName}Context.js`
34
+ });
35
+
30
36
  const clientClass = clientFile.addClass({
31
37
  isExported: true,
32
38
  name: `${classicalClientname}`
@@ -74,7 +80,7 @@ function importAllModels(clientFile: SourceFile, srcPath: string) {
74
80
  function importCredential(clientSourceFile: SourceFile): void {
75
81
  clientSourceFile.addImportDeclaration({
76
82
  moduleSpecifier: "@azure/core-auth",
77
- namedImports: ["TokenCredential", "AzureKeyCredential"]
83
+ namedImports: ["TokenCredential", "KeyCredential"]
78
84
  });
79
85
  }
80
86
 
@@ -119,6 +125,7 @@ function buildClientOperationGroups(
119
125
  clientClass.addMethods(
120
126
  declarations.map((d) => {
121
127
  const method: MethodDeclarationStructure = {
128
+ docs: d.getJsDocs().map((d) => d.getStructure()),
122
129
  name: d.getName() ?? "FIXME",
123
130
  kind: StructureKind.Method,
124
131
  returnType: d.getReturnType().getText(),
@@ -139,9 +146,4 @@ function buildClientOperationGroups(
139
146
  );
140
147
  }
141
148
  }
142
- // Import ClientOptions
143
- clientClass.getSourceFile().addImportDeclaration({
144
- moduleSpecifier: `./common/interfaces.js`,
145
- namedImports: ["ClientOptions"]
146
- });
147
149
  }
@@ -27,9 +27,17 @@ export function buildClientContext(
27
27
  moduleSpecifier: "../rest/index.js",
28
28
  namedExports: [`${client.name}Context`]
29
29
  });
30
- // clientContextFile.addExportAssignment({
31
- // expression: `${client.name}Context`
32
- // });
30
+
31
+ clientContextFile.addImportDeclaration({
32
+ moduleSpecifier: "@azure-rest/core-client",
33
+ namedImports: ["ClientOptions"]
34
+ });
35
+
36
+ clientContextFile.addInterface({
37
+ name: `${name}ClientOptions`,
38
+ isExported: true,
39
+ extends: ["ClientOptions"]
40
+ });
33
41
 
34
42
  const factoryFunction = clientContextFile.addFunction({
35
43
  docs: [description],