@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
@@ -0,0 +1,71 @@
1
+ # {{ clientDescriptiveName }} library for JavaScript
2
+
3
+ {{ description }}
4
+
5
+ **Please rely heavily on {{#if serviceDocURL}}[the service's documentation]({{ serviceDocURL }}) and {{/if}}our [REST client docs](https://github.com/Azure/azure-sdk-for-js/blob/main/documentation/rest-clients.md) to use this library**
6
+
7
+ Key links:
8
+
9
+ {{#if packageSourceURL}}
10
+ - [Source code]({{ packageSourceURL }})
11
+ {{/if}}
12
+ {{#if packageNPMURL}}
13
+ - [Package (NPM)]({{ packageNPMURL }})
14
+ {{/if}}
15
+ {{#if apiRefURL}}
16
+ - [API reference documentation]({{ apiRefURL }})
17
+ {{/if}}
18
+ {{#if serviceDocURL}}
19
+ - [Product documentation]({{ serviceDocURL }})
20
+ {{/if}}
21
+ {{#if samplesURL}}
22
+ - [Samples]({{ samplesURL }})
23
+ {{/if}}
24
+
25
+ ## Getting started
26
+
27
+ ### Currently supported environments
28
+
29
+ - Node.js version 14.x.x or higher
30
+
31
+ ### Prerequisites
32
+
33
+ - You must have an [Azure subscription](https://azure.microsoft.com/free/){{#if dependencyLink}} and follow [these]({{ dependencyLink }}) instructions{{/if}} to use this package.
34
+
35
+ ### Install the `{{ clientPackageName }}` package
36
+
37
+ Install the {{ clientDescriptiveName }} REST client library for JavaScript with `npm`:
38
+
39
+ ```bash
40
+ npm install {{ clientPackageName }}
41
+ ```
42
+
43
+ ### Create and authenticate a `{{ clientClassName }}`
44
+
45
+ To use an [Azure Active Directory (AAD) token credential](https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity/samples/AzureIdentityExamples.md#authenticating-with-a-pre-fetched-access-token),
46
+ provide an instance of the desired credential type obtained from the
47
+ [@azure/identity](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/identity/identity#credentials) library.
48
+
49
+ To authenticate with AAD, you must first `npm` install [`@azure/identity`](https://www.npmjs.com/package/@azure/identity) {{#if dependencyLink}}and
50
+ [{{dependencyDescription }}]({{ dependencyLink }}){{/if}}
51
+
52
+ After setup, you can choose which type of [credential](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/identity/identity#credentials) from `@azure/identity` to use.
53
+ As an example, [DefaultAzureCredential](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/identity/identity#defaultazurecredential)
54
+ can be used to authenticate the client.
55
+
56
+ Set the values of the client ID, tenant ID, and client secret of the AAD application as environment variables:
57
+ AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET
58
+
59
+ ## Troubleshooting
60
+
61
+ ### Logging
62
+
63
+ Enabling logging may help uncover useful information about failures. In order to see a log of HTTP requests and responses, set the `AZURE_LOG_LEVEL` environment variable to `info`. Alternatively, logging can be enabled at runtime by calling `setLogLevel` in the `@azure/logger`:
64
+
65
+ ```javascript
66
+ import { setLogLevel } from "@azure/logger";
67
+
68
+ setLogLevel("info");
69
+ ```
70
+
71
+ For more detailed instructions on how to enable logs, you can look at the [@azure/logger package docs](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/core/logger).
@@ -5,12 +5,17 @@ import { Project } from "ts-morph";
5
5
  import { getAutorestOptions } from "../../autorestSession";
6
6
 
7
7
  export function generateRollupConfig(project: Project) {
8
- const { generateMetadata } = getAutorestOptions();
8
+ const { generateMetadata, restLevelClient, azureSdkForJs } = getAutorestOptions();
9
9
 
10
10
  if (!generateMetadata) {
11
11
  return;
12
12
  }
13
13
 
14
+ // when it's generating rlc codes, only generate rollup config in codegen test
15
+ if (restLevelClient && azureSdkForJs) {
16
+ return;
17
+ }
18
+
14
19
  const rollupFile = project.createSourceFile("rollup.config.js", undefined, {
15
20
  overwrite: true
16
21
  });
@@ -24,62 +29,14 @@ export function generateRollupConfig(project: Project) {
24
29
 
25
30
  import nodeBuiltins from "builtin-modules";
26
31
 
27
- /**
28
- * Gets the proper configuration needed for rollup's commonJS plugin for @opentelemetry/api.
29
- *
30
- * NOTE: this manual configuration is only needed because OpenTelemetry uses an
31
- * __exportStar downleveled helper function to declare its exports which confuses
32
- * rollup's automatic discovery mechanism.
33
- *
34
- * @returns an object reference that can be \`...\`'d into your cjs() configuration.
35
- */
36
- export function openTelemetryCommonJs() {
37
- const namedExports = {};
38
-
39
- for (const key of [
40
- "@opentelemetry/api",
41
- "@azure/core-tracing/node_modules/@opentelemetry/api"
42
- ]) {
43
- namedExports[key] = [
44
- "SpanKind",
45
- "TraceFlags",
46
- "getSpan",
47
- "setSpan",
48
- "SpanStatusCode",
49
- "getSpanContext",
50
- "setSpanContext"
51
- ];
52
- }
53
-
54
- const releasedOpenTelemetryVersions = ["0.10.2", "1.0.0-rc.0"];
55
-
56
- for (const version of releasedOpenTelemetryVersions) {
57
- namedExports[
58
- // working around a limitation in the rollup common.js plugin - it's not able to resolve these modules so the named exports listed above will not get applied. We have to drill down to the actual path.
59
- \`../../../common/temp/node_modules/.pnpm/@opentelemetry/api@\${version}/node_modules/@opentelemetry/api/build/src/index.js\`
60
- ] = [
61
- "SpanKind",
62
- "TraceFlags",
63
- "getSpan",
64
- "setSpan",
65
- "StatusCode",
66
- "CanonicalCode",
67
- "getSpanContext",
68
- "setSpanContext"
69
- ];
70
- }
71
-
72
- return namedExports;
73
- }
74
-
75
32
  // #region Warning Handler
76
33
 
77
34
  /**
78
- * A function that can determine whether a rollupwarning should be ignored. If
35
+ * A function that can determine whether a rollup warning should be ignored. If
79
36
  * the function returns \`true\`, then the warning will not be displayed.
80
37
  */
81
38
 
82
- function ignoreNiseSinonEvalWarnings(warning) {
39
+ function ignoreNiseSinonEval(warning) {
83
40
  return (
84
41
  warning.code === "EVAL" &&
85
42
  (warning.id && ((warning.id.includes("node_modules/nise")) ||
@@ -87,7 +44,7 @@ export function generateRollupConfig(project: Project) {
87
44
  );
88
45
  }
89
46
 
90
- function ignoreChaiCircularDependencyWarnings(warning) {
47
+ function ignoreChaiCircularDependency(warning) {
91
48
  return (
92
49
  warning.code === "CIRCULAR_DEPENDENCY" &&
93
50
  (warning.importer && warning.importer.includes("node_modules/chai") === true)
@@ -95,8 +52,8 @@ export function generateRollupConfig(project: Project) {
95
52
  }
96
53
 
97
54
  const warningInhibitors = [
98
- ignoreChaiCircularDependencyWarnings,
99
- ignoreNiseSinonEvalWarnings
55
+ ignoreChaiCircularDependency,
56
+ ignoreNiseSinonEval
100
57
  ];
101
58
 
102
59
  /**
@@ -131,22 +88,7 @@ export function generateRollupConfig(project: Project) {
131
88
  nodeResolve({
132
89
  mainFields: ["module", "browser"]
133
90
  }),
134
- cjs({
135
- namedExports: {
136
- // Chai's strange internal architecture makes it impossible to statically
137
- // analyze its exports.
138
- chai: [
139
- "version",
140
- "use",
141
- "util",
142
- "config",
143
- "expect",
144
- "should",
145
- "assert"
146
- ],
147
- ...openTelemetryCommonJs()
148
- }
149
- }),
91
+ cjs(),
150
92
  json(),
151
93
  sourcemaps()
152
94
  //viz({ filename: "dist-test/browser-stats.html", sourcemap: true })
@@ -185,7 +127,7 @@ export function generateRollupConfig(project: Project) {
185
127
  ],
186
128
  output: { file: "dist/index.js", format: "cjs", sourcemap: true },
187
129
  preserveSymlinks: false,
188
- plugins: [sourcemaps(), nodeResolve(), cjs()]
130
+ plugins: [sourcemaps(), nodeResolve()]
189
131
  };
190
132
 
191
133
  const config = [baseConfig];
@@ -4,7 +4,7 @@
4
4
  import { Project } from "ts-morph";
5
5
  import { getAutorestOptions } from "../../autorestSession";
6
6
 
7
- const highLevelTsConfig = {
7
+ const highLevelTsConfig: Record<string, any> = {
8
8
  compilerOptions: {
9
9
  module: "es6",
10
10
  moduleResolution: "node",
@@ -24,33 +24,68 @@ const highLevelTsConfig = {
24
24
  exclude: ["node_modules"]
25
25
  };
26
26
 
27
- const restLevelTsConfig = {
28
- compilerOptions: {
29
- module: "es6",
30
- target: "es2015",
31
- moduleResolution: "node",
32
- declaration: true,
33
- declarationMap: true,
34
- outDir: "./dist-esm"
27
+
28
+ const restLevelTsConfigInAzureSdkForJs: Record<string, any> = {
29
+ "extends": "../../../tsconfig.package",
30
+ "compilerOptions": {
31
+ "outDir": "./dist-esm",
32
+ "declarationDir": "./types",
35
33
  },
36
- exclude: [
37
- "node_modules",
38
- "types",
39
- "temp",
40
- "browser",
41
- "dist",
42
- "dist-esm",
43
- "./samples/**/*.ts"
44
- ]
34
+ "include": ["src/**/*.ts"]
45
35
  };
46
36
 
37
+ const restLevelTsConfigNotInAzureSdkForJs: Record<string, any> = {
38
+ "compilerOptions": {
39
+ "target": "ES2017",
40
+ "module": "es6",
41
+ "lib": [],
42
+ "declaration": true,
43
+ "declarationMap": true,
44
+ "inlineSources": true,
45
+ "sourceMap": true,
46
+ "importHelpers": true,
47
+ "strict": true,
48
+ "alwaysStrict": true,
49
+ "noUnusedLocals": true,
50
+ "noUnusedParameters": true,
51
+ "noImplicitReturns": true,
52
+ "noFallthroughCasesInSwitch": true,
53
+ "forceConsistentCasingInFileNames": true,
54
+ "moduleResolution": "node",
55
+ "allowSyntheticDefaultImports": true,
56
+ "esModuleInterop": true,
57
+ "outDir": "./dist-esm",
58
+ "declarationDir": "./types"
59
+ },
60
+ "include": ["./src/**/*.ts"]
61
+ }
62
+
63
+
47
64
  export function generateTsConfig(project: Project) {
48
- const { generateMetadata, restLevelClient } = getAutorestOptions();
65
+ const { generateMetadata, restLevelClient, generateTest, packageDetails, generateSample, azureSdkForJs } = getAutorestOptions();
49
66
 
50
67
  if (!generateMetadata) {
51
68
  return;
52
69
  }
53
70
 
71
+ const clientPackageName = packageDetails.name;
72
+
73
+ const restLevelTsConfig = azureSdkForJs ? restLevelTsConfigInAzureSdkForJs : restLevelTsConfigNotInAzureSdkForJs;
74
+
75
+ if (generateTest) {
76
+ highLevelTsConfig.include.push("./test/**/*.ts");
77
+ restLevelTsConfig.include.push("./test/**/*.ts");
78
+ }
79
+
80
+ if (generateSample) {
81
+ highLevelTsConfig.include.push("samples-dev/**/*.ts");
82
+ highLevelTsConfig.compilerOptions["paths"] = {};
83
+ highLevelTsConfig.compilerOptions["paths"][clientPackageName] = ["./src/index"];
84
+ restLevelTsConfig.include.push("samples-dev/**/*.ts");
85
+ restLevelTsConfig.compilerOptions["paths"] = {};
86
+ restLevelTsConfig.compilerOptions["paths"][clientPackageName] = ["./src/index"];
87
+ }
88
+
54
89
  const tsConfigContents = restLevelClient
55
90
  ? restLevelTsConfig
56
91
  : highLevelTsConfig;
@@ -0,0 +1,14 @@
1
+ import { Project } from "ts-morph";
2
+ import { getAutorestOptions } from "../../autorestSession";
3
+
4
+ export function generateEnvBrowserFile(
5
+ project: Project
6
+ ) {
7
+ const { generateTest, restLevelClient } = getAutorestOptions();
8
+ if (!generateTest || !restLevelClient) {
9
+ return;
10
+ }
11
+ project.createSourceFile("test/public/utils/env.browser.ts", "", {
12
+ overwrite: true
13
+ });
14
+ }
@@ -0,0 +1,22 @@
1
+ import { Project } from "ts-morph";
2
+ import * as path from 'path';
3
+ import * as fs from 'fs';
4
+ import * as hbs from "handlebars";
5
+ import { getAutorestOptions } from "../../autorestSession";
6
+
7
+ export function generateEnvFile(
8
+ project: Project
9
+ ) {
10
+ const { generateTest, restLevelClient } = getAutorestOptions();
11
+ if (!generateTest || !restLevelClient) {
12
+ return;
13
+ }
14
+ const metadata = {}
15
+ const file = fs.readFileSync(path.join(__dirname, "rlcEnv.ts.hbs"), {
16
+ encoding: "utf-8"
17
+ });
18
+ const envFileContents = hbs.compile(file, { noEscape: true });
19
+ project.createSourceFile("test/public/utils/env.ts", envFileContents(metadata), {
20
+ overwrite: true
21
+ });
22
+ }
@@ -0,0 +1,22 @@
1
+ import { Project } from "ts-morph";
2
+ import * as path from 'path';
3
+ import * as fs from 'fs';
4
+ import * as hbs from "handlebars";
5
+ import { getAutorestOptions } from "../../autorestSession";
6
+
7
+ export function generateRecordedClientFile(
8
+ project: Project
9
+ ) {
10
+ const { generateTest, restLevelClient } = getAutorestOptions();
11
+ if (!generateTest || !restLevelClient) {
12
+ return;
13
+ }
14
+ const metadata = {}
15
+ const file = fs.readFileSync(path.join(__dirname, "rlcRecordedClient.ts.hbs"), {
16
+ encoding: "utf-8"
17
+ });
18
+ const recordedClientFileContents = hbs.compile(file, { noEscape: true });
19
+ project.createSourceFile("test/public/utils/recordedClient.ts", recordedClientFileContents(metadata), {
20
+ overwrite: true
21
+ });
22
+ }
@@ -0,0 +1,3 @@
1
+ import * as dotenv from "dotenv";
2
+
3
+ dotenv.config();
@@ -0,0 +1,26 @@
1
+ import { Context } from "mocha";
2
+ import { Recorder, RecorderStartOptions } from "@azure-tools/test-recorder";
3
+ import "./env";
4
+
5
+ const envSetupForPlayback: Record<string, string> = {
6
+ ENDPOINT: "https://endpoint",
7
+ AZURE_CLIENT_ID: "azure_client_id",
8
+ AZURE_CLIENT_SECRET: "azure_client_secret",
9
+ AZURE_TENANT_ID: "88888888-8888-8888-8888-888888888888",
10
+ SUBSCRIPTION_ID: "azure_subscription_id"
11
+ };
12
+
13
+ const recorderEnvSetup: RecorderStartOptions = {
14
+ envSetupForPlayback
15
+ };
16
+
17
+ /**
18
+ * creates the recorder and reads the environment variables from the `.env` file.
19
+ * Should be called first in the test suite to make sure environment variables are
20
+ * read before they are being used.
21
+ */
22
+ export async function createRecorder(context: Context): Promise<Recorder> {
23
+ const recorder = new Recorder(context.currentTest);
24
+ await recorder.start(recorderEnvSetup);
25
+ return recorder;
26
+ }
@@ -0,0 +1,20 @@
1
+ import { Recorder } from "@azure-tools/test-recorder";
2
+ import { assert } from "chai";
3
+ import { createRecorder } from "./utils/recordedClient";
4
+ import { Context } from "mocha";
5
+
6
+ describe("My test", () => {
7
+ let recorder: Recorder;
8
+
9
+ beforeEach(async function(this: Context) {
10
+ recorder = await createRecorder(this);
11
+ });
12
+
13
+ afterEach(async function() {
14
+ await recorder.stop();
15
+ });
16
+
17
+ it("sample test", async function() {
18
+ assert.equal(1, 1);
19
+ });
20
+ });
@@ -0,0 +1,32 @@
1
+ import { Recorder, RecorderStartOptions, env } from "@azure-tools/test-recorder";
2
+ import { assert } from "chai";
3
+ import { Context } from "mocha";
4
+
5
+
6
+ const replaceableVariables: Record<string, string> = {
7
+ AZURE_CLIENT_ID: "azure_client_id",
8
+ AZURE_CLIENT_SECRET: "azure_client_secret",
9
+ AZURE_TENANT_ID: "88888888-8888-8888-8888-888888888888",
10
+ SUBSCRIPTION_ID: "azure_subscription_id"
11
+ };
12
+
13
+ const recorderOptions: RecorderStartOptions = {
14
+ envSetupForPlayback: replaceableVariables,
15
+ };
16
+
17
+ describe("My test", () => {
18
+ let recorder: Recorder;
19
+
20
+ beforeEach(async function (this: Context) {
21
+ recorder = new Recorder(this.currentTest);
22
+ await recorder.start(recorderOptions);
23
+ });
24
+
25
+ afterEach(async function () {
26
+ await recorder.stop();
27
+ });
28
+
29
+ it("sample test", async function () {
30
+ console.log("Hi, I'm a test!");
31
+ });
32
+ });
@@ -0,0 +1,32 @@
1
+ import { Project } from "ts-morph";
2
+ import * as path from 'path';
3
+ import * as fs from 'fs';
4
+ import * as hbs from "handlebars";
5
+ import { getAutorestOptions } from "../../autorestSession";
6
+
7
+ export function generateSampleTestFile(
8
+ project: Project
9
+ ) {
10
+ const { generateTest, restLevelClient } = getAutorestOptions();
11
+ if (!generateTest) {
12
+ return;
13
+ }
14
+ const metadata = {}
15
+ if (restLevelClient) {
16
+ const file = fs.readFileSync(path.join(__dirname, "rlcSampleTest.spec.ts.hbs"), {
17
+ encoding: "utf-8"
18
+ });
19
+ const readmeFileContents = hbs.compile(file, { noEscape: true });
20
+ project.createSourceFile("test/public/sampleTest.spec.ts", readmeFileContents(metadata), {
21
+ overwrite: true
22
+ });
23
+ } else {
24
+ const file = fs.readFileSync(path.join(__dirname, "sampleTest.ts.hbs"), {
25
+ encoding: "utf-8"
26
+ });
27
+ const readmeFileContents = hbs.compile(file, { noEscape: true });
28
+ project.createSourceFile("test/sampleTest.ts", readmeFileContents(metadata), {
29
+ overwrite: true
30
+ });
31
+ }
32
+ }
@@ -2,8 +2,6 @@
2
2
  // Licensed under the MIT License.
3
3
 
4
4
  import { Project, SourceFile, VariableDeclarationKind } from "ts-morph";
5
- import { PackageDetails } from "../models/packageDetails";
6
- import { NameType, normalizeName } from "../utils/nameUtils";
7
5
  import { getAutorestOptions } from "../autorestSession";
8
6
 
9
7
  export function generateTracingFile(project: Project) {
@@ -18,7 +16,7 @@ export function generateTracingFile(project: Project) {
18
16
 
19
17
  file.addImportDeclarations([
20
18
  {
21
- namedImports: ["createSpanFunction"],
19
+ namedImports: ["createTracingClient"],
22
20
  moduleSpecifier: "@azure/core-tracing"
23
21
  }
24
22
  ]);
@@ -28,7 +26,7 @@ export function generateTracingFile(project: Project) {
28
26
  }
29
27
 
30
28
  function writeCreateSpanFunction(file: SourceFile) {
31
- const { tracingInfo } = getAutorestOptions();
29
+ const { tracingInfo, packageDetails } = getAutorestOptions();
32
30
 
33
31
  if (!tracingInfo) {
34
32
  return;
@@ -39,29 +37,13 @@ function writeCreateSpanFunction(file: SourceFile) {
39
37
  declarationKind: VariableDeclarationKind.Const,
40
38
  declarations: [
41
39
  {
42
- name: "createSpan",
43
- initializer: `createSpanFunction({
40
+ name: "tracingClient",
41
+ initializer: `createTracingClient({
44
42
  namespace: "${tracingInfo.namespace}",
45
- packagePrefix: "${tracingInfo.packagePrefix}"
43
+ packageName: "${packageDetails.name}",
44
+ packageVersion: "${packageDetails.version}"
46
45
  });`
47
46
  }
48
47
  ]
49
48
  });
50
49
  }
51
-
52
- function getTelemetryPackageName({ nameWithoutScope }: PackageDetails) {
53
- return nameWithoutScope
54
- .split(/[-._ ]+/)
55
- .map(part => normalizeName(part, NameType.Class));
56
- }
57
-
58
- function getTelemetryNamespace(packageDetails: PackageDetails) {
59
- const { scopeName } = packageDetails;
60
-
61
- return [
62
- ...(scopeName ? [scopeName] : []),
63
- ...getTelemetryPackageName(packageDetails)
64
- ]
65
- .map(part => normalizeName(part, NameType.Class))
66
- .join(".");
67
- }
@@ -52,7 +52,6 @@ export function addPagingImports(
52
52
  const { disablePagingAsyncIterators } = getAutorestOptions();
53
53
  if (!disablePagingAsyncIterators && hasAsyncIteratorOperations(operations)) {
54
54
  sourceFile.addImportDeclarations([
55
- { moduleSpecifier: "@azure/core-paging" },
56
55
  {
57
56
  namedImports: ["PagedAsyncIterableIterator"],
58
57
  moduleSpecifier: "@azure/core-paging"
@@ -231,7 +230,7 @@ export function writeAsyncIterators(
231
230
  * This method enforces Azure SDK Typescript guideline that paging methods should be named list*
232
231
  * https://azure.github.io/azure-sdk/typescript_design.html#ts-pagination-provide-list
233
232
  */
234
- function getPublicMethodName(operation: OperationDetails) {
233
+ export function getPublicMethodName(operation: OperationDetails) {
235
234
  let initialOperationName = normalizeName(operation.name, NameType.Operation);
236
235
  if (initialOperationName.indexOf("list") === 0) {
237
236
  initialOperationName = initialOperationName.replace("list", "");
@@ -14,11 +14,7 @@ export function addTracingOperationImports(
14
14
  if (tracingInfo) {
15
15
  sourceFile.addImportDeclarations([
16
16
  {
17
- namedImports: ["CanonicalCode"],
18
- moduleSpecifier: "@opentelemetry/api"
19
- },
20
- {
21
- namedImports: ["createSpan"],
17
+ namedImports: ["tracingClient"],
22
18
  moduleSpecifier: `${traverseToRoot}/tracing`
23
19
  }
24
20
  ]);
package/src/main.ts CHANGED
@@ -1,7 +1,10 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
3
 
4
- import { AutoRestExtension, Host } from "@autorest/extension-base";
4
+ import {
5
+ AutoRestExtension,
6
+ AutorestExtensionHost
7
+ } from "@autorest/extension-base";
5
8
  import { generateTypeScriptLibrary } from "./typescriptGenerator";
6
9
  import { generateRestLevelClient } from "./restLevelClient/generateRestLevel";
7
10
  import {
@@ -10,7 +13,7 @@ import {
10
13
  getAutorestOptions
11
14
  } from "./autorestSession";
12
15
 
13
- export async function processRequest(host: Host) {
16
+ export async function processRequest(host: AutorestExtensionHost) {
14
17
  await initializeSession(host);
15
18
  const session = getSession();
16
19
  const { restLevelClient } = getAutorestOptions();
@@ -19,7 +22,7 @@ export async function processRequest(host: Host) {
19
22
  restLevelClient
20
23
  ? await generateRestLevelClient()
21
24
  : await generateTypeScriptLibrary(session.model, host);
22
- session.log(`Autorest.Typescript took ${Date.now() - start}ms`, "");
25
+ session.info(`Autorest.Typescript took ${Date.now() - start}ms`);
23
26
  } catch (err) {
24
27
  session.error("An error was encountered while handling a request:", err);
25
28
  throw err;
@@ -28,8 +31,8 @@ export async function processRequest(host: Host) {
28
31
 
29
32
  async function main() {
30
33
  const pluginHost = new AutoRestExtension();
31
- pluginHost.Add("typescript", processRequest);
32
- await pluginHost.Run();
34
+ pluginHost.add("typescript", processRequest);
35
+ await pluginHost.run();
33
36
  }
34
37
 
35
38
  main();
@@ -9,6 +9,8 @@ import { ObjectDetails } from "./modelDetails";
9
9
  import { EndpointDetails } from "../transforms/urlTransforms";
10
10
  import { KnownMediaType } from "@azure-tools/codegen";
11
11
  import { Info } from "@autorest/codemodel";
12
+ import { SampleGroup } from "./sampleDetails";
13
+ import { Security } from "@autorest/codemodel";
12
14
 
13
15
  export interface ClientOptions {
14
16
  mediaTypes?: Set<KnownMediaType>;
@@ -17,7 +19,12 @@ export interface ClientOptions {
17
19
 
18
20
  export interface TracingInfo {
19
21
  namespace: string;
20
- packagePrefix: string;
22
+ packagePrefix?: string;
23
+ }
24
+
25
+ export interface DependencyInfo {
26
+ link: string;
27
+ description: string;
21
28
  }
22
29
 
23
30
  export interface ClientDetails {
@@ -32,4 +39,7 @@ export interface ClientDetails {
32
39
  parameters: ParameterDetails[];
33
40
  options: ClientOptions;
34
41
  endpoint: EndpointDetails;
42
+ samples?: SampleGroup[];
43
+ allTypes: string[];
44
+ security: Security
35
45
  }
@@ -65,7 +65,7 @@ export type PolymorphicObjectDetails = BasicObjectDetails & {
65
65
  export interface PropertyDetails {
66
66
  name: string;
67
67
  description?: string;
68
- defaultValue?: string;
68
+ defaultValue?: string | number | boolean;
69
69
  serializedName: string;
70
70
  type: string;
71
71
  required: boolean;
@@ -83,7 +83,7 @@ export interface TypeDetails {
83
83
  typeName: string;
84
84
  isConstant?: boolean;
85
85
  nullable?: boolean;
86
- defaultValue?: string;
86
+ defaultValue?: string | number | boolean;
87
87
  kind: PropertyKind;
88
88
  usedModels: string[];
89
89
  }
@@ -103,6 +103,7 @@ export interface OperationSpecDetails {
103
103
  export interface OperationGroupDetails {
104
104
  key: string;
105
105
  name: string;
106
+ originalKey: string;
106
107
  operations: OperationDetails[];
107
108
  mediaTypes: Set<KnownMediaType>;
108
109
  isTopLevel: boolean;