@azure-tools/typespec-ts 0.54.2 → 0.55.0-dev.10

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 (345) hide show
  1. package/CHANGELOG.md +0 -9
  2. package/README.md +68 -105
  3. package/dist/src/framework/hooks/binder.d.ts +1 -1
  4. package/dist/src/framework/hooks/binder.d.ts.map +1 -1
  5. package/dist/src/framework/hooks/binder.js +3 -4
  6. package/dist/src/framework/hooks/binder.js.map +1 -1
  7. package/dist/src/framework/hooks/sdk-types.d.ts +2 -3
  8. package/dist/src/framework/hooks/sdk-types.d.ts.map +1 -1
  9. package/dist/src/framework/hooks/sdk-types.js +2 -3
  10. package/dist/src/framework/hooks/sdk-types.js.map +1 -1
  11. package/dist/src/framework/load-static-helpers.d.ts +4 -1
  12. package/dist/src/framework/load-static-helpers.d.ts.map +1 -1
  13. package/dist/src/framework/load-static-helpers.js +26 -34
  14. package/dist/src/framework/load-static-helpers.js.map +1 -1
  15. package/dist/src/framework/sample.js +1 -1
  16. package/dist/src/framework/sample.js.map +1 -1
  17. package/dist/src/index.d.ts.map +1 -1
  18. package/dist/src/index.js +104 -170
  19. package/dist/src/index.js.map +1 -1
  20. package/dist/src/lib.d.ts +2 -18
  21. package/dist/src/lib.d.ts.map +1 -1
  22. package/dist/src/lib.js +30 -124
  23. package/dist/src/lib.js.map +1 -1
  24. package/dist/src/modular/build-classical-client.js +2 -2
  25. package/dist/src/modular/build-classical-client.js.map +1 -1
  26. package/dist/src/modular/build-client-context.d.ts.map +1 -1
  27. package/dist/src/modular/build-client-context.js +6 -15
  28. package/dist/src/modular/build-client-context.js.map +1 -1
  29. package/dist/src/modular/build-project-files.d.ts.map +1 -1
  30. package/dist/src/modular/build-project-files.js +4 -4
  31. package/dist/src/modular/build-project-files.js.map +1 -1
  32. package/dist/src/modular/build-restore-poller.js +2 -2
  33. package/dist/src/modular/build-restore-poller.js.map +1 -1
  34. package/dist/src/modular/build-root-index.d.ts.map +1 -1
  35. package/dist/src/modular/build-root-index.js +9 -13
  36. package/dist/src/modular/build-root-index.js.map +1 -1
  37. package/dist/src/modular/build-subpath-index.d.ts.map +1 -1
  38. package/dist/src/modular/build-subpath-index.js +4 -4
  39. package/dist/src/modular/build-subpath-index.js.map +1 -1
  40. package/dist/src/modular/emit-logger-file.d.ts.map +1 -1
  41. package/dist/src/modular/emit-logger-file.js +0 -3
  42. package/dist/src/modular/emit-logger-file.js.map +1 -1
  43. package/dist/src/modular/emit-models-options.js +2 -2
  44. package/dist/src/modular/emit-models-options.js.map +1 -1
  45. package/dist/src/modular/emit-models.d.ts.map +1 -1
  46. package/dist/src/modular/emit-models.js +7 -22
  47. package/dist/src/modular/emit-models.js.map +1 -1
  48. package/dist/src/modular/emit-samples.d.ts.map +1 -1
  49. package/dist/src/modular/emit-samples.js +10 -28
  50. package/dist/src/modular/emit-samples.js.map +1 -1
  51. package/dist/src/modular/emit-tests.d.ts +2 -1
  52. package/dist/src/modular/emit-tests.d.ts.map +1 -1
  53. package/dist/src/modular/emit-tests.js +21 -11
  54. package/dist/src/modular/emit-tests.js.map +1 -1
  55. package/dist/src/modular/helpers/client-helpers.d.ts.map +1 -1
  56. package/dist/src/modular/helpers/client-helpers.js +6 -16
  57. package/dist/src/modular/helpers/client-helpers.js.map +1 -1
  58. package/dist/src/modular/helpers/example-value-helpers.d.ts +1 -1
  59. package/dist/src/modular/helpers/example-value-helpers.d.ts.map +1 -1
  60. package/dist/src/modular/helpers/example-value-helpers.js +11 -28
  61. package/dist/src/modular/helpers/example-value-helpers.js.map +1 -1
  62. package/dist/src/modular/serialization/serialize-utils.js +2 -2
  63. package/dist/src/modular/serialization/serialize-utils.js.map +1 -1
  64. package/dist/src/rlc-common/helpers/imports-util.d.ts +3 -4
  65. package/dist/src/rlc-common/helpers/imports-util.d.ts.map +1 -1
  66. package/dist/src/rlc-common/helpers/imports-util.js +43 -56
  67. package/dist/src/rlc-common/helpers/imports-util.js.map +1 -1
  68. package/dist/src/rlc-common/helpers/name-constructors.d.ts +0 -9
  69. package/dist/src/rlc-common/helpers/name-constructors.d.ts.map +1 -1
  70. package/dist/src/rlc-common/helpers/name-constructors.js +1 -17
  71. package/dist/src/rlc-common/helpers/name-constructors.js.map +1 -1
  72. package/dist/src/rlc-common/index.d.ts +0 -18
  73. package/dist/src/rlc-common/index.d.ts.map +1 -1
  74. package/dist/src/rlc-common/index.js +0 -18
  75. package/dist/src/rlc-common/index.js.map +1 -1
  76. package/dist/src/rlc-common/interfaces.d.ts +2 -20
  77. package/dist/src/rlc-common/interfaces.d.ts.map +1 -1
  78. package/dist/src/rlc-common/interfaces.js.map +1 -1
  79. package/dist/src/rlc-common/metadata/build-api-extractor-config.d.ts +1 -1
  80. package/dist/src/rlc-common/metadata/build-api-extractor-config.d.ts.map +1 -1
  81. package/dist/src/rlc-common/metadata/build-api-extractor-config.js +5 -42
  82. package/dist/src/rlc-common/metadata/build-api-extractor-config.js.map +1 -1
  83. package/dist/src/rlc-common/metadata/build-es-lint-config.d.ts +2 -2
  84. package/dist/src/rlc-common/metadata/build-es-lint-config.d.ts.map +1 -1
  85. package/dist/src/rlc-common/metadata/build-es-lint-config.js +3 -41
  86. package/dist/src/rlc-common/metadata/build-es-lint-config.js.map +1 -1
  87. package/dist/src/rlc-common/metadata/build-package-file.d.ts.map +1 -1
  88. package/dist/src/rlc-common/metadata/build-package-file.js +25 -73
  89. package/dist/src/rlc-common/metadata/build-package-file.js.map +1 -1
  90. package/dist/src/rlc-common/metadata/build-readme-file.d.ts +2 -2
  91. package/dist/src/rlc-common/metadata/build-readme-file.d.ts.map +1 -1
  92. package/dist/src/rlc-common/metadata/build-readme-file.js +18 -108
  93. package/dist/src/rlc-common/metadata/build-readme-file.js.map +1 -1
  94. package/dist/src/rlc-common/metadata/build-sample-env-file.d.ts.map +1 -1
  95. package/dist/src/rlc-common/metadata/build-sample-env-file.js +1 -2
  96. package/dist/src/rlc-common/metadata/build-sample-env-file.js.map +1 -1
  97. package/dist/src/rlc-common/metadata/build-test-config.d.ts.map +1 -1
  98. package/dist/src/rlc-common/metadata/build-test-config.js +1 -4
  99. package/dist/src/rlc-common/metadata/build-test-config.js.map +1 -1
  100. package/dist/src/rlc-common/metadata/build-ts-config.d.ts +2 -2
  101. package/dist/src/rlc-common/metadata/build-ts-config.d.ts.map +1 -1
  102. package/dist/src/rlc-common/metadata/build-ts-config.js +19 -60
  103. package/dist/src/rlc-common/metadata/build-ts-config.js.map +1 -1
  104. package/dist/src/rlc-common/metadata/build-warp-config.d.ts +1 -1
  105. package/dist/src/rlc-common/metadata/build-warp-config.d.ts.map +1 -1
  106. package/dist/src/rlc-common/metadata/build-warp-config.js +0 -3
  107. package/dist/src/rlc-common/metadata/build-warp-config.js.map +1 -1
  108. package/dist/src/rlc-common/metadata/package-json/azure-package-common.d.ts +1 -38
  109. package/dist/src/rlc-common/metadata/package-json/azure-package-common.d.ts.map +1 -1
  110. package/dist/src/rlc-common/metadata/package-json/azure-package-common.js +1 -108
  111. package/dist/src/rlc-common/metadata/package-json/azure-package-common.js.map +1 -1
  112. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.d.ts +0 -39
  113. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.d.ts.map +1 -1
  114. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.js +4 -20
  115. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.js.map +1 -1
  116. package/dist/src/rlc-common/metadata/package-json/package-common.d.ts +1 -22
  117. package/dist/src/rlc-common/metadata/package-json/package-common.d.ts.map +1 -1
  118. package/dist/src/rlc-common/metadata/package-json/package-common.js +21 -98
  119. package/dist/src/rlc-common/metadata/package-json/package-common.js.map +1 -1
  120. package/dist/src/rlc-common/static/polling-content.d.ts +1 -1
  121. package/dist/src/rlc-common/static/polling-content.d.ts.map +1 -1
  122. package/dist/src/rlc-common/static/polling-content.js +1 -1
  123. package/dist/src/rlc-common/test/build-recorded-client.d.ts +1 -1
  124. package/dist/src/rlc-common/test/build-recorded-client.d.ts.map +1 -1
  125. package/dist/src/rlc-common/test/build-recorded-client.js +2 -5
  126. package/dist/src/rlc-common/test/build-recorded-client.js.map +1 -1
  127. package/dist/src/rlc-common/test/build-sample-test.d.ts +1 -1
  128. package/dist/src/rlc-common/test/build-sample-test.d.ts.map +1 -1
  129. package/dist/src/rlc-common/test/build-sample-test.js +2 -5
  130. package/dist/src/rlc-common/test/build-sample-test.js.map +1 -1
  131. package/dist/src/rlc-common/test/build-snippets.d.ts +1 -1
  132. package/dist/src/rlc-common/test/build-snippets.d.ts.map +1 -1
  133. package/dist/src/rlc-common/test/build-snippets.js +2 -6
  134. package/dist/src/rlc-common/test/build-snippets.js.map +1 -1
  135. package/dist/src/rlc-common/test/template.d.ts +3 -3
  136. package/dist/src/rlc-common/test/template.d.ts.map +1 -1
  137. package/dist/src/rlc-common/test/template.js +1 -35
  138. package/dist/src/rlc-common/test/template.js.map +1 -1
  139. package/dist/src/transform/transform-helper-function-details.d.ts +2 -2
  140. package/dist/src/transform/transform-helper-function-details.d.ts.map +1 -1
  141. package/dist/src/transform/transform-helper-function-details.js +1 -9
  142. package/dist/src/transform/transform-helper-function-details.js.map +1 -1
  143. package/dist/src/transform/transform-schemas.js +1 -1
  144. package/dist/src/transform/transform-schemas.js.map +1 -1
  145. package/dist/src/transform/transform.d.ts.map +1 -1
  146. package/dist/src/transform/transform.js +9 -16
  147. package/dist/src/transform/transform.js.map +1 -1
  148. package/dist/src/transform/transfrom-rlc-options.d.ts +2 -2
  149. package/dist/src/transform/transfrom-rlc-options.d.ts.map +1 -1
  150. package/dist/src/transform/transfrom-rlc-options.js +29 -94
  151. package/dist/src/transform/transfrom-rlc-options.js.map +1 -1
  152. package/dist/src/utils/client-utils.d.ts +1 -1
  153. package/dist/src/utils/client-utils.d.ts.map +1 -1
  154. package/dist/src/utils/client-utils.js +4 -5
  155. package/dist/src/utils/client-utils.js.map +1 -1
  156. package/dist/src/utils/emit-util.d.ts +0 -1
  157. package/dist/src/utils/emit-util.d.ts.map +1 -1
  158. package/dist/src/utils/emit-util.js +13 -24
  159. package/dist/src/utils/emit-util.js.map +1 -1
  160. package/dist/src/utils/file-system-utils.d.ts +4 -4
  161. package/dist/src/utils/file-system-utils.d.ts.map +1 -1
  162. package/dist/src/utils/file-system-utils.js +14 -16
  163. package/dist/src/utils/file-system-utils.js.map +1 -1
  164. package/dist/src/utils/import-helper.js +3 -3
  165. package/dist/src/utils/import-helper.js.map +1 -1
  166. package/dist/src/utils/model-utils.d.ts +1 -1
  167. package/dist/src/utils/model-utils.d.ts.map +1 -1
  168. package/dist/src/utils/model-utils.js +4 -11
  169. package/dist/src/utils/model-utils.js.map +1 -1
  170. package/dist/src/utils/resolve-project-root.d.ts +6 -4
  171. package/dist/src/utils/resolve-project-root.d.ts.map +1 -1
  172. package/dist/src/utils/resolve-project-root.js +11 -18
  173. package/dist/src/utils/resolve-project-root.js.map +1 -1
  174. package/dist/tsconfig.tsbuildinfo +1 -1
  175. package/package.json +44 -59
  176. package/src/framework/hooks/binder.ts +4 -5
  177. package/src/framework/hooks/sdk-types.ts +2 -3
  178. package/src/framework/load-static-helpers.ts +38 -41
  179. package/src/framework/sample.ts +1 -1
  180. package/src/index.ts +126 -204
  181. package/src/lib.ts +32 -143
  182. package/src/modular/build-classical-client.ts +2 -2
  183. package/src/modular/build-client-context.ts +6 -14
  184. package/src/modular/build-project-files.ts +11 -4
  185. package/src/modular/build-restore-poller.ts +2 -2
  186. package/src/modular/build-root-index.ts +9 -13
  187. package/src/modular/build-subpath-index.ts +4 -4
  188. package/src/modular/emit-logger-file.ts +0 -3
  189. package/src/modular/emit-models-options.ts +2 -2
  190. package/src/modular/emit-models.ts +7 -23
  191. package/src/modular/emit-samples.ts +10 -26
  192. package/src/modular/emit-tests.ts +28 -11
  193. package/src/modular/helpers/client-helpers.ts +7 -17
  194. package/src/modular/helpers/example-value-helpers.ts +11 -26
  195. package/src/modular/serialization/serialize-utils.ts +2 -2
  196. package/src/rlc-common/helpers/imports-util.ts +44 -56
  197. package/src/rlc-common/helpers/name-constructors.ts +1 -23
  198. package/src/rlc-common/index.ts +0 -18
  199. package/src/rlc-common/interfaces.ts +2 -23
  200. package/src/rlc-common/metadata/build-api-extractor-config.ts +5 -47
  201. package/src/rlc-common/metadata/build-es-lint-config.ts +3 -42
  202. package/src/rlc-common/metadata/build-package-file.ts +24 -86
  203. package/src/rlc-common/metadata/build-readme-file.ts +19 -121
  204. package/src/rlc-common/metadata/build-sample-env-file.ts +1 -4
  205. package/src/rlc-common/metadata/build-test-config.ts +1 -6
  206. package/src/rlc-common/metadata/build-ts-config.ts +30 -72
  207. package/src/rlc-common/metadata/build-warp-config.ts +0 -4
  208. package/src/rlc-common/metadata/package-json/azure-package-common.ts +2 -134
  209. package/src/rlc-common/metadata/package-json/build-azure-monorepo-package.ts +4 -24
  210. package/src/rlc-common/metadata/package-json/package-common.ts +22 -120
  211. package/src/rlc-common/static/polling-content.ts +1 -1
  212. package/src/rlc-common/test/build-recorded-client.ts +2 -5
  213. package/src/rlc-common/test/build-sample-test.ts +2 -5
  214. package/src/rlc-common/test/build-snippets.ts +2 -6
  215. package/src/rlc-common/test/template.ts +1 -35
  216. package/src/transform/transform-helper-function-details.ts +1 -10
  217. package/src/transform/transform-schemas.ts +1 -1
  218. package/src/transform/transform.ts +8 -19
  219. package/src/transform/transfrom-rlc-options.ts +29 -127
  220. package/src/utils/client-utils.ts +4 -5
  221. package/src/utils/emit-util.ts +14 -39
  222. package/src/utils/file-system-utils.ts +14 -15
  223. package/src/utils/import-helper.ts +3 -3
  224. package/src/utils/model-utils.ts +4 -17
  225. package/src/utils/resolve-project-root.ts +11 -24
  226. package/dist/src/rlc-common/build-client-definitions.d.ts +0 -6
  227. package/dist/src/rlc-common/build-client-definitions.d.ts.map +0 -1
  228. package/dist/src/rlc-common/build-client-definitions.js +0 -157
  229. package/dist/src/rlc-common/build-client-definitions.js.map +0 -1
  230. package/dist/src/rlc-common/build-client.d.ts +0 -9
  231. package/dist/src/rlc-common/build-client.d.ts.map +0 -1
  232. package/dist/src/rlc-common/build-client.js +0 -391
  233. package/dist/src/rlc-common/build-client.js.map +0 -1
  234. package/dist/src/rlc-common/build-index-file.d.ts +0 -6
  235. package/dist/src/rlc-common/build-index-file.d.ts.map +0 -1
  236. package/dist/src/rlc-common/build-index-file.js +0 -241
  237. package/dist/src/rlc-common/build-index-file.js.map +0 -1
  238. package/dist/src/rlc-common/build-is-unexpected-helper.d.ts +0 -6
  239. package/dist/src/rlc-common/build-is-unexpected-helper.d.ts.map +0 -1
  240. package/dist/src/rlc-common/build-is-unexpected-helper.js +0 -223
  241. package/dist/src/rlc-common/build-is-unexpected-helper.js.map +0 -1
  242. package/dist/src/rlc-common/build-logger.d.ts +0 -6
  243. package/dist/src/rlc-common/build-logger.d.ts.map +0 -1
  244. package/dist/src/rlc-common/build-logger.js +0 -31
  245. package/dist/src/rlc-common/build-logger.js.map +0 -1
  246. package/dist/src/rlc-common/build-method-shortcuts.d.ts +0 -5
  247. package/dist/src/rlc-common/build-method-shortcuts.d.ts.map +0 -1
  248. package/dist/src/rlc-common/build-method-shortcuts.js +0 -54
  249. package/dist/src/rlc-common/build-method-shortcuts.js.map +0 -1
  250. package/dist/src/rlc-common/build-object-types.d.ts +0 -29
  251. package/dist/src/rlc-common/build-object-types.d.ts.map +0 -1
  252. package/dist/src/rlc-common/build-object-types.js +0 -412
  253. package/dist/src/rlc-common/build-object-types.js.map +0 -1
  254. package/dist/src/rlc-common/build-paginate-helper.d.ts +0 -6
  255. package/dist/src/rlc-common/build-paginate-helper.d.ts.map +0 -1
  256. package/dist/src/rlc-common/build-paginate-helper.js +0 -27
  257. package/dist/src/rlc-common/build-paginate-helper.js.map +0 -1
  258. package/dist/src/rlc-common/build-parameter-types.d.ts +0 -14
  259. package/dist/src/rlc-common/build-parameter-types.d.ts.map +0 -1
  260. package/dist/src/rlc-common/build-parameter-types.js +0 -391
  261. package/dist/src/rlc-common/build-parameter-types.js.map +0 -1
  262. package/dist/src/rlc-common/build-polling-helper.d.ts +0 -6
  263. package/dist/src/rlc-common/build-polling-helper.d.ts.map +0 -1
  264. package/dist/src/rlc-common/build-polling-helper.js +0 -61
  265. package/dist/src/rlc-common/build-polling-helper.js.map +0 -1
  266. package/dist/src/rlc-common/build-response-types.d.ts +0 -6
  267. package/dist/src/rlc-common/build-response-types.d.ts.map +0 -1
  268. package/dist/src/rlc-common/build-response-types.js +0 -143
  269. package/dist/src/rlc-common/build-response-types.js.map +0 -1
  270. package/dist/src/rlc-common/build-samples.d.ts +0 -3
  271. package/dist/src/rlc-common/build-samples.d.ts.map +0 -1
  272. package/dist/src/rlc-common/build-samples.js +0 -30
  273. package/dist/src/rlc-common/build-samples.js.map +0 -1
  274. package/dist/src/rlc-common/build-schema-type.d.ts +0 -20
  275. package/dist/src/rlc-common/build-schema-type.d.ts.map +0 -1
  276. package/dist/src/rlc-common/build-schema-type.js +0 -71
  277. package/dist/src/rlc-common/build-schema-type.js.map +0 -1
  278. package/dist/src/rlc-common/build-serialize-helper.d.ts +0 -6
  279. package/dist/src/rlc-common/build-serialize-helper.d.ts.map +0 -1
  280. package/dist/src/rlc-common/build-serialize-helper.js +0 -36
  281. package/dist/src/rlc-common/build-serialize-helper.js.map +0 -1
  282. package/dist/src/rlc-common/build-top-level-index-file.d.ts +0 -6
  283. package/dist/src/rlc-common/build-top-level-index-file.d.ts.map +0 -1
  284. package/dist/src/rlc-common/build-top-level-index-file.js +0 -48
  285. package/dist/src/rlc-common/build-top-level-index-file.js.map +0 -1
  286. package/dist/src/rlc-common/helpers/package-util.d.ts +0 -7
  287. package/dist/src/rlc-common/helpers/package-util.d.ts.map +0 -1
  288. package/dist/src/rlc-common/helpers/package-util.js +0 -10
  289. package/dist/src/rlc-common/helpers/package-util.js.map +0 -1
  290. package/dist/src/rlc-common/helpers/path-utils.d.ts +0 -2
  291. package/dist/src/rlc-common/helpers/path-utils.d.ts.map +0 -1
  292. package/dist/src/rlc-common/helpers/path-utils.js +0 -10
  293. package/dist/src/rlc-common/helpers/path-utils.js.map +0 -1
  294. package/dist/src/rlc-common/helpers/shortcut-methods.d.ts +0 -4
  295. package/dist/src/rlc-common/helpers/shortcut-methods.d.ts.map +0 -1
  296. package/dist/src/rlc-common/helpers/shortcut-methods.js +0 -49
  297. package/dist/src/rlc-common/helpers/shortcut-methods.js.map +0 -1
  298. package/dist/src/rlc-common/helpers/value-generation-util.d.ts +0 -12
  299. package/dist/src/rlc-common/helpers/value-generation-util.d.ts.map +0 -1
  300. package/dist/src/rlc-common/helpers/value-generation-util.js +0 -161
  301. package/dist/src/rlc-common/helpers/value-generation-util.js.map +0 -1
  302. package/dist/src/rlc-common/metadata/build-rollup-config.d.ts +0 -6
  303. package/dist/src/rlc-common/metadata/build-rollup-config.d.ts.map +0 -1
  304. package/dist/src/rlc-common/metadata/build-rollup-config.js +0 -140
  305. package/dist/src/rlc-common/metadata/build-rollup-config.js.map +0 -1
  306. package/dist/src/rlc-common/metadata/package-json/build-azure-standalone-package.d.ts +0 -8
  307. package/dist/src/rlc-common/metadata/package-json/build-azure-standalone-package.d.ts.map +0 -1
  308. package/dist/src/rlc-common/metadata/package-json/build-azure-standalone-package.js +0 -101
  309. package/dist/src/rlc-common/metadata/package-json/build-azure-standalone-package.js.map +0 -1
  310. package/dist/src/rlc-common/metadata/package-json/build-flavorless-package.d.ts +0 -57
  311. package/dist/src/rlc-common/metadata/package-json/build-flavorless-package.d.ts.map +0 -1
  312. package/dist/src/rlc-common/metadata/package-json/build-flavorless-package.js +0 -53
  313. package/dist/src/rlc-common/metadata/package-json/build-flavorless-package.js.map +0 -1
  314. package/dist/src/rlc-common/transform-sample-groups.d.ts +0 -9
  315. package/dist/src/rlc-common/transform-sample-groups.d.ts.map +0 -1
  316. package/dist/src/rlc-common/transform-sample-groups.js +0 -313
  317. package/dist/src/rlc-common/transform-sample-groups.js.map +0 -1
  318. package/dist/src/utils/dirname.d.ts +0 -9
  319. package/dist/src/utils/dirname.d.ts.map +0 -1
  320. package/dist/src/utils/dirname.js +0 -12
  321. package/dist/src/utils/dirname.js.map +0 -1
  322. package/src/rlc-common/build-client-definitions.ts +0 -235
  323. package/src/rlc-common/build-client.ts +0 -490
  324. package/src/rlc-common/build-index-file.ts +0 -344
  325. package/src/rlc-common/build-is-unexpected-helper.ts +0 -248
  326. package/src/rlc-common/build-logger.ts +0 -43
  327. package/src/rlc-common/build-method-shortcuts.ts +0 -71
  328. package/src/rlc-common/build-object-types.ts +0 -603
  329. package/src/rlc-common/build-paginate-helper.ts +0 -31
  330. package/src/rlc-common/build-parameter-types.ts +0 -554
  331. package/src/rlc-common/build-polling-helper.ts +0 -83
  332. package/src/rlc-common/build-response-types.ts +0 -180
  333. package/src/rlc-common/build-samples.ts +0 -32
  334. package/src/rlc-common/build-schema-type.ts +0 -89
  335. package/src/rlc-common/build-serialize-helper.ts +0 -49
  336. package/src/rlc-common/build-top-level-index-file.ts +0 -58
  337. package/src/rlc-common/helpers/package-util.ts +0 -13
  338. package/src/rlc-common/helpers/path-utils.ts +0 -10
  339. package/src/rlc-common/helpers/shortcut-methods.ts +0 -58
  340. package/src/rlc-common/helpers/value-generation-util.ts +0 -234
  341. package/src/rlc-common/metadata/build-rollup-config.ts +0 -147
  342. package/src/rlc-common/metadata/package-json/build-azure-standalone-package.ts +0 -123
  343. package/src/rlc-common/metadata/package-json/build-flavorless-package.ts +0 -68
  344. package/src/rlc-common/transform-sample-groups.ts +0 -407
  345. package/src/utils/dirname.ts +0 -12
@@ -1,391 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
- import * as path from "path";
4
- import { Project, StructureKind, } from "ts-morph";
5
- import { getObjectInterfaceDeclaration } from "./build-object-types.js";
6
- import { getImportSpecifier } from "./helpers/imports-util.js";
7
- import { getImportModuleName, getParameterBaseName, getParameterTypeName, } from "./helpers/name-constructors.js";
8
- import { getGeneratedWrapperTypes } from "./helpers/operation-helpers.js";
9
- import { SchemaContext, } from "./interfaces.js";
10
- export function buildParameterTypes(model) {
11
- const project = new Project();
12
- const srcPath = model.srcPath;
13
- const filePath = path.join(srcPath, `parameters.ts`);
14
- const partialBodyTypeNames = new Set();
15
- const parametersFile = project.createSourceFile(filePath, undefined, {
16
- overwrite: true,
17
- });
18
- let hasHeaders = false;
19
- if (!model.parameters) {
20
- return;
21
- }
22
- for (const requestParameter of model.parameters) {
23
- const baseParameterName = getParameterBaseName(requestParameter.operationGroup, requestParameter.operationName);
24
- const requestCount = requestParameter?.parameters?.length ?? 0;
25
- const topParamName = getParameterTypeName(baseParameterName);
26
- const subParamNames = [];
27
- // We need to loop the requests. An operation with multiple requests means that
28
- // the operation can get different values for content-type and each value may
29
- // have a different type associated to it.
30
- for (let i = 0; i < requestCount; i++) {
31
- const parameter = requestParameter.parameters[i];
32
- if (!parameter) {
33
- continue;
34
- }
35
- const internalReferences = new Set();
36
- // In case we have more than one request to model we need to add a suffix to differentiate
37
- const nameSuffix = i > 0 ? `${i}` : "";
38
- const parameterInterfaceName = requestCount > 1 ? `${baseParameterName}RequestParameters${nameSuffix}` : topParamName;
39
- const queryParameterDefinitions = buildQueryParameterDefinition(model, parameter, baseParameterName, internalReferences, i);
40
- const pathParameterDefinitions = buildPathParameterDefinitions(model, parameter, baseParameterName, parametersFile, internalReferences, i);
41
- const headerParameterDefinitions = buildHeaderParameterDefinitions(parameter, baseParameterName, parametersFile, internalReferences, i);
42
- const contentTypeParameterDefinition = buildContentTypeParametersDefinition(parameter, baseParameterName, internalReferences, i);
43
- const bodyParameterDefinition = buildBodyParametersDefinition(parameter, baseParameterName, internalReferences, i);
44
- const bodyTypeAlias = buildBodyTypeAlias(parameter, partialBodyTypeNames);
45
- if (bodyTypeAlias) {
46
- parametersFile.addTypeAlias(bodyTypeAlias);
47
- }
48
- // Add interfaces for body and query parameters
49
- parametersFile.addInterfaces([
50
- ...(bodyParameterDefinition ?? []),
51
- ...(queryParameterDefinitions ?? []),
52
- ...(pathParameterDefinitions ?? []),
53
- ...(headerParameterDefinitions ? [headerParameterDefinitions] : []),
54
- ...(contentTypeParameterDefinition ? [contentTypeParameterDefinition] : []),
55
- ]);
56
- // Add Operation parameters type alias which is composed of the types we generated above
57
- // plus the common type RequestParameters
58
- parametersFile.addTypeAlias({
59
- name: parameterInterfaceName,
60
- isExported: true,
61
- type: [...internalReferences, "RequestParameters"].join(" & "),
62
- });
63
- subParamNames.push(parameterInterfaceName);
64
- if (headerParameterDefinitions !== undefined) {
65
- hasHeaders = true;
66
- }
67
- }
68
- // Add Operation parameters type alias which is composed of the types we generated above
69
- // plus the common type RequestParameters
70
- if (requestCount > 1) {
71
- parametersFile.addTypeAlias({
72
- name: topParamName,
73
- isExported: true,
74
- type: [...subParamNames].join(" | "),
75
- });
76
- }
77
- }
78
- if (hasHeaders) {
79
- parametersFile.addImportDeclarations([
80
- {
81
- isTypeOnly: true,
82
- namedImports: ["RawHttpHeadersInput"],
83
- moduleSpecifier: getImportSpecifier("restPipeline", model.importInfo.runtimeImports),
84
- },
85
- ]);
86
- }
87
- parametersFile.addImportDeclarations([
88
- {
89
- isTypeOnly: true,
90
- namedImports: ["RequestParameters"],
91
- moduleSpecifier: getImportSpecifier("restClient", model.importInfo.runtimeImports),
92
- },
93
- ]);
94
- if ((model.importInfo.internalImports?.parameter?.importsSet?.size ?? 0) > 0) {
95
- parametersFile.addImportDeclarations([
96
- {
97
- isTypeOnly: true,
98
- namedImports: Array.from(model.importInfo.internalImports.parameter.importsSet),
99
- moduleSpecifier: getImportModuleName({
100
- cjsName: `./models`,
101
- esModulesName: `./models.js`,
102
- }, model),
103
- },
104
- ]);
105
- }
106
- // Add NodeReadableStream import if binary types are used in parameters.
107
- // platform-types.ts is generated directly under src/ (no static-helpers/
108
- // subdirectory) to match the RLC design where all output lives in src/.
109
- // The platform-types static helper resolves NodeReadableStream to
110
- // NodeJS.ReadableStream on Node and `never` on browser/react-native, so the
111
- // union arm drops out naturally in non-Node builds.
112
- if (parametersFile.getFullText().includes("NodeReadableStream")) {
113
- const platformTypesModuleSpecifier = model.options?.azureSdkForJs
114
- ? "#platform/platform-types"
115
- : getImportModuleName({
116
- cjsName: `./platform-types`,
117
- esModulesName: `./platform-types.js`,
118
- }, model);
119
- parametersFile.addImportDeclarations([
120
- {
121
- isTypeOnly: true,
122
- namedImports: ["NodeReadableStream"],
123
- moduleSpecifier: platformTypesModuleSpecifier,
124
- },
125
- ]);
126
- }
127
- return { path: filePath, content: parametersFile.getFullText() };
128
- }
129
- function buildQueryParameterDefinition(model, parameters, baseName, internalReferences, requestIndex) {
130
- const queryParameters = (parameters?.parameters || []).filter((p) => p.type === "query");
131
- if (!queryParameters.length) {
132
- return undefined;
133
- }
134
- const nameSuffix = requestIndex > 0 ? `${requestIndex}` : "";
135
- const queryParameterInterfaceName = `${baseName}QueryParam${nameSuffix}`;
136
- const queryParameterPropertiesName = `${baseName}QueryParamProperties`;
137
- // Get the property signature for each query parameter
138
- const propertiesDefinition = queryParameters.map((qp) => getPropertyFromSchema(qp.param));
139
- // Get wrapper types for query parameters
140
- const wrapperTypesDefinition = getGeneratedWrapperTypes(queryParameters).map((wrapObj) => {
141
- return getObjectInterfaceDeclaration(model, wrapObj.name, wrapObj, [SchemaContext.Input], new Set());
142
- });
143
- const hasRequiredParameters = propertiesDefinition.some((p) => !p.hasQuestionToken);
144
- const propertiesInterface = {
145
- kind: StructureKind.Interface,
146
- isExported: true,
147
- name: queryParameterPropertiesName,
148
- properties: propertiesDefinition,
149
- };
150
- const parameterInterface = {
151
- kind: StructureKind.Interface,
152
- isExported: true,
153
- name: queryParameterInterfaceName,
154
- properties: [
155
- {
156
- name: "queryParameters",
157
- type: queryParameterPropertiesName,
158
- // Mark as optional if there are no required parameters
159
- hasQuestionToken: !hasRequiredParameters,
160
- },
161
- ],
162
- };
163
- // Mark the queryParameter interface for importing
164
- internalReferences.add(queryParameterInterfaceName);
165
- return [...wrapperTypesDefinition, propertiesInterface, parameterInterface];
166
- }
167
- function getPropertyFromSchema(schema) {
168
- const description = schema.description;
169
- return {
170
- name: schema.name,
171
- ...(description && { docs: [{ description }] }),
172
- type: schema.type,
173
- hasQuestionToken: !schema.required,
174
- kind: StructureKind.PropertySignature,
175
- };
176
- }
177
- function buildPathParameterDefinitions(model, parameters, baseName, parametersFile, internalReferences, requestIndex) {
178
- const pathParameters = (parameters.parameters || []).filter((p) => p.type === "path");
179
- if (!pathParameters.length) {
180
- return undefined;
181
- }
182
- const allDefinitions = [];
183
- buildClientPathParameters();
184
- buildMethodWrapParameters();
185
- return allDefinitions;
186
- function buildClientPathParameters() {
187
- // we only have client-level path parameters if the source is from swagger
188
- if (model.options?.sourceFrom === "TypeSpec") {
189
- return;
190
- }
191
- const clientPathParams = pathParameters.length > 0 ? pathParameters : [];
192
- const nameSuffix = requestIndex > 0 ? `${requestIndex}` : "";
193
- const pathParameterInterfaceName = `${baseName}PathParam${nameSuffix}`;
194
- const pathInterface = getPathInterfaceDefinition(clientPathParams, baseName);
195
- if (pathInterface) {
196
- parametersFile.addInterface(pathInterface);
197
- }
198
- internalReferences.add(pathParameterInterfaceName);
199
- allDefinitions.push({
200
- isExported: true,
201
- kind: StructureKind.Interface,
202
- name: pathParameterInterfaceName,
203
- properties: [
204
- {
205
- name: "pathParameters",
206
- type: `${baseName}PathParameters`,
207
- kind: StructureKind.PropertySignature,
208
- },
209
- ],
210
- });
211
- }
212
- function buildMethodWrapParameters() {
213
- if (model.options?.sourceFrom === "Swagger") {
214
- return;
215
- }
216
- // we only have method-level path parameters if the source is from typespec
217
- const methodPathParams = pathParameters.length > 0 ? pathParameters : [];
218
- // we only need to build the wrapper types if the path parameters are objects
219
- const wrapperTypesDefinition = getGeneratedWrapperTypes(methodPathParams).map((wrap) => {
220
- return getObjectInterfaceDeclaration(model, wrap.name, wrap, [SchemaContext.Input], new Set());
221
- });
222
- allDefinitions.push(...wrapperTypesDefinition);
223
- }
224
- }
225
- function getPathInterfaceDefinition(pathParameters, baseName) {
226
- const pathInterfaceName = `${baseName}PathParameters`;
227
- return {
228
- kind: StructureKind.Interface,
229
- isExported: true,
230
- name: pathInterfaceName,
231
- properties: pathParameters.map((p) => getPropertyFromSchema(p.param)),
232
- };
233
- }
234
- function buildHeaderParameterDefinitions(parameters, baseName, parametersFile, internalReferences, requestIndex) {
235
- const headerParameters = (parameters.parameters || []).filter((p) => p.type === "header" && p.name !== "contentType");
236
- if (!headerParameters.length) {
237
- return undefined;
238
- }
239
- const nameSuffix = requestIndex > 0 ? `${requestIndex}` : "";
240
- const headerParameterInterfaceName = `${baseName}HeaderParam${nameSuffix}`;
241
- const headersInterface = getRequestHeaderInterfaceDefinition(headerParameters, baseName);
242
- let isOptional = true;
243
- if (headersInterface) {
244
- parametersFile.addInterface(headersInterface);
245
- isOptional = !(headersInterface.properties || []).some((prop) => prop.hasQuestionToken === false);
246
- }
247
- internalReferences.add(headerParameterInterfaceName);
248
- return {
249
- isExported: true,
250
- kind: StructureKind.Interface,
251
- name: headerParameterInterfaceName,
252
- properties: [
253
- {
254
- name: "headers",
255
- type: `RawHttpHeadersInput & ${baseName}Headers`,
256
- kind: StructureKind.PropertySignature,
257
- hasQuestionToken: isOptional,
258
- },
259
- ],
260
- };
261
- }
262
- function getRequestHeaderInterfaceDefinition(headerParameters, baseName) {
263
- const headersInterfaceName = `${baseName}Headers`;
264
- return {
265
- kind: StructureKind.Interface,
266
- isExported: true,
267
- name: headersInterfaceName,
268
- properties: headerParameters.map((h) => getPropertyFromSchema(h.param)),
269
- };
270
- }
271
- function buildContentTypeParametersDefinition(parameters, baseName, internalReferences, requestIndex) {
272
- const mediaTypeParameters = (parameters.parameters || []).filter((p) => p.type === "header" && p.name === "contentType");
273
- if (!mediaTypeParameters.length) {
274
- return undefined;
275
- }
276
- const nameSuffix = requestIndex > 0 ? `${requestIndex}` : "";
277
- const mediaTypesParameterInterfaceName = `${baseName}MediaTypesParam${nameSuffix}`;
278
- // Mark the queryParameter interface for importing
279
- internalReferences.add(mediaTypesParameterInterfaceName);
280
- const firstMediaType = mediaTypeParameters[0];
281
- if (!firstMediaType) {
282
- return undefined;
283
- }
284
- const mediaParam = firstMediaType.param;
285
- return {
286
- isExported: true,
287
- kind: StructureKind.Interface,
288
- name: mediaTypesParameterInterfaceName,
289
- properties: [getPropertyFromSchema(mediaParam)],
290
- };
291
- }
292
- function buildBodyParametersDefinition(parameters, baseName, internalReferences, requestIndex) {
293
- const bodyParameters = parameters.body;
294
- if (!bodyParameters || !bodyParameters?.body || !bodyParameters?.body.length) {
295
- return [];
296
- }
297
- const nameSuffix = requestIndex > 0 ? `${requestIndex}` : "";
298
- const bodyParameterInterfaceName = `${baseName}BodyParam${nameSuffix}`;
299
- internalReferences.add(bodyParameterInterfaceName);
300
- // In case of formData we'd get multiple properties in body marked as partialBody
301
- if (bodyParameters.isPartialBody) {
302
- let allOptionalParts = true;
303
- const propertiesDefinitions = [];
304
- for (const param of bodyParameters.body) {
305
- if (param.required) {
306
- allOptionalParts = false;
307
- }
308
- propertiesDefinitions.push(getPropertyFromSchema(param));
309
- }
310
- const formBodyName = `${baseName}FormBody`;
311
- const formBodyInterface = {
312
- isExported: true,
313
- kind: StructureKind.Interface,
314
- name: formBodyName,
315
- properties: propertiesDefinitions,
316
- };
317
- return [
318
- {
319
- isExported: true,
320
- kind: StructureKind.Interface,
321
- name: bodyParameterInterfaceName,
322
- properties: [
323
- {
324
- name: "body",
325
- type: formBodyName,
326
- hasQuestionToken: allOptionalParts,
327
- },
328
- ],
329
- },
330
- formBodyInterface,
331
- ];
332
- }
333
- else {
334
- const firstBody = bodyParameters.body[0];
335
- if (!firstBody) {
336
- return [];
337
- }
338
- const bodySignature = getPropertyFromSchema(firstBody);
339
- return [
340
- {
341
- isExported: true,
342
- kind: StructureKind.Interface,
343
- name: bodyParameterInterfaceName,
344
- properties: [
345
- {
346
- docs: bodySignature.docs,
347
- name: "body",
348
- type: bodySignature.type,
349
- hasQuestionToken: bodySignature.hasQuestionToken,
350
- },
351
- ],
352
- },
353
- ];
354
- }
355
- }
356
- export function buildBodyTypeAlias(parameters, partialBodyTypeNames) {
357
- const bodyParameters = parameters.body;
358
- if (!bodyParameters || !bodyParameters?.body || !bodyParameters?.body.length) {
359
- return undefined;
360
- }
361
- const schema = bodyParameters.body[0];
362
- const headerParameters = (parameters.parameters || []).filter((p) => p.type === "header" && p.name === "contentType");
363
- if (!headerParameters.length || headerParameters.length > 1) {
364
- return undefined;
365
- }
366
- const firstHeader = headerParameters[0];
367
- if (!firstHeader) {
368
- return undefined;
369
- }
370
- const contentType = firstHeader.param.type;
371
- const description = `${schema.description}`;
372
- const typeName = `${schema.typeName}ResourceMergeAndPatch`;
373
- if (partialBodyTypeNames.has(typeName)) {
374
- return null;
375
- }
376
- else {
377
- partialBodyTypeNames.add(typeName);
378
- }
379
- if (contentType.includes("application/merge-patch+json")) {
380
- const type = `Partial<${schema.typeName}>`;
381
- return {
382
- // kind: StructureKind.TypeAlias,
383
- ...(description && { docs: [{ description }] }),
384
- name: `${typeName}`,
385
- type,
386
- isExported: true,
387
- };
388
- }
389
- return undefined;
390
- }
391
- //# sourceMappingURL=build-parameter-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-parameter-types.js","sourceRoot":"","sources":["../../../src/rlc-common/build-parameter-types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { RLCModel } from "./interfaces.js";
2
- export declare function buildPollingHelper(model: RLCModel): {
3
- path: string;
4
- content: string;
5
- } | undefined;
6
- //# sourceMappingURL=build-polling-helper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-polling-helper.d.ts","sourceRoot":"","sources":["../../../src/rlc-common/build-polling-helper.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAoBxE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ;;;cAYjD"}
@@ -1,61 +0,0 @@
1
- import * as path from "path";
2
- import { OPERATION_LRO_HIGH_PRIORITY } from "./interfaces.js";
3
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
4
- // @ts-ignore: to fix the handlebars issue
5
- import hbs from "handlebars";
6
- import { hasPollingOperations } from "./helpers/operation-helpers.js";
7
- import { pollingContent } from "./static/polling-content.js";
8
- export function buildPollingHelper(model) {
9
- if (!hasPollingOperations(model)) {
10
- return;
11
- }
12
- const lroDetail = buildLroHelperDetail(model);
13
- const readmeFileContents = hbs.compile(pollingContent, { noEscape: true });
14
- const { srcPath } = model;
15
- return {
16
- path: path.join(srcPath, "pollingHelper.ts"),
17
- content: readmeFileContents(lroDetail),
18
- };
19
- }
20
- function buildLroHelperDetail(model) {
21
- if (!model.helperDetails?.clientLroOverload) {
22
- return {
23
- clientOverload: false,
24
- isEsm: model.options?.moduleKind === "esm",
25
- };
26
- }
27
- const mapDetail = [];
28
- const pathDictionary = model.paths;
29
- const responses = new Set();
30
- for (const details of Object.values(pathDictionary)) {
31
- for (const methodDetails of Object.values(details.methods)) {
32
- const firstMethod = methodDetails[0];
33
- if (!firstMethod) {
34
- continue;
35
- }
36
- const lroDetail = firstMethod.operationHelperDetail?.lroDetails;
37
- if (lroDetail?.isLongRunning) {
38
- const initialResponses = firstMethod.responseTypes.success.concat(firstMethod.responseTypes.error);
39
- const finalResponse = lroDetail.logicalResponseTypes?.success.concat(firstMethod.responseTypes.error);
40
- if (initialResponses && finalResponse) {
41
- initialResponses.forEach((n) => responses.add(n));
42
- finalResponse.forEach((n) => responses.add(n));
43
- mapDetail.push({
44
- initialResponses: initialResponses.join("|"),
45
- finalResponses: finalResponse.join("|"),
46
- precedence: lroDetail.precedence ?? OPERATION_LRO_HIGH_PRIORITY,
47
- });
48
- }
49
- }
50
- }
51
- }
52
- // Sorted by the precedence
53
- mapDetail.sort((d1, d2) => d1.precedence - d2.precedence);
54
- return {
55
- clientOverload: responses.size > 0 && mapDetail.length > 0,
56
- importedResponses: Array.from(responses),
57
- overloadMap: mapDetail,
58
- isEsm: model.options?.moduleKind === "esm",
59
- };
60
- }
61
- //# sourceMappingURL=build-polling-helper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-polling-helper.js","sourceRoot":"","sources":["../../../src/rlc-common/build-polling-helper.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { RLCModel } from "./interfaces.js";
2
- export declare function buildResponseTypes(model: RLCModel): {
3
- path: string;
4
- content: string;
5
- } | undefined;
6
- //# sourceMappingURL=build-response-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-response-types.d.ts","sourceRoot":"","sources":["../../../src/rlc-common/build-response-types.ts"],"names":[],"mappings":"AAiBA,OAAO,EAA0C,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGnF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ;;;cA+FjD"}
@@ -1,143 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
- import * as path from "path";
4
- import { Project, StructureKind, } from "ts-morph";
5
- import { getImportSpecifier } from "./helpers/imports-util.js";
6
- import { getImportModuleName, getResponseBaseName, getResponseTypeName, } from "./helpers/name-constructors.js";
7
- let hasErrorResponse = false;
8
- export function buildResponseTypes(model) {
9
- const project = new Project();
10
- const srcPath = model.srcPath;
11
- const filePath = path.join(srcPath, `responses.ts`);
12
- hasErrorResponse = false;
13
- const responsesFile = project.createSourceFile(filePath, undefined, {
14
- overwrite: true,
15
- });
16
- // Set used to track down which models need to be imported
17
- // Track if we need to import RawHttpHeaders
18
- let hasHeaders = false;
19
- if (!model.responses) {
20
- return;
21
- }
22
- for (const operationResponse of model.responses) {
23
- for (const response of operationResponse.responses) {
24
- // Building the response type base name
25
- const baseResponseName = getResponseBaseName(operationResponse.operationGroup, operationResponse.operationName, response.statusCode);
26
- // Build the response header
27
- const headersInterface = getResponseHeaderInterfaceDefinition(response, baseResponseName);
28
- if (headersInterface) {
29
- hasHeaders = true;
30
- responsesFile.addInterface(headersInterface);
31
- }
32
- // Get the information to build the Response Interface
33
- const responseTypeName = response.predefinedName ?? getResponseTypeName(baseResponseName);
34
- const responseProperties = getResponseInterfaceProperties(response, headersInterface?.name);
35
- const responseInterfaceDefinition = {
36
- name: responseTypeName,
37
- properties: responseProperties,
38
- isExported: true,
39
- extends: ["HttpResponse"],
40
- };
41
- // Only add a description if one was provided in the Swagger
42
- // otherwise skip to avoid having empty TSDoc lines
43
- if (response.description) {
44
- responseInterfaceDefinition.docs = [{ description: response.description }];
45
- }
46
- // Add the response interface to the responses file
47
- responsesFile.addInterface(responseInterfaceDefinition);
48
- }
49
- }
50
- if (hasHeaders) {
51
- responsesFile.addImportDeclarations([
52
- {
53
- isTypeOnly: true,
54
- namedImports: ["RawHttpHeaders"],
55
- moduleSpecifier: getImportSpecifier("restPipeline", model.importInfo.runtimeImports),
56
- },
57
- ]);
58
- }
59
- const namedImports = ["HttpResponse"];
60
- if (hasErrorResponse) {
61
- namedImports.push("ErrorResponse");
62
- }
63
- responsesFile.addImportDeclarations([
64
- {
65
- isTypeOnly: true,
66
- namedImports,
67
- moduleSpecifier: getImportSpecifier("restClient", model.importInfo.runtimeImports),
68
- },
69
- ]);
70
- if ((model.importInfo.internalImports.response?.importsSet?.size ?? 0) > 0) {
71
- const modelNamedImports = Array.from(model.importInfo.internalImports.response.importsSet).filter((modelName) => {
72
- return !(modelName === "ErrorResponseOutput" && hasErrorResponse);
73
- });
74
- responsesFile.addImportDeclarations([
75
- {
76
- isTypeOnly: true,
77
- namedImports: modelNamedImports,
78
- moduleSpecifier: getImportModuleName({
79
- cjsName: `./outputModels`,
80
- esModulesName: `./outputModels.js`,
81
- }, model),
82
- },
83
- ]);
84
- }
85
- return { path: filePath, content: responsesFile.getFullText() };
86
- }
87
- function getResponseHeaderInterfaceDefinition(response, baseName) {
88
- // Check if there are any required headers
89
- if (!response.headers) {
90
- return;
91
- }
92
- const headersInterfaceName = `${baseName}Headers`;
93
- return {
94
- kind: StructureKind.Interface,
95
- isExported: true,
96
- name: headersInterfaceName,
97
- properties: response?.headers.map((h) => {
98
- const description = h.description;
99
- return {
100
- name: h.name,
101
- ...(description && { docs: [{ description }] }),
102
- type: h.type,
103
- hasQuestionToken: !h.required,
104
- };
105
- }),
106
- };
107
- }
108
- /**
109
- * Gets the properties that need to be part of the response interface
110
- */
111
- function getResponseInterfaceProperties(response, headersInterfaceName) {
112
- const statusCode = response.statusCode;
113
- const responseProperties = [
114
- {
115
- name: "status",
116
- type: statusCode === "default" ? `string` : `"${statusCode}"`,
117
- kind: StructureKind.PropertySignature,
118
- },
119
- ];
120
- if (response.body) {
121
- const description = response.body.description;
122
- let type = response.body.type;
123
- if (response.body.type === "ErrorResponseOutput" && response.body.fromCore) {
124
- type = "ErrorResponse";
125
- hasErrorResponse = true;
126
- }
127
- responseProperties.push({
128
- name: "body",
129
- type,
130
- kind: StructureKind.PropertySignature,
131
- ...(description && { docs: [{ description }] }),
132
- });
133
- }
134
- if (headersInterfaceName) {
135
- responseProperties.push({
136
- name: "headers",
137
- type: `RawHttpHeaders & ${headersInterfaceName}`,
138
- kind: StructureKind.PropertySignature,
139
- });
140
- }
141
- return responseProperties;
142
- }
143
- //# sourceMappingURL=build-response-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-response-types.js","sourceRoot":"","sources":["../../../src/rlc-common/build-response-types.ts"],"names":[],"mappings":"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"}