@autorest/typescript 6.0.0-beta.7 → 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 (437) hide show
  1. package/README.md +42 -5
  2. package/dist/{src/generators/static/README.md.hbs → hlcREADME.md.hbs} +41 -5
  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 +18 -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.d.ts.map +1 -1
  24. package/dist/src/generators/LROGenerator.js +5 -13
  25. package/dist/src/generators/LROGenerator.js.map +1 -1
  26. package/dist/src/generators/clientFileGenerator.d.ts.map +1 -1
  27. package/dist/src/generators/clientFileGenerator.js +303 -61
  28. package/dist/src/generators/clientFileGenerator.js.map +1 -1
  29. package/dist/src/generators/indexGenerator.d.ts +1 -1
  30. package/dist/src/generators/indexGenerator.d.ts.map +1 -1
  31. package/dist/src/generators/indexGenerator.js +143 -11
  32. package/dist/src/generators/indexGenerator.js.map +1 -1
  33. package/dist/src/generators/mappersGenerator.d.ts.map +1 -1
  34. package/dist/src/generators/mappersGenerator.js +93 -19
  35. package/dist/src/generators/mappersGenerator.js.map +1 -1
  36. package/dist/src/generators/modelsGenerator.d.ts.map +1 -1
  37. package/dist/src/generators/modelsGenerator.js +81 -82
  38. package/dist/src/generators/modelsGenerator.js.map +1 -1
  39. package/dist/src/generators/operationGenerator.d.ts.map +1 -1
  40. package/dist/src/generators/operationGenerator.js +92 -125
  41. package/dist/src/generators/operationGenerator.js.map +1 -1
  42. package/dist/src/generators/operationInterfaceGenerator.js +20 -20
  43. package/dist/src/generators/operationInterfaceGenerator.js.map +1 -1
  44. package/dist/src/generators/parametersGenerator.d.ts.map +1 -1
  45. package/dist/src/generators/parametersGenerator.js +7 -8
  46. package/dist/src/generators/parametersGenerator.js.map +1 -1
  47. package/dist/src/generators/samples/hlcSampleGenerator.d.ts +13 -0
  48. package/dist/src/generators/samples/hlcSampleGenerator.d.ts.map +1 -0
  49. package/dist/src/generators/samples/hlcSampleGenerator.js +43 -0
  50. package/dist/src/generators/samples/hlcSampleGenerator.js.map +1 -0
  51. package/dist/src/generators/samples/hlcSamples.ts.hbs +49 -0
  52. package/dist/src/generators/samples/rlcSampleGenerator.d.ts +4 -0
  53. package/dist/src/generators/samples/rlcSampleGenerator.d.ts.map +1 -0
  54. package/dist/src/generators/samples/rlcSampleGenerator.js +64 -0
  55. package/dist/src/generators/samples/rlcSampleGenerator.js.map +1 -0
  56. package/dist/src/generators/samples/rlcSamples.ts.hbs +28 -0
  57. package/dist/src/generators/samples/sampleEnv.hbs +4 -0
  58. package/dist/src/generators/samples/sampleEnvGenerator.d.ts +3 -0
  59. package/dist/src/generators/samples/sampleEnvGenerator.d.ts.map +1 -0
  60. package/dist/src/generators/samples/sampleEnvGenerator.js +17 -0
  61. package/dist/src/generators/samples/sampleEnvGenerator.js.map +1 -0
  62. package/dist/src/generators/static/apiExtractorConfig.js +3 -3
  63. package/dist/src/generators/static/apiExtractorConfig.js.map +1 -1
  64. package/dist/src/generators/static/esLintConfigGenerator.d.ts +3 -0
  65. package/dist/src/generators/static/esLintConfigGenerator.d.ts.map +1 -0
  66. package/dist/src/generators/static/esLintConfigGenerator.js +26 -0
  67. package/dist/src/generators/static/esLintConfigGenerator.js.map +1 -0
  68. package/{src/generators/static/README.md.hbs → dist/src/generators/static/hlcREADME.md.hbs} +41 -5
  69. package/dist/src/generators/static/karma.conf.js.hbs +126 -0
  70. package/dist/src/generators/static/karmaConfigFileGenerator.d.ts +3 -0
  71. package/dist/src/generators/static/karmaConfigFileGenerator.d.ts.map +1 -0
  72. package/dist/src/generators/static/karmaConfigFileGenerator.js +23 -0
  73. package/dist/src/generators/static/karmaConfigFileGenerator.js.map +1 -0
  74. package/dist/src/generators/static/licenseFileGenerator.js +1 -1
  75. package/dist/src/generators/static/licenseFileGenerator.js.map +1 -1
  76. package/dist/src/generators/static/packageFileGenerator.d.ts.map +1 -1
  77. package/dist/src/generators/static/packageFileGenerator.js +267 -79
  78. package/dist/src/generators/static/packageFileGenerator.js.map +1 -1
  79. package/dist/src/generators/static/readmeFileGenerator.d.ts +2 -2
  80. package/dist/src/generators/static/readmeFileGenerator.d.ts.map +1 -1
  81. package/dist/src/generators/static/readmeFileGenerator.js +54 -26
  82. package/dist/src/generators/static/readmeFileGenerator.js.map +1 -1
  83. package/dist/src/generators/static/rlcREADME.md.hbs +71 -0
  84. package/dist/src/generators/static/rollupConfigFileGenerator.d.ts.map +1 -1
  85. package/dist/src/generators/static/rollupConfigFileGenerator.js +12 -71
  86. package/dist/src/generators/static/rollupConfigFileGenerator.js.map +1 -1
  87. package/dist/src/generators/static/tsConfigFileGenerator.d.ts.map +1 -1
  88. package/dist/src/generators/static/tsConfigFileGenerator.js +47 -20
  89. package/dist/src/generators/static/tsConfigFileGenerator.js.map +1 -1
  90. package/dist/src/generators/test/envBrowserFileGenerator.d.ts +3 -0
  91. package/dist/src/generators/test/envBrowserFileGenerator.d.ts.map +1 -0
  92. package/dist/src/generators/test/envBrowserFileGenerator.js +15 -0
  93. package/dist/src/generators/test/envBrowserFileGenerator.js.map +1 -0
  94. package/dist/src/generators/test/envFileGenerator.d.ts +3 -0
  95. package/dist/src/generators/test/envFileGenerator.d.ts.map +1 -0
  96. package/dist/src/generators/test/envFileGenerator.js +23 -0
  97. package/dist/src/generators/test/envFileGenerator.js.map +1 -0
  98. package/dist/src/generators/test/recordedClientFileGenerator.d.ts +3 -0
  99. package/dist/src/generators/test/recordedClientFileGenerator.d.ts.map +1 -0
  100. package/dist/src/generators/test/recordedClientFileGenerator.js +23 -0
  101. package/dist/src/generators/test/recordedClientFileGenerator.js.map +1 -0
  102. package/dist/src/generators/test/rlcEnv.ts.hbs +3 -0
  103. package/dist/src/generators/test/rlcRecordedClient.ts.hbs +26 -0
  104. package/dist/src/generators/test/rlcSampleTest.spec.ts.hbs +20 -0
  105. package/dist/src/generators/test/sampleTest.ts.hbs +32 -0
  106. package/dist/src/generators/test/sampleTestGenerator.d.ts +3 -0
  107. package/dist/src/generators/test/sampleTestGenerator.d.ts.map +1 -0
  108. package/dist/src/generators/test/sampleTestGenerator.js +34 -0
  109. package/dist/src/generators/test/sampleTestGenerator.js.map +1 -0
  110. package/dist/src/generators/tracingFileGenerator.d.ts.map +1 -1
  111. package/dist/src/generators/tracingFileGenerator.js +7 -21
  112. package/dist/src/generators/tracingFileGenerator.js.map +1 -1
  113. package/dist/src/generators/utils/docsUtils.js +2 -2
  114. package/dist/src/generators/utils/docsUtils.js.map +1 -1
  115. package/dist/src/generators/utils/operationsUtils.js +1 -1
  116. package/dist/src/generators/utils/operationsUtils.js.map +1 -1
  117. package/dist/src/generators/utils/pagingOperations.d.ts +5 -0
  118. package/dist/src/generators/utils/pagingOperations.d.ts.map +1 -1
  119. package/dist/src/generators/utils/pagingOperations.js +15 -15
  120. package/dist/src/generators/utils/pagingOperations.js.map +1 -1
  121. package/dist/src/generators/utils/parameterUtils.js +9 -9
  122. package/dist/src/generators/utils/parameterUtils.js.map +1 -1
  123. package/dist/src/generators/utils/responseTypeUtils.js +2 -2
  124. package/dist/src/generators/utils/responseTypeUtils.js.map +1 -1
  125. package/dist/src/generators/utils/tracingUtils.d.ts.map +1 -1
  126. package/dist/src/generators/utils/tracingUtils.js +2 -6
  127. package/dist/src/generators/utils/tracingUtils.js.map +1 -1
  128. package/dist/src/lroImpl.d.ts +16 -0
  129. package/dist/src/lroImpl.d.ts.map +1 -0
  130. package/dist/src/lroImpl.js +45 -0
  131. package/dist/src/lroImpl.js.map +1 -0
  132. package/dist/src/main.d.ts +2 -2
  133. package/dist/src/main.d.ts.map +1 -1
  134. package/dist/src/main.js +8 -8
  135. package/dist/src/main.js.map +1 -1
  136. package/dist/src/models/clientDetails.d.ts +10 -1
  137. package/dist/src/models/clientDetails.d.ts.map +1 -1
  138. package/dist/src/models/modelDetails.d.ts +2 -2
  139. package/dist/src/models/modelDetails.d.ts.map +1 -1
  140. package/dist/src/models/operationDetails.d.ts +1 -0
  141. package/dist/src/models/operationDetails.d.ts.map +1 -1
  142. package/dist/src/models/sampleDetails.d.ts +22 -0
  143. package/dist/src/models/sampleDetails.d.ts.map +1 -0
  144. package/dist/src/models/sampleDetails.js +3 -0
  145. package/dist/src/models/sampleDetails.js.map +1 -0
  146. package/dist/src/restLevelClient/generateClient.d.ts +1 -1
  147. package/dist/src/restLevelClient/generateClient.d.ts.map +1 -1
  148. package/dist/src/restLevelClient/generateClient.js +108 -167
  149. package/dist/src/restLevelClient/generateClient.js.map +1 -1
  150. package/dist/src/restLevelClient/generateClientDefinition.d.ts +6 -0
  151. package/dist/src/restLevelClient/generateClientDefinition.d.ts.map +1 -0
  152. package/dist/src/restLevelClient/generateClientDefinition.js +261 -0
  153. package/dist/src/restLevelClient/generateClientDefinition.js.map +1 -0
  154. package/dist/src/restLevelClient/generateIsUnexpectedHelper.d.ts +8 -0
  155. package/dist/src/restLevelClient/generateIsUnexpectedHelper.d.ts.map +1 -0
  156. package/dist/src/restLevelClient/generateIsUnexpectedHelper.js +204 -0
  157. package/dist/src/restLevelClient/generateIsUnexpectedHelper.js.map +1 -0
  158. package/dist/src/restLevelClient/generateMethodShortcuts.d.ts +8 -0
  159. package/dist/src/restLevelClient/generateMethodShortcuts.d.ts.map +1 -0
  160. package/dist/src/restLevelClient/generateMethodShortcuts.js +70 -0
  161. package/dist/src/restLevelClient/generateMethodShortcuts.js.map +1 -0
  162. package/dist/src/restLevelClient/generateObjectTypes.d.ts +3 -3
  163. package/dist/src/restLevelClient/generateObjectTypes.d.ts.map +1 -1
  164. package/dist/src/restLevelClient/generateObjectTypes.js +43 -31
  165. package/dist/src/restLevelClient/generateObjectTypes.js.map +1 -1
  166. package/dist/src/restLevelClient/generatePagingHelper.d.ts +3 -0
  167. package/dist/src/restLevelClient/generatePagingHelper.d.ts.map +1 -0
  168. package/dist/src/restLevelClient/generatePagingHelper.js +54 -0
  169. package/dist/src/restLevelClient/generatePagingHelper.js.map +1 -0
  170. package/dist/src/restLevelClient/generateParameterTypes.d.ts.map +1 -1
  171. package/dist/src/restLevelClient/generateParameterTypes.js +247 -43
  172. package/dist/src/restLevelClient/generateParameterTypes.js.map +1 -1
  173. package/dist/src/restLevelClient/generatePollingHelper.d.ts +3 -0
  174. package/dist/src/restLevelClient/generatePollingHelper.d.ts.map +1 -0
  175. package/dist/src/restLevelClient/generatePollingHelper.js +20 -0
  176. package/dist/src/restLevelClient/generatePollingHelper.js.map +1 -0
  177. package/dist/src/restLevelClient/generateResponseTypes.d.ts.map +1 -1
  178. package/dist/src/restLevelClient/generateResponseTypes.js +45 -29
  179. package/dist/src/restLevelClient/generateResponseTypes.js.map +1 -1
  180. package/dist/src/restLevelClient/generateRestLevel.d.ts.map +1 -1
  181. package/dist/src/restLevelClient/generateRestLevel.js +64 -15
  182. package/dist/src/restLevelClient/generateRestLevel.js.map +1 -1
  183. package/dist/src/restLevelClient/generateSchemaTypes.d.ts.map +1 -1
  184. package/dist/src/restLevelClient/generateSchemaTypes.js +29 -7
  185. package/dist/src/restLevelClient/generateSchemaTypes.js.map +1 -1
  186. package/dist/src/restLevelClient/generateTopLevelIndexFile.d.ts +4 -0
  187. package/dist/src/restLevelClient/generateTopLevelIndexFile.d.ts.map +1 -0
  188. package/dist/src/restLevelClient/generateTopLevelIndexFile.js +37 -0
  189. package/dist/src/restLevelClient/generateTopLevelIndexFile.js.map +1 -0
  190. package/dist/src/restLevelClient/getPropertySignature.d.ts +3 -2
  191. package/dist/src/restLevelClient/getPropertySignature.d.ts.map +1 -1
  192. package/dist/src/restLevelClient/getPropertySignature.js +23 -7
  193. package/dist/src/restLevelClient/getPropertySignature.js.map +1 -1
  194. package/dist/src/restLevelClient/helpers/hasPollingOperations.d.ts +4 -0
  195. package/dist/src/restLevelClient/helpers/hasPollingOperations.d.ts.map +1 -0
  196. package/dist/src/restLevelClient/helpers/hasPollingOperations.js +12 -0
  197. package/dist/src/restLevelClient/helpers/hasPollingOperations.js.map +1 -0
  198. package/dist/src/restLevelClient/helpers/modelHelpers.d.ts +4 -0
  199. package/dist/src/restLevelClient/helpers/modelHelpers.d.ts.map +1 -0
  200. package/dist/src/restLevelClient/helpers/modelHelpers.js +19 -0
  201. package/dist/src/restLevelClient/helpers/modelHelpers.js.map +1 -0
  202. package/dist/src/restLevelClient/helpers/operationHelpers.d.ts +10 -0
  203. package/dist/src/restLevelClient/helpers/operationHelpers.d.ts.map +1 -0
  204. package/dist/src/restLevelClient/helpers/operationHelpers.js +64 -0
  205. package/dist/src/restLevelClient/helpers/operationHelpers.js.map +1 -0
  206. package/dist/src/restLevelClient/interfaces.d.ts +33 -0
  207. package/dist/src/restLevelClient/interfaces.d.ts.map +1 -0
  208. package/dist/src/restLevelClient/interfaces.js +3 -0
  209. package/dist/src/restLevelClient/interfaces.js.map +1 -0
  210. package/dist/src/restLevelClient/mutateCodeModel.js +2 -2
  211. package/dist/src/restLevelClient/mutateCodeModel.js.map +1 -1
  212. package/dist/src/restLevelClient/operationHelpers.d.ts +4 -0
  213. package/dist/src/restLevelClient/operationHelpers.d.ts.map +1 -1
  214. package/dist/src/restLevelClient/operationHelpers.js +21 -10
  215. package/dist/src/restLevelClient/operationHelpers.js.map +1 -1
  216. package/dist/src/restLevelClient/paginateHelper.ts.hbs +208 -0
  217. package/dist/src/restLevelClient/pollingHelper.ts.hbs +72 -0
  218. package/dist/src/restLevelClient/samples/generateSamples.d.ts +23 -0
  219. package/dist/src/restLevelClient/samples/generateSamples.d.ts.map +1 -0
  220. package/dist/src/restLevelClient/samples/generateSamples.js +3 -0
  221. package/dist/src/restLevelClient/samples/generateSamples.js.map +1 -0
  222. package/dist/src/restLevelClient/samples/samples.ts.hbs +0 -0
  223. package/dist/src/restLevelClient/schemaHelpers.d.ts +12 -2
  224. package/dist/src/restLevelClient/schemaHelpers.d.ts.map +1 -1
  225. package/dist/src/restLevelClient/schemaHelpers.js +48 -14
  226. package/dist/src/restLevelClient/schemaHelpers.js.map +1 -1
  227. package/dist/src/transforms/extensions.js +10 -10
  228. package/dist/src/transforms/extensions.js.map +1 -1
  229. package/dist/src/transforms/groupTransforms.js +2 -2
  230. package/dist/src/transforms/groupTransforms.js.map +1 -1
  231. package/dist/src/transforms/mapperTransforms.d.ts +1 -1
  232. package/dist/src/transforms/mapperTransforms.d.ts.map +1 -1
  233. package/dist/src/transforms/mapperTransforms.js +30 -27
  234. package/dist/src/transforms/mapperTransforms.js.map +1 -1
  235. package/dist/src/transforms/objectTransforms.d.ts.map +1 -1
  236. package/dist/src/transforms/objectTransforms.js +42 -26
  237. package/dist/src/transforms/objectTransforms.js.map +1 -1
  238. package/dist/src/transforms/operationTransforms.d.ts.map +1 -1
  239. package/dist/src/transforms/operationTransforms.js +29 -26
  240. package/dist/src/transforms/operationTransforms.js.map +1 -1
  241. package/dist/src/transforms/optionsTransforms.js +1 -1
  242. package/dist/src/transforms/optionsTransforms.js.map +1 -1
  243. package/dist/src/transforms/parameterTransforms.d.ts.map +1 -1
  244. package/dist/src/transforms/parameterTransforms.js +43 -27
  245. package/dist/src/transforms/parameterTransforms.js.map +1 -1
  246. package/dist/src/transforms/samplesTransforms.d.ts +7 -0
  247. package/dist/src/transforms/samplesTransforms.d.ts.map +1 -0
  248. package/dist/src/transforms/samplesTransforms.js +293 -0
  249. package/dist/src/transforms/samplesTransforms.js.map +1 -0
  250. package/dist/src/transforms/transforms.d.ts +1 -2
  251. package/dist/src/transforms/transforms.d.ts.map +1 -1
  252. package/dist/src/transforms/transforms.js +26 -24
  253. package/dist/src/transforms/transforms.js.map +1 -1
  254. package/dist/src/transforms/urlTransforms.js +3 -3
  255. package/dist/src/transforms/urlTransforms.js.map +1 -1
  256. package/dist/src/typescriptGenerator.d.ts +2 -2
  257. package/dist/src/typescriptGenerator.d.ts.map +1 -1
  258. package/dist/src/typescriptGenerator.js +46 -40
  259. package/dist/src/typescriptGenerator.js.map +1 -1
  260. package/dist/src/utils/autorestOptions.d.ts +2 -2
  261. package/dist/src/utils/autorestOptions.d.ts.map +1 -1
  262. package/dist/src/utils/autorestOptions.js +148 -61
  263. package/dist/src/utils/autorestOptions.js.map +1 -1
  264. package/dist/src/utils/cloneOperation.js +2 -2
  265. package/dist/src/utils/cloneOperation.js.map +1 -1
  266. package/dist/src/utils/copyFiles.d.ts +2 -0
  267. package/dist/src/utils/copyFiles.d.ts.map +1 -0
  268. package/dist/src/utils/copyFiles.js +33 -0
  269. package/dist/src/utils/copyFiles.js.map +1 -0
  270. package/dist/src/utils/extractHeaders.js +4 -4
  271. package/dist/src/utils/extractHeaders.js.map +1 -1
  272. package/dist/src/utils/extractPaginationDetails.d.ts +5 -1
  273. package/dist/src/utils/extractPaginationDetails.d.ts.map +1 -1
  274. package/dist/src/utils/extractPaginationDetails.js +23 -10
  275. package/dist/src/utils/extractPaginationDetails.js.map +1 -1
  276. package/dist/src/utils/headersToSchema.js +1 -1
  277. package/dist/src/utils/headersToSchema.js.map +1 -1
  278. package/dist/src/utils/logger.js +1 -1
  279. package/dist/src/utils/logger.js.map +1 -1
  280. package/dist/src/utils/nameUtils.d.ts +6 -2
  281. package/dist/src/utils/nameUtils.d.ts.map +1 -1
  282. package/dist/src/utils/nameUtils.js +13 -8
  283. package/dist/src/utils/nameUtils.js.map +1 -1
  284. package/dist/src/utils/schemaHelpers.d.ts +6 -1
  285. package/dist/src/utils/schemaHelpers.d.ts.map +1 -1
  286. package/dist/src/utils/schemaHelpers.js +50 -7
  287. package/dist/src/utils/schemaHelpers.js.map +1 -1
  288. package/dist/src/utils/sortObjectSchemasHierarchically.js +1 -1
  289. package/dist/src/utils/sortObjectSchemasHierarchically.js.map +1 -1
  290. package/dist/src/utils/valueHelpers.d.ts.map +1 -1
  291. package/dist/src/utils/valueHelpers.js +2 -1
  292. package/dist/src/utils/valueHelpers.js.map +1 -1
  293. package/package.json +59 -39
  294. package/src/autorestSession.ts +26 -18
  295. package/src/conflictResolver.ts +61 -0
  296. package/src/generators/LROGenerator.ts +2 -16
  297. package/src/generators/clientFileGenerator.ts +400 -50
  298. package/src/generators/indexGenerator.ts +166 -14
  299. package/src/generators/mappersGenerator.ts +108 -8
  300. package/src/generators/modelsGenerator.ts +101 -98
  301. package/src/generators/operationGenerator.ts +63 -122
  302. package/src/generators/parametersGenerator.ts +2 -3
  303. package/src/generators/samples/hlcSampleGenerator.ts +50 -0
  304. package/src/generators/samples/hlcSamples.ts.hbs +49 -0
  305. package/src/generators/samples/rlcSampleGenerator.ts +72 -0
  306. package/src/generators/samples/rlcSamples.ts.hbs +28 -0
  307. package/src/generators/samples/sampleEnv.hbs +4 -0
  308. package/src/generators/samples/sampleEnvGenerator.ts +14 -0
  309. package/src/generators/static/apiExtractorConfig.ts +3 -3
  310. package/src/generators/static/esLintConfigGenerator.ts +24 -0
  311. package/src/generators/static/hlcREADME.md.hbs +144 -0
  312. package/src/generators/static/karma.conf.js.hbs +126 -0
  313. package/src/generators/static/karmaConfigFileGenerator.ts +20 -0
  314. package/src/generators/static/packageFileGenerator.ts +305 -82
  315. package/src/generators/static/readmeFileGenerator.ts +85 -42
  316. package/src/generators/static/rlcREADME.md.hbs +71 -0
  317. package/src/generators/static/rollupConfigFileGenerator.ts +13 -71
  318. package/src/generators/static/tsConfigFileGenerator.ts +55 -21
  319. package/src/generators/test/envBrowserFileGenerator.ts +14 -0
  320. package/src/generators/test/envFileGenerator.ts +22 -0
  321. package/src/generators/test/recordedClientFileGenerator.ts +22 -0
  322. package/src/generators/test/rlcEnv.ts.hbs +3 -0
  323. package/src/generators/test/rlcRecordedClient.ts.hbs +26 -0
  324. package/src/generators/test/rlcSampleTest.spec.ts.hbs +20 -0
  325. package/src/generators/test/sampleTest.ts.hbs +32 -0
  326. package/src/generators/test/sampleTestGenerator.ts +32 -0
  327. package/src/generators/tracingFileGenerator.ts +6 -24
  328. package/src/generators/utils/pagingOperations.ts +1 -2
  329. package/src/generators/utils/tracingUtils.ts +1 -5
  330. package/src/lroImpl.ts +26 -0
  331. package/src/main.ts +8 -5
  332. package/src/models/clientDetails.ts +11 -1
  333. package/src/models/modelDetails.ts +2 -2
  334. package/src/models/operationDetails.ts +1 -0
  335. package/src/models/sampleDetails.ts +22 -0
  336. package/src/restLevelClient/generateClient.ts +134 -244
  337. package/src/restLevelClient/generateClientDefinition.ts +386 -0
  338. package/src/restLevelClient/generateIsUnexpectedHelper.ts +224 -0
  339. package/src/restLevelClient/generateMethodShortcuts.ts +121 -0
  340. package/src/restLevelClient/generateObjectTypes.ts +62 -21
  341. package/src/restLevelClient/generatePagingHelper.ts +69 -0
  342. package/src/restLevelClient/generateParameterTypes.ts +377 -55
  343. package/src/restLevelClient/generatePollingHelper.ts +19 -0
  344. package/src/restLevelClient/generateResponseTypes.ts +53 -22
  345. package/src/restLevelClient/generateRestLevel.ts +65 -8
  346. package/src/restLevelClient/generateSchemaTypes.ts +43 -8
  347. package/src/restLevelClient/generateTopLevelIndexFile.ts +37 -0
  348. package/src/restLevelClient/getPropertySignature.ts +31 -6
  349. package/src/restLevelClient/helpers/hasPollingOperations.ts +15 -0
  350. package/src/restLevelClient/helpers/modelHelpers.ts +15 -0
  351. package/src/restLevelClient/helpers/operationHelpers.ts +93 -0
  352. package/src/restLevelClient/interfaces.ts +39 -0
  353. package/src/restLevelClient/operationHelpers.ts +23 -9
  354. package/src/restLevelClient/paginateHelper.ts.hbs +208 -0
  355. package/src/restLevelClient/pollingHelper.ts.hbs +72 -0
  356. package/src/restLevelClient/samples/generateSamples.ts +23 -0
  357. package/src/restLevelClient/samples/samples.ts.hbs +0 -0
  358. package/src/restLevelClient/schemaHelpers.ts +51 -9
  359. package/src/transforms/mapperTransforms.ts +12 -6
  360. package/src/transforms/objectTransforms.ts +26 -6
  361. package/src/transforms/operationTransforms.ts +6 -1
  362. package/src/transforms/parameterTransforms.ts +26 -7
  363. package/src/transforms/samplesTransforms.ts +349 -0
  364. package/src/transforms/transforms.ts +14 -9
  365. package/src/typescriptGenerator.ts +41 -45
  366. package/src/utils/autorestOptions.ts +203 -86
  367. package/src/utils/copyFiles.ts +36 -0
  368. package/src/utils/extractPaginationDetails.ts +19 -1
  369. package/src/utils/nameUtils.ts +18 -9
  370. package/src/utils/schemaHelpers.ts +51 -4
  371. package/src/utils/valueHelpers.ts +1 -0
  372. package/CHANGELOG.md +0 -44
  373. package/dist/src/coreClientLro.d.ts +0 -26
  374. package/dist/src/coreClientLro.d.ts.map +0 -1
  375. package/dist/src/coreClientLro.js +0 -207
  376. package/dist/src/coreClientLro.js.map +0 -1
  377. package/dist/src/coreHttpLro.d.ts +0 -26
  378. package/dist/src/coreHttpLro.d.ts.map +0 -1
  379. package/dist/src/coreHttpLro.js +0 -186
  380. package/dist/src/coreHttpLro.js.map +0 -1
  381. package/dist/src/generators/clientContextFileGenerator.d.ts +0 -5
  382. package/dist/src/generators/clientContextFileGenerator.d.ts.map +0 -1
  383. package/dist/src/generators/clientContextFileGenerator.js +0 -263
  384. package/dist/src/generators/clientContextFileGenerator.js.map +0 -1
  385. package/dist/src/lro/azureAsyncPolling.d.ts +0 -3
  386. package/dist/src/lro/azureAsyncPolling.d.ts.map +0 -1
  387. package/dist/src/lro/azureAsyncPolling.js +0 -71
  388. package/dist/src/lro/azureAsyncPolling.js.map +0 -1
  389. package/dist/src/lro/bodyPolling.d.ts +0 -8
  390. package/dist/src/lro/bodyPolling.d.ts.map +0 -1
  391. package/dist/src/lro/bodyPolling.js +0 -34
  392. package/dist/src/lro/bodyPolling.js.map +0 -1
  393. package/dist/src/lro/index.d.ts +0 -4
  394. package/dist/src/lro/index.d.ts.map +0 -1
  395. package/dist/src/lro/index.js +0 -10
  396. package/dist/src/lro/index.js.map +0 -1
  397. package/dist/src/lro/locationPolling.d.ts +0 -3
  398. package/dist/src/lro/locationPolling.d.ts.map +0 -1
  399. package/dist/src/lro/locationPolling.js +0 -18
  400. package/dist/src/lro/locationPolling.js.map +0 -1
  401. package/dist/src/lro/lroEngine.d.ts +0 -14
  402. package/dist/src/lro/lroEngine.d.ts.map +0 -1
  403. package/dist/src/lro/lroEngine.js +0 -38
  404. package/dist/src/lro/lroEngine.js.map +0 -1
  405. package/dist/src/lro/models.d.ts +0 -138
  406. package/dist/src/lro/models.d.ts.map +0 -1
  407. package/dist/src/lro/models.js +0 -12
  408. package/dist/src/lro/models.js.map +0 -1
  409. package/dist/src/lro/operation.d.ts +0 -36
  410. package/dist/src/lro/operation.d.ts.map +0 -1
  411. package/dist/src/lro/operation.js +0 -89
  412. package/dist/src/lro/operation.js.map +0 -1
  413. package/dist/src/lro/passthrough.d.ts +0 -3
  414. package/dist/src/lro/passthrough.d.ts.map +0 -1
  415. package/dist/src/lro/passthrough.js +0 -14
  416. package/dist/src/lro/passthrough.js.map +0 -1
  417. package/dist/src/lro/requestUtils.d.ts +0 -16
  418. package/dist/src/lro/requestUtils.d.ts.map +0 -1
  419. package/dist/src/lro/requestUtils.js +0 -76
  420. package/dist/src/lro/requestUtils.js.map +0 -1
  421. package/dist/src/lro/stateMachine.d.ts +0 -18
  422. package/dist/src/lro/stateMachine.d.ts.map +0 -1
  423. package/dist/src/lro/stateMachine.js +0 -90
  424. package/dist/src/lro/stateMachine.js.map +0 -1
  425. package/src/coreClientLro.ts +0 -315
  426. package/src/coreHttpLro.ts +0 -268
  427. package/src/generators/clientContextFileGenerator.ts +0 -405
  428. package/src/lro/azureAsyncPolling.ts +0 -82
  429. package/src/lro/bodyPolling.ts +0 -34
  430. package/src/lro/index.ts +0 -18
  431. package/src/lro/locationPolling.ts +0 -20
  432. package/src/lro/lroEngine.ts +0 -53
  433. package/src/lro/models.ts +0 -165
  434. package/src/lro/operation.ts +0 -112
  435. package/src/lro/passthrough.ts +0 -15
  436. package/src/lro/requestUtils.ts +0 -94
  437. package/src/lro/stateMachine.ts +0 -108
@@ -1,315 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
-
4
- import {
5
- OperationArguments,
6
- OperationSpec,
7
- OperationResponseMap,
8
- FullOperationResponse
9
- } from "@azure/core-client";
10
- import {
11
- LroResourceLocationConfig,
12
- GetLroStatusFromResponse,
13
- LongRunningOperation,
14
- LroConfig,
15
- LroMode,
16
- LroResponse,
17
- LroStatus,
18
- createGetLroStatusFromResponse,
19
- RawResponse
20
- } from "./lro";
21
-
22
- export const successStates = ["succeeded"];
23
- export const failureStates = ["failed", "canceled", "cancelled"];
24
- export const terminalStates = successStates.concat(failureStates);
25
-
26
- export type SendOperationFn<T> = (
27
- args: OperationArguments,
28
- spec: OperationSpec
29
- ) => Promise<LroResponse<T>>;
30
-
31
- export function createPollingMethod<TResult>(
32
- sendOperationFn: SendOperationFn<TResult>,
33
- GetLroStatusFromResponse: GetLroStatusFromResponse<TResult>,
34
- args: OperationArguments,
35
- spec: OperationSpec,
36
- mode?: LroMode
37
- ): (path?: string) => Promise<LroStatus<TResult>> {
38
- /**
39
- * Polling calls will always return a status object i.e. {"status": "success"}
40
- * these intermediate responses are not described in the swagger so we need to
41
- * pass custom mappers at runtime.
42
- * This function replaces all the existing mappers to be able to deserialize a status object
43
- * @param responses Original set of responses defined in the operation
44
- */
45
- function getCompositeMappers(responses: {
46
- [responseCode: string]: OperationResponseMap;
47
- }): {
48
- [responseCode: string]: OperationResponseMap;
49
- } {
50
- return Object.keys(responses).reduce((acc, statusCode) => {
51
- return {
52
- ...acc,
53
- [statusCode]: {
54
- ...responses[statusCode],
55
- bodyMapper: {
56
- type: {
57
- name: "Composite",
58
- modelProperties: {
59
- status: {
60
- serializedName: "status",
61
- type: {
62
- name: "String"
63
- }
64
- }
65
- }
66
- }
67
- }
68
- }
69
- };
70
- }, {} as { [responseCode: string]: OperationResponseMap });
71
- }
72
- let response: LroStatus<TResult> | undefined = undefined;
73
- const customerCallback = args?.options?.onResponse;
74
- const updatedArgs = {
75
- ...args,
76
- options: {
77
- ...args.options,
78
- onResponse: (
79
- rawResponse: FullOperationResponse,
80
- flatResponse: unknown
81
- ): void => {
82
- response = GetLroStatusFromResponse(
83
- {
84
- statusCode: rawResponse.status,
85
- body: rawResponse.parsedBody,
86
- headers: rawResponse.headers.toJSON()
87
- },
88
- flatResponse as TResult
89
- );
90
- if (response.done) {
91
- customerCallback?.(rawResponse, flatResponse);
92
- }
93
- }
94
- }
95
- };
96
- // Make sure we don't send any body to the get request
97
- const { requestBody, responses, ...restSpec } = spec;
98
- if (mode === "AzureAsync") {
99
- return async (path?: string) => {
100
- await sendOperationFn(updatedArgs, {
101
- ...restSpec,
102
- responses: getCompositeMappers(responses),
103
- httpMethod: "GET",
104
- ...(path && { path })
105
- });
106
- return response!;
107
- };
108
- }
109
- return async (path?: string) => {
110
- await sendOperationFn(updatedArgs, {
111
- ...restSpec,
112
- responses: responses,
113
- httpMethod: "GET",
114
- ...(path && { path })
115
- });
116
- return response!;
117
- };
118
- }
119
-
120
- /**
121
- * We need to selectively deserialize our responses, only deserializing if we
122
- * are in a final Lro response, not deserializing any polling non-terminal responses
123
- */
124
- export function shouldDeserializeLro(lroResourceLocationConfig?: string) {
125
- let initialOperationInfo: LroResponseInfo | undefined;
126
- let isInitialRequest = true;
127
-
128
- return (response: FullOperationResponse) => {
129
- if (response.status < 200 || response.status >= 300) {
130
- return true;
131
- }
132
-
133
- if (!initialOperationInfo) {
134
- initialOperationInfo = getLroData(response);
135
- } else {
136
- isInitialRequest = false;
137
- }
138
-
139
- if (
140
- initialOperationInfo.azureAsyncOperation ||
141
- initialOperationInfo.operationLocation
142
- ) {
143
- return (
144
- !isInitialRequest &&
145
- isAsyncOperationFinalResponse(
146
- response,
147
- initialOperationInfo,
148
- lroResourceLocationConfig
149
- )
150
- );
151
- }
152
-
153
- if (initialOperationInfo.location) {
154
- return isLocationFinalResponse(response);
155
- }
156
-
157
- if (initialOperationInfo.requestMethod === "PUT") {
158
- return isBodyPollingFinalResponse(response);
159
- }
160
-
161
- return true;
162
- };
163
- }
164
-
165
- function isAsyncOperationFinalResponse(
166
- response: FullOperationResponse,
167
- initialOperationInfo: LroResponseInfo,
168
- lroResourceLocationConfig?: string
169
- ): boolean {
170
- const status: string = response.parsedBody?.status || "Succeeded";
171
- if (!terminalStates.includes(status.toLowerCase())) {
172
- return false;
173
- }
174
-
175
- if (initialOperationInfo.requestMethod === "DELETE") {
176
- return true;
177
- }
178
-
179
- if (
180
- initialOperationInfo.requestMethod === "PUT" &&
181
- lroResourceLocationConfig &&
182
- lroResourceLocationConfig.toLowerCase() === "azure-asyncoperation"
183
- ) {
184
- return true;
185
- }
186
-
187
- if (
188
- initialOperationInfo.requestMethod !== "PUT" &&
189
- !initialOperationInfo.location
190
- ) {
191
- return true;
192
- }
193
-
194
- return false;
195
- }
196
-
197
- function isLocationFinalResponse(response: FullOperationResponse): boolean {
198
- return response.status !== 202;
199
- }
200
-
201
- function isBodyPollingFinalResponse(response: FullOperationResponse): boolean {
202
- const provisioningState: string =
203
- response.parsedBody?.properties?.provisioningState || "Succeeded";
204
-
205
- if (terminalStates.includes(provisioningState.toLowerCase())) {
206
- return true;
207
- }
208
-
209
- return false;
210
- }
211
-
212
- interface LroResponseInfo {
213
- requestMethod: string;
214
- azureAsyncOperation?: string;
215
- operationLocation?: string;
216
- location?: string;
217
- }
218
-
219
- function getLroData(result: FullOperationResponse): LroResponseInfo {
220
- return {
221
- azureAsyncOperation: result.headers.get("azure-asyncoperation"),
222
- operationLocation: result.headers.get("operation-location"),
223
- location: result.headers.get("location"),
224
- requestMethod: result.request.method
225
- };
226
- }
227
-
228
- export function getSpecPath(spec: OperationSpec): string {
229
- if (spec.path) {
230
- return spec.path;
231
- } else {
232
- throw Error("Bad spec: request path is not found!");
233
- }
234
- }
235
-
236
- export class CoreClientLro<T> implements LongRunningOperation<T> {
237
- constructor(
238
- private sendOperationFn: SendOperationFn<T>,
239
- private args: OperationArguments,
240
- private spec: OperationSpec,
241
- private lroResourceLocationConfig?: LroResourceLocationConfig,
242
- public requestPath: string = spec.path!,
243
- public requestMethod: string = spec.httpMethod
244
- ) {}
245
- public async sendInitialRequest(
246
- initializeState: (
247
- rawResponse: RawResponse,
248
- flatResponse: unknown
249
- ) => boolean
250
- ): Promise<LroResponse<T>> {
251
- const { onResponse, ...restOptions } = this.args.options || {};
252
- return this.sendOperationFn(
253
- {
254
- ...this.args,
255
- options: {
256
- ...restOptions,
257
- onResponse: (
258
- rawResponse: FullOperationResponse,
259
- flatResponse: unknown
260
- ) => {
261
- const isCompleted = initializeState(
262
- {
263
- statusCode: rawResponse.status,
264
- body: rawResponse.parsedBody,
265
- headers: rawResponse.headers.toJSON()
266
- },
267
- flatResponse
268
- );
269
- if (isCompleted) {
270
- onResponse?.(rawResponse, flatResponse);
271
- }
272
- }
273
- }
274
- },
275
- this.spec
276
- );
277
- }
278
-
279
- public async sendPollRequest(
280
- config: LroConfig,
281
- path: string
282
- ): Promise<LroStatus<T>> {
283
- const getLroStatusFromResponse = createGetLroStatusFromResponse(
284
- this,
285
- config,
286
- this.lroResourceLocationConfig
287
- );
288
- return createPollingMethod(
289
- this.sendOperationFn,
290
- getLroStatusFromResponse,
291
- this.args,
292
- this.spec,
293
- config.mode
294
- )(path);
295
- }
296
-
297
- public async retrieveAzureAsyncResource(
298
- path?: string
299
- ): Promise<LroResponse<T>> {
300
- const updatedArgs = { ...this.args };
301
- if (updatedArgs.options) {
302
- (updatedArgs.options as any).shouldDeserialize = true;
303
- }
304
- return createPollingMethod(
305
- this.sendOperationFn,
306
- (rawResponse, flatResponse) => ({
307
- rawResponse,
308
- flatResponse,
309
- done: true
310
- }),
311
- updatedArgs,
312
- this.spec
313
- )(path);
314
- }
315
- }
@@ -1,268 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
-
4
- import {
5
- HttpOperationResponse,
6
- OperationArguments,
7
- OperationResponse,
8
- OperationSpec
9
- } from "@azure/core-http";
10
- import {
11
- LroResourceLocationConfig,
12
- GetLroStatusFromResponse,
13
- LongRunningOperation,
14
- LroConfig,
15
- LroMode,
16
- LroResponse,
17
- LroStatus,
18
- createGetLroStatusFromResponse,
19
- RawResponse
20
- } from "./lro";
21
-
22
- export const successStates = ["succeeded"];
23
- export const failureStates = ["failed", "canceled", "cancelled"];
24
- export const terminalStates = successStates.concat(failureStates);
25
-
26
- export type SendOperationFn<T> = (
27
- args: OperationArguments,
28
- spec: OperationSpec
29
- ) => Promise<LroResponse<T>>;
30
-
31
- export function createPollingMethod<TResult>(
32
- sendOperationFn: SendOperationFn<TResult>,
33
- getLroStatusFromResponse: GetLroStatusFromResponse<TResult>,
34
- args: OperationArguments,
35
- spec: OperationSpec,
36
- mode?: LroMode
37
- ): (path?: string) => Promise<LroStatus<TResult>> {
38
- /**
39
- * Polling calls will always return a status object i.e. {"status": "success"}
40
- * these intermediate responses are not described in the swagger so we need to
41
- * pass custom mappers at runtime.
42
- * This function replaces all the existing mappers to be able to deserialize a status object
43
- * @param responses Original set of responses defined in the operation
44
- */
45
- function getCompositeMappers(responses: {
46
- [responseCode: string]: OperationResponse;
47
- }): {
48
- [responseCode: string]: OperationResponse;
49
- } {
50
- return Object.keys(responses).reduce((acc, statusCode) => {
51
- return {
52
- ...acc,
53
- [statusCode]: {
54
- ...responses[statusCode],
55
- bodyMapper: {
56
- type: {
57
- name: "Composite",
58
- modelProperties: {
59
- status: {
60
- serializedName: "status",
61
- type: {
62
- name: "String"
63
- }
64
- }
65
- }
66
- }
67
- }
68
- }
69
- };
70
- }, {} as { [responseCode: string]: OperationResponse });
71
- }
72
- // Make sure we don't send any body to the get request
73
- const { requestBody, responses, ...restSpec } = spec;
74
- if (mode === "AzureAsync") {
75
- return async (path?: string) => {
76
- const { flatResponse, rawResponse } = await sendOperationFn(args, {
77
- ...restSpec,
78
- responses: getCompositeMappers(responses),
79
- httpMethod: "GET",
80
- ...(path && { path })
81
- });
82
- return getLroStatusFromResponse(rawResponse, flatResponse as TResult);
83
- };
84
- }
85
- return async (path?: string) => {
86
- const { flatResponse, rawResponse } = await sendOperationFn(args, {
87
- ...restSpec,
88
- responses: responses,
89
- httpMethod: "GET",
90
- ...(path && { path })
91
- });
92
- return getLroStatusFromResponse(rawResponse, flatResponse as TResult);
93
- };
94
- }
95
-
96
- /**
97
- * We need to selectively deserialize our responses, only deserializing if we
98
- * are in a final Lro response, not deserializing any polling non-terminal responses
99
- */
100
- export function shouldDeserializeLro(lroResourceLocationConfig?: string) {
101
- let initialOperationInfo: LroResponseInfo | undefined;
102
- let isInitialRequest = true;
103
-
104
- return (response: HttpOperationResponse) => {
105
- if (response.status < 200 || response.status >= 300) {
106
- return true;
107
- }
108
-
109
- if (!initialOperationInfo) {
110
- initialOperationInfo = getLroData(response);
111
- } else {
112
- isInitialRequest = false;
113
- }
114
-
115
- if (
116
- initialOperationInfo.azureAsyncOperation ||
117
- initialOperationInfo.operationLocation
118
- ) {
119
- return (
120
- !isInitialRequest &&
121
- isAsyncOperationFinalResponse(
122
- response,
123
- initialOperationInfo,
124
- lroResourceLocationConfig
125
- )
126
- );
127
- }
128
-
129
- if (initialOperationInfo.location) {
130
- return isLocationFinalResponse(response);
131
- }
132
-
133
- if (initialOperationInfo.requestMethod === "PUT") {
134
- return isBodyPollingFinalResponse(response);
135
- }
136
-
137
- return true;
138
- };
139
- }
140
-
141
- function isAsyncOperationFinalResponse(
142
- response: HttpOperationResponse,
143
- initialOperationInfo: LroResponseInfo,
144
- lroResourceLocationConfig?: string
145
- ): boolean {
146
- const status: string = response.parsedBody?.status || "Succeeded";
147
- if (!terminalStates.includes(status.toLowerCase())) {
148
- return false;
149
- }
150
-
151
- if (initialOperationInfo.requestMethod === "DELETE") {
152
- return true;
153
- }
154
-
155
- if (
156
- initialOperationInfo.requestMethod === "PUT" &&
157
- lroResourceLocationConfig &&
158
- lroResourceLocationConfig.toLowerCase() === "azure-asyncoperation"
159
- ) {
160
- return true;
161
- }
162
-
163
- if (
164
- initialOperationInfo.requestMethod !== "PUT" &&
165
- !initialOperationInfo.location
166
- ) {
167
- return true;
168
- }
169
-
170
- return false;
171
- }
172
-
173
- function isLocationFinalResponse(response: HttpOperationResponse): boolean {
174
- return response.status !== 202;
175
- }
176
-
177
- function isBodyPollingFinalResponse(response: HttpOperationResponse): boolean {
178
- const provisioningState: string =
179
- response.parsedBody?.properties?.provisioningState || "Succeeded";
180
-
181
- if (terminalStates.includes(provisioningState.toLowerCase())) {
182
- return true;
183
- }
184
-
185
- return false;
186
- }
187
-
188
- interface LroResponseInfo {
189
- requestMethod: string;
190
- azureAsyncOperation?: string;
191
- operationLocation?: string;
192
- location?: string;
193
- }
194
-
195
- function getLroData(result: HttpOperationResponse): LroResponseInfo {
196
- return {
197
- azureAsyncOperation: result.headers.get("azure-asyncoperation"),
198
- operationLocation: result.headers.get("operation-location"),
199
- location: result.headers.get("location"),
200
- requestMethod: result.request.method
201
- };
202
- }
203
-
204
- export function getSpecPath(spec: OperationSpec): string {
205
- if (spec.path) {
206
- return spec.path;
207
- } else {
208
- throw Error("Bad spec: request path is not found!");
209
- }
210
- }
211
-
212
- export class CoreHttpLro<T> implements LongRunningOperation<T> {
213
- constructor(
214
- private sendOperationFn: SendOperationFn<T>,
215
- private args: OperationArguments,
216
- private spec: OperationSpec,
217
- private lroResourceLocationConfig?: LroResourceLocationConfig,
218
- public requestPath: string = spec.path!,
219
- public requestMethod: string = spec.httpMethod
220
- ) {}
221
- public async sendInitialRequest(
222
- initializeState: (
223
- rawResponse: RawResponse,
224
- flatResponse: unknown
225
- ) => boolean
226
- ): Promise<LroResponse<T>> {
227
- const response = await this.sendOperationFn(this.args, this.spec);
228
- initializeState(response.rawResponse, response.flatResponse);
229
- return response;
230
- }
231
-
232
- public async sendPollRequest(
233
- config: LroConfig,
234
- path: string
235
- ): Promise<LroStatus<T>> {
236
- const getLroStatusFromResponse = createGetLroStatusFromResponse(
237
- this,
238
- config,
239
- this.lroResourceLocationConfig
240
- );
241
- return createPollingMethod(
242
- this.sendOperationFn,
243
- getLroStatusFromResponse,
244
- this.args,
245
- this.spec,
246
- config.mode
247
- )(path);
248
- }
249
-
250
- public async retrieveAzureAsyncResource(
251
- path?: string
252
- ): Promise<LroResponse<T>> {
253
- const updatedArgs = { ...this.args };
254
- if (updatedArgs.options) {
255
- (updatedArgs.options as any).shouldDeserialize = true;
256
- }
257
- return createPollingMethod(
258
- this.sendOperationFn,
259
- (rawResponse, flatResponse) => ({
260
- rawResponse,
261
- flatResponse,
262
- done: true
263
- }),
264
- updatedArgs,
265
- this.spec
266
- )(path);
267
- }
268
- }