@autorest/typescript 6.0.0-beta.9 → 6.0.0-rc.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 (366) hide show
  1. package/README.md +42 -5
  2. package/dist/{src/generators/static/README.md.hbs → hlcREADME.md.hbs} +35 -3
  3. package/dist/hlcSamples.ts.hbs +49 -0
  4. package/dist/karma.conf.js.hbs +126 -0
  5. package/dist/paginateHelper.ts.hbs +208 -0
  6. package/dist/pollingHelper.ts.hbs +72 -0
  7. package/dist/rlcEnv.ts.hbs +3 -0
  8. package/dist/rlcREADME.md.hbs +71 -0
  9. package/dist/rlcRecordedClient.ts.hbs +26 -0
  10. package/dist/rlcSampleTest.spec.ts.hbs +20 -0
  11. package/dist/rlcSamples.ts.hbs +28 -0
  12. package/dist/sampleEnv.hbs +4 -0
  13. package/dist/sampleTest.ts.hbs +32 -0
  14. package/dist/samples.ts.hbs +0 -0
  15. package/dist/src/autorestSession.d.ts +17 -6
  16. package/dist/src/autorestSession.d.ts.map +1 -1
  17. package/dist/src/autorestSession.js +3 -9
  18. package/dist/src/autorestSession.js.map +1 -1
  19. package/dist/src/conflictResolver.d.ts +3 -0
  20. package/dist/src/conflictResolver.d.ts.map +1 -0
  21. package/dist/src/conflictResolver.js +43 -0
  22. package/dist/src/conflictResolver.js.map +1 -0
  23. package/dist/src/generators/LROGenerator.js +4 -4
  24. package/dist/src/generators/LROGenerator.js.map +1 -1
  25. package/dist/src/generators/clientFileGenerator.d.ts.map +1 -1
  26. package/dist/src/generators/clientFileGenerator.js +300 -46
  27. package/dist/src/generators/clientFileGenerator.js.map +1 -1
  28. package/dist/src/generators/indexGenerator.d.ts.map +1 -1
  29. package/dist/src/generators/indexGenerator.js +106 -14
  30. package/dist/src/generators/indexGenerator.js.map +1 -1
  31. package/dist/src/generators/mappersGenerator.d.ts.map +1 -1
  32. package/dist/src/generators/mappersGenerator.js +93 -19
  33. package/dist/src/generators/mappersGenerator.js.map +1 -1
  34. package/dist/src/generators/modelsGenerator.d.ts.map +1 -1
  35. package/dist/src/generators/modelsGenerator.js +80 -81
  36. package/dist/src/generators/modelsGenerator.js.map +1 -1
  37. package/dist/src/generators/operationGenerator.d.ts.map +1 -1
  38. package/dist/src/generators/operationGenerator.js +85 -96
  39. package/dist/src/generators/operationGenerator.js.map +1 -1
  40. package/dist/src/generators/operationInterfaceGenerator.js +20 -20
  41. package/dist/src/generators/operationInterfaceGenerator.js.map +1 -1
  42. package/dist/src/generators/parametersGenerator.d.ts.map +1 -1
  43. package/dist/src/generators/parametersGenerator.js +7 -8
  44. package/dist/src/generators/parametersGenerator.js.map +1 -1
  45. package/dist/src/generators/samples/hlcSampleGenerator.d.ts +13 -0
  46. package/dist/src/generators/samples/hlcSampleGenerator.d.ts.map +1 -0
  47. package/dist/src/generators/samples/hlcSampleGenerator.js +43 -0
  48. package/dist/src/generators/samples/hlcSampleGenerator.js.map +1 -0
  49. package/dist/src/generators/samples/hlcSamples.ts.hbs +49 -0
  50. package/dist/src/generators/samples/rlcSampleGenerator.d.ts +4 -0
  51. package/dist/src/generators/samples/rlcSampleGenerator.d.ts.map +1 -0
  52. package/dist/src/generators/samples/rlcSampleGenerator.js +64 -0
  53. package/dist/src/generators/samples/rlcSampleGenerator.js.map +1 -0
  54. package/dist/src/generators/samples/rlcSamples.ts.hbs +28 -0
  55. package/dist/src/generators/samples/sampleEnv.hbs +4 -0
  56. package/dist/src/generators/samples/sampleEnvGenerator.d.ts +3 -0
  57. package/dist/src/generators/samples/sampleEnvGenerator.d.ts.map +1 -0
  58. package/dist/src/generators/samples/sampleEnvGenerator.js +17 -0
  59. package/dist/src/generators/samples/sampleEnvGenerator.js.map +1 -0
  60. package/dist/src/generators/static/apiExtractorConfig.js +2 -2
  61. package/dist/src/generators/static/apiExtractorConfig.js.map +1 -1
  62. package/dist/src/generators/static/esLintConfigGenerator.d.ts +3 -0
  63. package/dist/src/generators/static/esLintConfigGenerator.d.ts.map +1 -0
  64. package/dist/src/generators/static/esLintConfigGenerator.js +26 -0
  65. package/dist/src/generators/static/esLintConfigGenerator.js.map +1 -0
  66. package/{src/generators/static/README.md.hbs → dist/src/generators/static/hlcREADME.md.hbs} +35 -3
  67. package/dist/src/generators/static/karma.conf.js.hbs +126 -0
  68. package/dist/src/generators/static/karmaConfigFileGenerator.d.ts +3 -0
  69. package/dist/src/generators/static/karmaConfigFileGenerator.d.ts.map +1 -0
  70. package/dist/src/generators/static/karmaConfigFileGenerator.js +23 -0
  71. package/dist/src/generators/static/karmaConfigFileGenerator.js.map +1 -0
  72. package/dist/src/generators/static/licenseFileGenerator.js +1 -1
  73. package/dist/src/generators/static/licenseFileGenerator.js.map +1 -1
  74. package/dist/src/generators/static/packageFileGenerator.d.ts.map +1 -1
  75. package/dist/src/generators/static/packageFileGenerator.js +255 -67
  76. package/dist/src/generators/static/packageFileGenerator.js.map +1 -1
  77. package/dist/src/generators/static/readmeFileGenerator.d.ts +2 -2
  78. package/dist/src/generators/static/readmeFileGenerator.d.ts.map +1 -1
  79. package/dist/src/generators/static/readmeFileGenerator.js +50 -23
  80. package/dist/src/generators/static/readmeFileGenerator.js.map +1 -1
  81. package/dist/src/generators/static/rlcREADME.md.hbs +71 -0
  82. package/dist/src/generators/static/rollupConfigFileGenerator.d.ts.map +1 -1
  83. package/dist/src/generators/static/rollupConfigFileGenerator.js +12 -71
  84. package/dist/src/generators/static/rollupConfigFileGenerator.js.map +1 -1
  85. package/dist/src/generators/static/tsConfigFileGenerator.d.ts.map +1 -1
  86. package/dist/src/generators/static/tsConfigFileGenerator.js +46 -18
  87. package/dist/src/generators/static/tsConfigFileGenerator.js.map +1 -1
  88. package/dist/src/generators/test/envBrowserFileGenerator.d.ts +3 -0
  89. package/dist/src/generators/test/envBrowserFileGenerator.d.ts.map +1 -0
  90. package/dist/src/generators/test/envBrowserFileGenerator.js +15 -0
  91. package/dist/src/generators/test/envBrowserFileGenerator.js.map +1 -0
  92. package/dist/src/generators/test/envFileGenerator.d.ts +3 -0
  93. package/dist/src/generators/test/envFileGenerator.d.ts.map +1 -0
  94. package/dist/src/generators/test/envFileGenerator.js +23 -0
  95. package/dist/src/generators/test/envFileGenerator.js.map +1 -0
  96. package/dist/src/generators/test/recordedClientFileGenerator.d.ts +3 -0
  97. package/dist/src/generators/test/recordedClientFileGenerator.d.ts.map +1 -0
  98. package/dist/src/generators/test/recordedClientFileGenerator.js +23 -0
  99. package/dist/src/generators/test/recordedClientFileGenerator.js.map +1 -0
  100. package/dist/src/generators/test/rlcEnv.ts.hbs +3 -0
  101. package/dist/src/generators/test/rlcRecordedClient.ts.hbs +26 -0
  102. package/dist/src/generators/test/rlcSampleTest.spec.ts.hbs +20 -0
  103. package/dist/src/generators/test/sampleTest.ts.hbs +32 -0
  104. package/dist/src/generators/test/sampleTestGenerator.d.ts +3 -0
  105. package/dist/src/generators/test/sampleTestGenerator.d.ts.map +1 -0
  106. package/dist/src/generators/test/sampleTestGenerator.js +34 -0
  107. package/dist/src/generators/test/sampleTestGenerator.js.map +1 -0
  108. package/dist/src/generators/tracingFileGenerator.d.ts.map +1 -1
  109. package/dist/src/generators/tracingFileGenerator.js +7 -21
  110. package/dist/src/generators/tracingFileGenerator.js.map +1 -1
  111. package/dist/src/generators/utils/docsUtils.js +2 -2
  112. package/dist/src/generators/utils/docsUtils.js.map +1 -1
  113. package/dist/src/generators/utils/operationsUtils.js +1 -1
  114. package/dist/src/generators/utils/operationsUtils.js.map +1 -1
  115. package/dist/src/generators/utils/pagingOperations.d.ts +5 -0
  116. package/dist/src/generators/utils/pagingOperations.d.ts.map +1 -1
  117. package/dist/src/generators/utils/pagingOperations.js +15 -15
  118. package/dist/src/generators/utils/pagingOperations.js.map +1 -1
  119. package/dist/src/generators/utils/parameterUtils.js +9 -9
  120. package/dist/src/generators/utils/parameterUtils.js.map +1 -1
  121. package/dist/src/generators/utils/responseTypeUtils.js +2 -2
  122. package/dist/src/generators/utils/responseTypeUtils.js.map +1 -1
  123. package/dist/src/generators/utils/tracingUtils.d.ts.map +1 -1
  124. package/dist/src/generators/utils/tracingUtils.js +2 -6
  125. package/dist/src/generators/utils/tracingUtils.js.map +1 -1
  126. package/dist/src/main.d.ts +2 -2
  127. package/dist/src/main.d.ts.map +1 -1
  128. package/dist/src/main.js +8 -8
  129. package/dist/src/main.js.map +1 -1
  130. package/dist/src/models/clientDetails.d.ts +10 -1
  131. package/dist/src/models/clientDetails.d.ts.map +1 -1
  132. package/dist/src/models/modelDetails.d.ts +2 -2
  133. package/dist/src/models/modelDetails.d.ts.map +1 -1
  134. package/dist/src/models/operationDetails.d.ts +1 -0
  135. package/dist/src/models/operationDetails.d.ts.map +1 -1
  136. package/dist/src/models/sampleDetails.d.ts +22 -0
  137. package/dist/src/models/sampleDetails.d.ts.map +1 -0
  138. package/dist/src/models/sampleDetails.js +3 -0
  139. package/dist/src/models/sampleDetails.js.map +1 -0
  140. package/dist/src/restLevelClient/generateClient.d.ts +1 -1
  141. package/dist/src/restLevelClient/generateClient.d.ts.map +1 -1
  142. package/dist/src/restLevelClient/generateClient.js +108 -167
  143. package/dist/src/restLevelClient/generateClient.js.map +1 -1
  144. package/dist/src/restLevelClient/generateClientDefinition.d.ts +6 -0
  145. package/dist/src/restLevelClient/generateClientDefinition.d.ts.map +1 -0
  146. package/dist/src/restLevelClient/generateClientDefinition.js +261 -0
  147. package/dist/src/restLevelClient/generateClientDefinition.js.map +1 -0
  148. package/dist/src/restLevelClient/generateIsUnexpectedHelper.d.ts +8 -0
  149. package/dist/src/restLevelClient/generateIsUnexpectedHelper.d.ts.map +1 -0
  150. package/dist/src/restLevelClient/generateIsUnexpectedHelper.js +204 -0
  151. package/dist/src/restLevelClient/generateIsUnexpectedHelper.js.map +1 -0
  152. package/dist/src/restLevelClient/generateMethodShortcuts.d.ts +8 -0
  153. package/dist/src/restLevelClient/generateMethodShortcuts.d.ts.map +1 -0
  154. package/dist/src/restLevelClient/generateMethodShortcuts.js +70 -0
  155. package/dist/src/restLevelClient/generateMethodShortcuts.js.map +1 -0
  156. package/dist/src/restLevelClient/generateObjectTypes.d.ts +3 -3
  157. package/dist/src/restLevelClient/generateObjectTypes.d.ts.map +1 -1
  158. package/dist/src/restLevelClient/generateObjectTypes.js +43 -31
  159. package/dist/src/restLevelClient/generateObjectTypes.js.map +1 -1
  160. package/dist/src/restLevelClient/generatePagingHelper.d.ts +3 -0
  161. package/dist/src/restLevelClient/generatePagingHelper.d.ts.map +1 -0
  162. package/dist/src/restLevelClient/generatePagingHelper.js +54 -0
  163. package/dist/src/restLevelClient/generatePagingHelper.js.map +1 -0
  164. package/dist/src/restLevelClient/generateParameterTypes.d.ts.map +1 -1
  165. package/dist/src/restLevelClient/generateParameterTypes.js +247 -44
  166. package/dist/src/restLevelClient/generateParameterTypes.js.map +1 -1
  167. package/dist/src/restLevelClient/generatePollingHelper.d.ts +3 -0
  168. package/dist/src/restLevelClient/generatePollingHelper.d.ts.map +1 -0
  169. package/dist/src/restLevelClient/generatePollingHelper.js +20 -0
  170. package/dist/src/restLevelClient/generatePollingHelper.js.map +1 -0
  171. package/dist/src/restLevelClient/generateResponseTypes.d.ts.map +1 -1
  172. package/dist/src/restLevelClient/generateResponseTypes.js +35 -23
  173. package/dist/src/restLevelClient/generateResponseTypes.js.map +1 -1
  174. package/dist/src/restLevelClient/generateRestLevel.d.ts.map +1 -1
  175. package/dist/src/restLevelClient/generateRestLevel.js +63 -16
  176. package/dist/src/restLevelClient/generateRestLevel.js.map +1 -1
  177. package/dist/src/restLevelClient/generateSchemaTypes.d.ts.map +1 -1
  178. package/dist/src/restLevelClient/generateSchemaTypes.js +29 -7
  179. package/dist/src/restLevelClient/generateSchemaTypes.js.map +1 -1
  180. package/dist/src/restLevelClient/generateTopLevelIndexFile.d.ts +4 -0
  181. package/dist/src/restLevelClient/generateTopLevelIndexFile.d.ts.map +1 -0
  182. package/dist/src/restLevelClient/generateTopLevelIndexFile.js +37 -0
  183. package/dist/src/restLevelClient/generateTopLevelIndexFile.js.map +1 -0
  184. package/dist/src/restLevelClient/getPropertySignature.d.ts +2 -2
  185. package/dist/src/restLevelClient/getPropertySignature.d.ts.map +1 -1
  186. package/dist/src/restLevelClient/getPropertySignature.js +10 -7
  187. package/dist/src/restLevelClient/getPropertySignature.js.map +1 -1
  188. package/dist/src/restLevelClient/helpers/hasPollingOperations.d.ts +4 -0
  189. package/dist/src/restLevelClient/helpers/hasPollingOperations.d.ts.map +1 -0
  190. package/dist/src/restLevelClient/helpers/hasPollingOperations.js +12 -0
  191. package/dist/src/restLevelClient/helpers/hasPollingOperations.js.map +1 -0
  192. package/dist/src/restLevelClient/helpers/modelHelpers.d.ts +4 -0
  193. package/dist/src/restLevelClient/helpers/modelHelpers.d.ts.map +1 -0
  194. package/dist/src/restLevelClient/helpers/modelHelpers.js +19 -0
  195. package/dist/src/restLevelClient/helpers/modelHelpers.js.map +1 -0
  196. package/dist/src/restLevelClient/helpers/operationHelpers.d.ts +10 -0
  197. package/dist/src/restLevelClient/helpers/operationHelpers.d.ts.map +1 -0
  198. package/dist/src/restLevelClient/helpers/operationHelpers.js +64 -0
  199. package/dist/src/restLevelClient/helpers/operationHelpers.js.map +1 -0
  200. package/dist/src/restLevelClient/interfaces.d.ts +33 -0
  201. package/dist/src/restLevelClient/interfaces.d.ts.map +1 -0
  202. package/dist/src/restLevelClient/interfaces.js +3 -0
  203. package/dist/src/restLevelClient/interfaces.js.map +1 -0
  204. package/dist/src/restLevelClient/mutateCodeModel.js +2 -2
  205. package/dist/src/restLevelClient/mutateCodeModel.js.map +1 -1
  206. package/dist/src/restLevelClient/operationHelpers.d.ts +4 -0
  207. package/dist/src/restLevelClient/operationHelpers.d.ts.map +1 -1
  208. package/dist/src/restLevelClient/operationHelpers.js +21 -10
  209. package/dist/src/restLevelClient/operationHelpers.js.map +1 -1
  210. package/dist/src/restLevelClient/paginateHelper.ts.hbs +208 -0
  211. package/dist/src/restLevelClient/pollingHelper.ts.hbs +72 -0
  212. package/dist/src/restLevelClient/samples/generateSamples.d.ts +23 -0
  213. package/dist/src/restLevelClient/samples/generateSamples.d.ts.map +1 -0
  214. package/dist/src/restLevelClient/samples/generateSamples.js +3 -0
  215. package/dist/src/restLevelClient/samples/generateSamples.js.map +1 -0
  216. package/dist/src/restLevelClient/samples/samples.ts.hbs +0 -0
  217. package/dist/src/restLevelClient/schemaHelpers.d.ts +8 -2
  218. package/dist/src/restLevelClient/schemaHelpers.d.ts.map +1 -1
  219. package/dist/src/restLevelClient/schemaHelpers.js +27 -12
  220. package/dist/src/restLevelClient/schemaHelpers.js.map +1 -1
  221. package/dist/src/transforms/extensions.js +10 -10
  222. package/dist/src/transforms/extensions.js.map +1 -1
  223. package/dist/src/transforms/groupTransforms.js +2 -2
  224. package/dist/src/transforms/groupTransforms.js.map +1 -1
  225. package/dist/src/transforms/mapperTransforms.d.ts.map +1 -1
  226. package/dist/src/transforms/mapperTransforms.js +29 -26
  227. package/dist/src/transforms/mapperTransforms.js.map +1 -1
  228. package/dist/src/transforms/objectTransforms.d.ts.map +1 -1
  229. package/dist/src/transforms/objectTransforms.js +42 -26
  230. package/dist/src/transforms/objectTransforms.js.map +1 -1
  231. package/dist/src/transforms/operationTransforms.d.ts.map +1 -1
  232. package/dist/src/transforms/operationTransforms.js +29 -26
  233. package/dist/src/transforms/operationTransforms.js.map +1 -1
  234. package/dist/src/transforms/optionsTransforms.js +1 -1
  235. package/dist/src/transforms/optionsTransforms.js.map +1 -1
  236. package/dist/src/transforms/parameterTransforms.d.ts.map +1 -1
  237. package/dist/src/transforms/parameterTransforms.js +43 -27
  238. package/dist/src/transforms/parameterTransforms.js.map +1 -1
  239. package/dist/src/transforms/samplesTransforms.d.ts +7 -0
  240. package/dist/src/transforms/samplesTransforms.d.ts.map +1 -0
  241. package/dist/src/transforms/samplesTransforms.js +293 -0
  242. package/dist/src/transforms/samplesTransforms.js.map +1 -0
  243. package/dist/src/transforms/transforms.d.ts +1 -2
  244. package/dist/src/transforms/transforms.d.ts.map +1 -1
  245. package/dist/src/transforms/transforms.js +26 -24
  246. package/dist/src/transforms/transforms.js.map +1 -1
  247. package/dist/src/transforms/urlTransforms.js +3 -3
  248. package/dist/src/transforms/urlTransforms.js.map +1 -1
  249. package/dist/src/typescriptGenerator.d.ts +2 -2
  250. package/dist/src/typescriptGenerator.d.ts.map +1 -1
  251. package/dist/src/typescriptGenerator.js +46 -46
  252. package/dist/src/typescriptGenerator.js.map +1 -1
  253. package/dist/src/utils/autorestOptions.d.ts +2 -2
  254. package/dist/src/utils/autorestOptions.d.ts.map +1 -1
  255. package/dist/src/utils/autorestOptions.js +141 -62
  256. package/dist/src/utils/autorestOptions.js.map +1 -1
  257. package/dist/src/utils/cloneOperation.js +2 -2
  258. package/dist/src/utils/cloneOperation.js.map +1 -1
  259. package/dist/src/utils/copyFiles.d.ts +2 -0
  260. package/dist/src/utils/copyFiles.d.ts.map +1 -0
  261. package/dist/src/utils/copyFiles.js +33 -0
  262. package/dist/src/utils/copyFiles.js.map +1 -0
  263. package/dist/src/utils/extractHeaders.js +4 -4
  264. package/dist/src/utils/extractHeaders.js.map +1 -1
  265. package/dist/src/utils/extractPaginationDetails.d.ts +5 -1
  266. package/dist/src/utils/extractPaginationDetails.d.ts.map +1 -1
  267. package/dist/src/utils/extractPaginationDetails.js +23 -10
  268. package/dist/src/utils/extractPaginationDetails.js.map +1 -1
  269. package/dist/src/utils/headersToSchema.js +1 -1
  270. package/dist/src/utils/headersToSchema.js.map +1 -1
  271. package/dist/src/utils/logger.js +1 -1
  272. package/dist/src/utils/logger.js.map +1 -1
  273. package/dist/src/utils/nameUtils.d.ts +6 -2
  274. package/dist/src/utils/nameUtils.d.ts.map +1 -1
  275. package/dist/src/utils/nameUtils.js +13 -8
  276. package/dist/src/utils/nameUtils.js.map +1 -1
  277. package/dist/src/utils/schemaHelpers.d.ts +6 -1
  278. package/dist/src/utils/schemaHelpers.d.ts.map +1 -1
  279. package/dist/src/utils/schemaHelpers.js +50 -7
  280. package/dist/src/utils/schemaHelpers.js.map +1 -1
  281. package/dist/src/utils/sortObjectSchemasHierarchically.js +1 -1
  282. package/dist/src/utils/sortObjectSchemasHierarchically.js.map +1 -1
  283. package/dist/src/utils/valueHelpers.js +1 -1
  284. package/dist/src/utils/valueHelpers.js.map +1 -1
  285. package/package.json +58 -39
  286. package/src/autorestSession.ts +25 -18
  287. package/src/conflictResolver.ts +61 -0
  288. package/src/generators/clientFileGenerator.ts +397 -36
  289. package/src/generators/indexGenerator.ts +118 -12
  290. package/src/generators/mappersGenerator.ts +108 -8
  291. package/src/generators/modelsGenerator.ts +98 -97
  292. package/src/generators/operationGenerator.ts +54 -93
  293. package/src/generators/parametersGenerator.ts +2 -3
  294. package/src/generators/samples/hlcSampleGenerator.ts +50 -0
  295. package/src/generators/samples/hlcSamples.ts.hbs +49 -0
  296. package/src/generators/samples/rlcSampleGenerator.ts +72 -0
  297. package/src/generators/samples/rlcSamples.ts.hbs +28 -0
  298. package/src/generators/samples/sampleEnv.hbs +4 -0
  299. package/src/generators/samples/sampleEnvGenerator.ts +14 -0
  300. package/src/generators/static/apiExtractorConfig.ts +2 -2
  301. package/src/generators/static/esLintConfigGenerator.ts +24 -0
  302. package/src/generators/static/hlcREADME.md.hbs +144 -0
  303. package/src/generators/static/karma.conf.js.hbs +126 -0
  304. package/src/generators/static/karmaConfigFileGenerator.ts +20 -0
  305. package/src/generators/static/packageFileGenerator.ts +292 -71
  306. package/src/generators/static/readmeFileGenerator.ts +79 -42
  307. package/src/generators/static/rlcREADME.md.hbs +71 -0
  308. package/src/generators/static/rollupConfigFileGenerator.ts +13 -71
  309. package/src/generators/static/tsConfigFileGenerator.ts +54 -19
  310. package/src/generators/test/envBrowserFileGenerator.ts +14 -0
  311. package/src/generators/test/envFileGenerator.ts +22 -0
  312. package/src/generators/test/recordedClientFileGenerator.ts +22 -0
  313. package/src/generators/test/rlcEnv.ts.hbs +3 -0
  314. package/src/generators/test/rlcRecordedClient.ts.hbs +26 -0
  315. package/src/generators/test/rlcSampleTest.spec.ts.hbs +20 -0
  316. package/src/generators/test/sampleTest.ts.hbs +32 -0
  317. package/src/generators/test/sampleTestGenerator.ts +32 -0
  318. package/src/generators/tracingFileGenerator.ts +6 -24
  319. package/src/generators/utils/pagingOperations.ts +1 -2
  320. package/src/generators/utils/tracingUtils.ts +1 -5
  321. package/src/main.ts +8 -5
  322. package/src/models/clientDetails.ts +11 -1
  323. package/src/models/modelDetails.ts +2 -2
  324. package/src/models/operationDetails.ts +1 -0
  325. package/src/models/sampleDetails.ts +22 -0
  326. package/src/restLevelClient/generateClient.ts +134 -244
  327. package/src/restLevelClient/generateClientDefinition.ts +386 -0
  328. package/src/restLevelClient/generateIsUnexpectedHelper.ts +224 -0
  329. package/src/restLevelClient/generateMethodShortcuts.ts +121 -0
  330. package/src/restLevelClient/generateObjectTypes.ts +62 -21
  331. package/src/restLevelClient/generatePagingHelper.ts +69 -0
  332. package/src/restLevelClient/generateParameterTypes.ts +377 -56
  333. package/src/restLevelClient/generatePollingHelper.ts +19 -0
  334. package/src/restLevelClient/generateResponseTypes.ts +36 -17
  335. package/src/restLevelClient/generateRestLevel.ts +63 -8
  336. package/src/restLevelClient/generateSchemaTypes.ts +43 -8
  337. package/src/restLevelClient/generateTopLevelIndexFile.ts +37 -0
  338. package/src/restLevelClient/getPropertySignature.ts +12 -4
  339. package/src/restLevelClient/helpers/hasPollingOperations.ts +15 -0
  340. package/src/restLevelClient/helpers/modelHelpers.ts +15 -0
  341. package/src/restLevelClient/helpers/operationHelpers.ts +93 -0
  342. package/src/restLevelClient/interfaces.ts +39 -0
  343. package/src/restLevelClient/operationHelpers.ts +23 -9
  344. package/src/restLevelClient/paginateHelper.ts.hbs +208 -0
  345. package/src/restLevelClient/pollingHelper.ts.hbs +72 -0
  346. package/src/restLevelClient/samples/generateSamples.ts +23 -0
  347. package/src/restLevelClient/samples/samples.ts.hbs +0 -0
  348. package/src/restLevelClient/schemaHelpers.ts +30 -8
  349. package/src/transforms/mapperTransforms.ts +11 -5
  350. package/src/transforms/objectTransforms.ts +26 -6
  351. package/src/transforms/operationTransforms.ts +6 -1
  352. package/src/transforms/parameterTransforms.ts +26 -7
  353. package/src/transforms/samplesTransforms.ts +349 -0
  354. package/src/transforms/transforms.ts +14 -9
  355. package/src/typescriptGenerator.ts +40 -53
  356. package/src/utils/autorestOptions.ts +198 -88
  357. package/src/utils/copyFiles.ts +36 -0
  358. package/src/utils/extractPaginationDetails.ts +19 -1
  359. package/src/utils/nameUtils.ts +18 -9
  360. package/src/utils/schemaHelpers.ts +51 -4
  361. package/CHANGELOG.md +0 -56
  362. package/dist/src/generators/clientContextFileGenerator.d.ts +0 -5
  363. package/dist/src/generators/clientContextFileGenerator.d.ts.map +0 -1
  364. package/dist/src/generators/clientContextFileGenerator.js +0 -263
  365. package/dist/src/generators/clientContextFileGenerator.js.map +0 -1
  366. package/src/generators/clientContextFileGenerator.ts +0 -405
@@ -1,405 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
-
4
- import {
5
- Project,
6
- PropertyDeclarationStructure,
7
- ConstructorDeclaration,
8
- CodeBlockWriter,
9
- ClassDeclaration,
10
- SourceFile
11
- } from "ts-morph";
12
- import { normalizeName, NameType } from "../utils/nameUtils";
13
- import { ClientDetails } from "../models/clientDetails";
14
- import { PackageDetails } from "../models/packageDetails";
15
- import { ParameterDetails } from "../models/parameterDetails";
16
- import { ImplementationLocation, SchemaType } from "@autorest/codemodel";
17
- import { EndpointDetails } from "../transforms/urlTransforms";
18
- import { formatJsDocParam } from "./utils/parameterUtils";
19
- import { getAutorestOptions } from "../autorestSession";
20
-
21
- export function generateClientContext(
22
- clientDetails: ClientDetails,
23
- packageDetails: PackageDetails,
24
- project: Project
25
- ) {
26
- const {
27
- useCoreV2,
28
- hideClients,
29
- addCredentials,
30
- srcPath
31
- } = getAutorestOptions();
32
-
33
- const importedModels = new Set<string>();
34
- const clientParams = clientDetails.parameters.filter(
35
- param => param.implementationLocation === ImplementationLocation.Client
36
- );
37
-
38
- const hasLro = clientDetails.operationGroups.some(og =>
39
- og.operations.some(o => o.isLro)
40
- );
41
-
42
- const clientContextClassName = `${clientDetails.className}Context`;
43
- const clientContextFileName = normalizeName(
44
- clientContextClassName,
45
- NameType.File
46
- );
47
-
48
- const sourceFile = project.createSourceFile(
49
- `${srcPath}/${clientContextFileName}.ts`,
50
- undefined,
51
- {
52
- overwrite: true
53
- }
54
- );
55
-
56
- !useCoreV2 && writePackageInfo(sourceFile, packageDetails);
57
-
58
- const contextClass = buildClass(sourceFile, clientContextClassName);
59
-
60
- if (hideClients) {
61
- contextClass.addJsDoc({
62
- tags: [
63
- {
64
- tagName: "internal"
65
- }
66
- ]
67
- });
68
- }
69
-
70
- writeClassProperties(contextClass, clientParams, importedModels);
71
-
72
- const classConstructor = buildConstructor(contextClass, {
73
- clientContextClassName,
74
- clientClassName: clientDetails.className,
75
- clientParams,
76
- importedModels
77
- });
78
-
79
- writeConstructorBody(
80
- classConstructor,
81
- {
82
- clientParams,
83
- clientDetails
84
- },
85
- hasLro
86
- );
87
-
88
- const hasCredentials = !!addCredentials;
89
- writeImports(sourceFile, hasLro, importedModels, hasCredentials);
90
- sourceFile.fixUnusedIdentifiers();
91
- }
92
-
93
- interface WriteConstructorBodyParameters {
94
- clientParams: ParameterDetails[];
95
- clientDetails: ClientDetails;
96
- }
97
-
98
- function writeImports(
99
- sourceFile: SourceFile,
100
- hasLro: boolean,
101
- importedModels: Set<string>,
102
- hasCredentials: boolean
103
- ) {
104
- const { useCoreV2 } = getAutorestOptions();
105
-
106
- if (!useCoreV2) {
107
- sourceFile.addImportDeclaration({
108
- namespaceImport: "coreHttp",
109
- moduleSpecifier: "@azure/core-http"
110
- });
111
- } else {
112
- sourceFile.addImportDeclaration({
113
- namespaceImport: "coreClient",
114
- moduleSpecifier: "@azure/core-client"
115
- });
116
- if (hasCredentials) {
117
- sourceFile.addImportDeclaration({
118
- namespaceImport: "coreAuth",
119
- moduleSpecifier: "@azure/core-auth"
120
- });
121
- }
122
- }
123
-
124
- if (importedModels.size) {
125
- sourceFile.addImportDeclaration({
126
- namedImports: [...importedModels],
127
- moduleSpecifier: "./models"
128
- });
129
- }
130
- }
131
-
132
- function writePackageInfo(
133
- sourceFile: SourceFile,
134
- packageDetails: PackageDetails
135
- ) {
136
- sourceFile.addStatements([
137
- `\n\n`,
138
- `const packageName = "${packageDetails.name || ""}";`,
139
- `const packageVersion = "${packageDetails.version || ""}";`
140
- ]);
141
- }
142
-
143
- function writeClassProperties(
144
- contextClass: ClassDeclaration,
145
- clientParams: ParameterDetails[],
146
- importedModels: Set<string>
147
- ) {
148
- const params = clientParams.filter(p => !p.isSynthetic);
149
- params.forEach(({ typeDetails }) =>
150
- typeDetails.usedModels.forEach(model => importedModels.add(model))
151
- );
152
- contextClass.addProperties(
153
- params.map(param => {
154
- return {
155
- name: param.name,
156
- type: param.typeDetails.typeName,
157
- hasQuestionToken: !param.required
158
- } as PropertyDeclarationStructure;
159
- })
160
- );
161
- }
162
-
163
- function writeConstructorBody(
164
- classConstructor: ConstructorDeclaration,
165
- { clientParams, clientDetails }: WriteConstructorBodyParameters,
166
- hasLro: boolean
167
- ) {
168
- const { useCoreV2 } = getAutorestOptions();
169
-
170
- const requiredParams = getRequiredParameters(clientParams);
171
- const addBlankLine = true;
172
- const requiredParameters = getRequiredParamAssignments(requiredParams);
173
- const constantParameters = getConstantClientParamAssignments(clientParams);
174
- classConstructor.addStatements([
175
- writeStatements(getRequiredParamChecks(requiredParams), addBlankLine),
176
- writeStatement(
177
- writeDefaultOptions(
178
- clientParams.some(p => p.name === "credentials"),
179
- hasLro,
180
- clientDetails
181
- )
182
- )
183
- ]);
184
-
185
- !useCoreV2 &&
186
- classConstructor.addStatements([
187
- writeStatement(getEndpointStatement(clientDetails.endpoint), addBlankLine)
188
- ]);
189
-
190
- classConstructor.addStatements([
191
- requiredParameters.length ? "// Parameter assignments" : "",
192
- writeStatements(getRequiredParamAssignments(requiredParams), addBlankLine),
193
- constantParameters.length
194
- ? "// Assigning values to Constant parameters"
195
- : "",
196
- writeStatements(constantParameters, addBlankLine)
197
- ]);
198
- }
199
-
200
- const writeStatement = (content: string, shouldAddBlankLine = false) => (
201
- writer: CodeBlockWriter
202
- ) => {
203
- if (content) {
204
- writer.writeLine(content);
205
- shouldAddBlankLine && writer.blankLine();
206
- }
207
- };
208
-
209
- const writeStatements = (lines: string[], shouldAddBlankLine = false) => (
210
- writer: CodeBlockWriter
211
- ) => {
212
- lines.forEach(line => writer.writeLine(line));
213
- shouldAddBlankLine && writer.blankLine();
214
- };
215
-
216
- function getCredentialScopesValue(credentialScopes?: string | string[]) {
217
- if (Array.isArray(credentialScopes)) {
218
- return `[${credentialScopes.map(scope => `"${scope}"`).join()}]`;
219
- } else if (typeof credentialScopes === "string") {
220
- return `"${credentialScopes}"`;
221
- }
222
-
223
- return credentialScopes;
224
- }
225
-
226
- function writeDefaultOptions(
227
- hasCredentials: boolean,
228
- hasLro: boolean,
229
- clientDetails: ClientDetails
230
- ) {
231
- const { useCoreV2, credentialScopes, packageDetails } = getAutorestOptions();
232
-
233
- const credentialScopesValues = getCredentialScopesValue(credentialScopes);
234
- const addScopes = credentialScopes
235
- ? `if(!options.credentialScopes) {
236
- options.credentialScopes = ${credentialScopesValues}
237
- }`
238
- : "";
239
-
240
- const defaults = !hasCredentials
241
- ? `const defaults: ${clientDetails.className}OptionalParams = {
242
- requestContentType: "application/json; charset=utf-8"
243
- };`
244
- : `const defaults: ${clientDetails.className}OptionalParams = {
245
- requestContentType: "application/json; charset=utf-8",
246
- credential: credentials
247
- };`;
248
-
249
- return !useCoreV2
250
- ? `// Initializing default values for options
251
- if (!options) {
252
- options = {};
253
- }
254
-
255
- const defaultUserAgent = \`azsdk-js-\${packageName.replace("@azure/","")}/\${packageVersion} \${coreHttp.getDefaultUserAgentValue()}\`;
256
-
257
- ${addScopes}
258
-
259
- super(${hasCredentials ? "credentials" : `undefined`}, {
260
- ...options,
261
- userAgent: options.userAgent
262
- ? \`\${options.userAgent} \${defaultUserAgent}\`
263
- : \`\${defaultUserAgent}\`
264
- });
265
-
266
- this.requestContentType = "application/json; charset=utf-8";
267
-
268
- `
269
- : `// Initializing default values for options
270
- if (!options) {
271
- options = {};
272
- }
273
- ${defaults}
274
-
275
- const packageDetails = \`azsdk-js-${packageDetails.name.replace(
276
- "@azure/",
277
- ""
278
- )}/${packageDetails.version}\`;
279
- const userAgentPrefix =
280
- options.userAgentOptions && options.userAgentOptions.userAgentPrefix
281
- ? \`\${options.userAgentOptions.userAgentPrefix} \${packageDetails}\`
282
- : \`\${packageDetails}\`;
283
-
284
- ${addScopes}
285
- const optionsWithDefaults = {
286
- ...defaults,
287
- ...options,
288
- userAgentOptions: {
289
- userAgentPrefix
290
- },
291
- baseUri: ${getEndpoint(clientDetails.endpoint)}
292
- };
293
- super(optionsWithDefaults);
294
- `;
295
- }
296
-
297
- function buildClass(sourceFile: SourceFile, clientContextClassName: string) {
298
- const { useCoreV2 } = getAutorestOptions();
299
-
300
- return sourceFile.addClass({
301
- name: clientContextClassName,
302
- extends: !useCoreV2 ? "coreHttp.ServiceClient" : "coreClient.ServiceClient",
303
- isExported: true
304
- });
305
- }
306
-
307
- interface BuildContructorParams {
308
- clientContextClassName: string;
309
- clientClassName: string;
310
- clientParams: ParameterDetails[];
311
- importedModels: Set<string>;
312
- }
313
-
314
- function buildConstructor(
315
- contextClass: ClassDeclaration,
316
- {
317
- clientContextClassName,
318
- clientParams,
319
- clientClassName,
320
- importedModels
321
- }: BuildContructorParams
322
- ) {
323
- const requiredParams = getRequiredParameters(clientParams);
324
- const hasClientOptionalParams = clientParams.some(p => !p.required);
325
- const docs = [
326
- `Initializes a new instance of the ${clientContextClassName} class.`,
327
- ...formatJsDocParam(requiredParams),
328
- `@param options The parameter options`
329
- ]
330
- .filter(d => !!d)
331
- .join("\n");
332
-
333
- let clientOptionsParameterType = "coreHttp.ServiceClientOptions";
334
-
335
- if (hasClientOptionalParams) {
336
- const typeName = `${clientClassName}OptionalParams`;
337
- importedModels.add(typeName);
338
- clientOptionsParameterType = typeName;
339
- }
340
-
341
- requiredParams.forEach(({ typeDetails }) =>
342
- typeDetails.usedModels.forEach(model => importedModels.add(model))
343
- );
344
-
345
- return contextClass.addConstructor({
346
- docs: [docs],
347
- parameters: [
348
- ...requiredParams.map(p => ({
349
- name: p.name,
350
- type: p.typeDetails.typeName
351
- })),
352
- {
353
- name: "options",
354
- hasQuestionToken: true,
355
- type: clientOptionsParameterType
356
- }
357
- ]
358
- });
359
- }
360
-
361
- function getRequiredParameters(parameters: ParameterDetails[]) {
362
- /**
363
- * Getting parameters that are marked as required, and also don't have a defaultValue.
364
- * Constants are also exluded since they have defined value
365
- */
366
- return parameters.filter(
367
- p => p.required && p.schemaType !== SchemaType.Constant && !p.defaultValue
368
- );
369
- }
370
-
371
- function getEndpointStatement({ endpoint }: EndpointDetails) {
372
- return `this.baseUri = options.endpoint ${
373
- endpoint ? ` || "${endpoint}"` : ""
374
- };`;
375
- }
376
-
377
- function getConstantClientParamAssignments(
378
- clientParameters: ParameterDetails[]
379
- ) {
380
- return clientParameters
381
- .filter(p => !!p.defaultValue || p.schemaType === SchemaType.Constant)
382
- .map(
383
- ({ name, defaultValue }) =>
384
- `this.${name} = options.${name} || ${defaultValue}`
385
- );
386
- }
387
-
388
- function getRequiredParamChecks(requiredParameters: ParameterDetails[]) {
389
- return requiredParameters.map(
390
- ({ name }) => `if(${name} === undefined) {
391
- throw new Error("'${name}' cannot be null");
392
- }`
393
- );
394
- }
395
-
396
- function getRequiredParamAssignments(requiredParameters: ParameterDetails[]) {
397
- const disallowedClientParameters = ["credentials"];
398
- return requiredParameters
399
- .filter(({ name }) => !disallowedClientParameters.includes(name))
400
- .map(({ name }) => `this.${name} = ${name};`);
401
- }
402
-
403
- function getEndpoint({ endpoint }: EndpointDetails) {
404
- return `options.endpoint ${endpoint ? ` || "${endpoint}"` : ""}`;
405
- }