@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,313 +0,0 @@
1
- import { getClientName } from "./helpers/name-constructors.js";
2
- import { NameType, camelCase, normalizeName } from "./helpers/name-utils.js";
3
- import { isAzurePackage } from "./helpers/package-util.js";
4
- import { buildSchemaObjectMap } from "./helpers/schema-helpers.js";
5
- import { generateParameterTypeValue } from "./helpers/value-generation-util.js";
6
- /**
7
- * Transform the sample data based RLC detail e.g path, operations & schemas
8
- * @param model RLC detail
9
- * @param allowMockValue allow to mock value if not exist, currently we always generate mock value
10
- * @returns Generated sample data or undefined if not support to generate
11
- */
12
- export function transformSampleGroups(model, allowMockValue = true) {
13
- if (model.options?.multiClient || model.options?.isModularLibrary) {
14
- // Not support to generate if multiple clients
15
- // Not support to generate if modular libraries
16
- return;
17
- }
18
- if ((model.sampleGroups && model.sampleGroups.length > 0) || !allowMockValue) {
19
- // Skip to transform if already has sample data
20
- // Skip to transform if not allow to mock value
21
- return;
22
- }
23
- const rlcSampleGroups = [];
24
- // Get all paths
25
- const paths = model.paths;
26
- const clientName = getClientName(model);
27
- const clientInterfaceName = clientName.endsWith("Client")
28
- ? `${clientName}`
29
- : `${clientName}Client`;
30
- const defaultFactoryName = normalizeName(camelCase(`create ${clientInterfaceName}`), NameType.Method);
31
- const packageName = model.options?.packageDetails?.name ?? "";
32
- const methodParameterMap = buildMethodParamMap(model);
33
- const schemaObjectMap = buildSchemaObjectMap(model);
34
- for (const path in paths) {
35
- const pathDetails = paths[path];
36
- if (!pathDetails) {
37
- continue;
38
- }
39
- const methods = pathDetails.methods;
40
- for (const method in methods) {
41
- const importedDict = {};
42
- const methodArray = methods[method];
43
- if (!methodArray || methodArray.length === 0) {
44
- continue;
45
- }
46
- const detail = methodArray[0];
47
- if (!detail) {
48
- continue;
49
- }
50
- const operatonConcante = getOperationConcate(detail.operationName, pathDetails.operationGroupName, model.options?.sourceFrom);
51
- const operationPrefix = normalizeName(camelCase(transformSpecialLetterToSpace(operatonConcante)), NameType.Operation);
52
- const sampleGroup = {
53
- filename: `${operationPrefix}Sample`,
54
- defaultFactoryName,
55
- clientPackageName: packageName,
56
- samples: [],
57
- };
58
- // initialize the sample
59
- const sample = {
60
- description: `call operation ${detail.operationName}`,
61
- name: `${operationPrefix}Sample`,
62
- path,
63
- defaultFactoryName,
64
- clientParamAssignments: [],
65
- pathParamAssignments: [],
66
- methodParamAssignments: [],
67
- clientParamNames: "",
68
- pathParamNames: "",
69
- methodParamNames: "",
70
- method,
71
- isLRO: detail.operationHelperDetail?.lroDetails?.isLongRunning ?? false,
72
- isPaging: detail.operationHelperDetail?.isPaging ?? false,
73
- useLegacyLro: false,
74
- };
75
- // client-level, path-level and method-level parameter preparation
76
- const parameters = {
77
- client: convertClientLevelParameters(model, importedDict, schemaObjectMap),
78
- path: convertPathLevelParameters(pathDetails, path, schemaObjectMap),
79
- method: convertMethodLevelParameters(methodArray, schemaObjectMap, methodParameterMap.get(operatonConcante)),
80
- };
81
- // enrich parameter details
82
- enrichParameterInSample(sample, parameters);
83
- // enrich LRO and pagination info
84
- enrichLROAndPagingInSample(detail, importedDict, packageName);
85
- sampleGroup.samples.push(sample);
86
- rlcSampleGroups.push(sampleGroup);
87
- enrichImportedString(sampleGroup, importedDict, defaultFactoryName, packageName);
88
- }
89
- }
90
- return rlcSampleGroups;
91
- }
92
- function enrichLROAndPagingInSample(operation, importedDict, packageName) {
93
- const isLRO = operation.operationHelperDetail?.lroDetails?.isLongRunning ?? false, isPaging = operation.operationHelperDetail?.isPaging ?? false;
94
- if (isPaging) {
95
- if (isLRO) {
96
- // TODO: report warning this is not supported
97
- }
98
- addValueInImportedDict(packageName, "paginate", importedDict);
99
- }
100
- else if (isLRO) {
101
- addValueInImportedDict(packageName, "getLongRunningPoller", importedDict);
102
- }
103
- }
104
- function transformSpecialLetterToSpace(str) {
105
- if (!str) {
106
- return str;
107
- }
108
- return str
109
- .replace(/_/g, " ")
110
- .replace(/\//g, " Or ")
111
- .replace(/,|\.|\(|\)/g, " ")
112
- .replace("'s ", " ");
113
- }
114
- function enrichImportedString(sampleGroup, importedDict, defaultFactoryName, packageName) {
115
- const importedTypes = [];
116
- if (!importedDict[packageName] || importedDict[packageName].size === 0) {
117
- importedTypes.push(`import ${defaultFactoryName} from "${packageName}";`);
118
- }
119
- for (const key in importedDict) {
120
- const importedSet = importedDict[key];
121
- if (!importedSet) {
122
- continue;
123
- }
124
- const values = Array.from(importedSet).join(", ");
125
- const hasDefaultFactory = key === packageName ? `${defaultFactoryName},` : "";
126
- importedTypes.push(`import ${hasDefaultFactory} { ${values} } from "${key}";`);
127
- }
128
- sampleGroup.importedTypes = importedTypes;
129
- }
130
- function enrichParameterInSample(sample, parameters) {
131
- sample.clientParamAssignments = getAssignmentStrArray(parameters.client);
132
- sample.clientParamNames = getContactParameterNames(parameters.client);
133
- sample.pathParamAssignments = getAssignmentStrArray(parameters.path);
134
- sample.pathParamNames = getContactParameterNames(parameters.path);
135
- // Directly apply the inline option value as method parameter
136
- sample.methodParamNames = parameters.method.length > 0 ? (parameters.method[0]?.value ?? "") : "";
137
- }
138
- function getAssignmentStrArray(parameters) {
139
- return parameters.filter((p) => !!p.assignment).map((p) => p.assignment);
140
- }
141
- function getContactParameterNames(parameters) {
142
- return parameters
143
- .filter((p) => p.name != null)
144
- .map((p) => p.name)
145
- .join(",");
146
- }
147
- function convertClientLevelParameters(model, importedDict, schemaMap) {
148
- if (!model.options) {
149
- return [];
150
- }
151
- const clientParams = [];
152
- const urlParameters = model?.urlInfo?.urlParameters?.filter(
153
- // Do not include parameters with constant values in the signature, these should go in the options bag
154
- (p) => p.value === undefined);
155
- const { addCredentials, credentialScopes, credentialKeyHeaderName, customHttpAuthHeaderName, flavor, } = model.options;
156
- const hasUrlParameter = !!urlParameters, hasCredentials = addCredentials && (credentialScopes || credentialKeyHeaderName || customHttpAuthHeaderName);
157
- if (hasUrlParameter) {
158
- // convert the host parameters in url
159
- const clientParamAssignments = urlParameters.map((urlParameter) => {
160
- const urlValue = generateParameterTypeValue(urlParameter.type, urlParameter.name, schemaMap);
161
- const normalizedName = normalizeName(urlParameter.name, NameType.Parameter);
162
- return {
163
- name: normalizedName,
164
- assignment: `const ${normalizedName} = ` + urlValue + `;`,
165
- };
166
- });
167
- clientParams.push(...clientParamAssignments);
168
- }
169
- if (hasCredentials) {
170
- // Currently only support token credential
171
- const apiKeyCredentialPackage = isAzurePackage(model)
172
- ? "@azure/core-auth"
173
- : "@typespec/ts-http-runtime";
174
- const tokenCredentialPackage = isAzurePackage(model)
175
- ? "@azure/identity"
176
- : "@typespec/ts-http-runtime";
177
- if (credentialKeyHeaderName && isAzurePackage(model)) {
178
- clientParams.push({
179
- name: "credential",
180
- assignment: `const credential = new AzureKeyCredential("{Your API key}");`,
181
- });
182
- addValueInImportedDict(apiKeyCredentialPackage, "AzureKeyCredential", importedDict);
183
- }
184
- else if ((credentialKeyHeaderName && flavor !== "azure") || customHttpAuthHeaderName) {
185
- clientParams.push({
186
- name: "credential",
187
- assignment: `const credential = { key: "{Your API key}"};`,
188
- });
189
- }
190
- else if (isAzurePackage(model)) {
191
- clientParams.push({
192
- name: "credential",
193
- assignment: "const credential = new DefaultAzureCredential();",
194
- });
195
- addValueInImportedDict(tokenCredentialPackage, "DefaultAzureCredential", importedDict);
196
- }
197
- else {
198
- clientParams.push({
199
- name: "credential",
200
- assignment: `const credential = {getToken: () => Promise.resolve({ token: "{Your token}", expiresOnTimestamp: 0 })};`,
201
- });
202
- }
203
- }
204
- return clientParams;
205
- }
206
- function convertPathLevelParameters(pathDetail, path, schemaMap) {
207
- const pathItself = {
208
- name: `"${path}"`,
209
- };
210
- const pathParams = (pathDetail || []).pathParameters.map((p) => {
211
- const pathParam = {
212
- name: normalizeName(p.name, NameType.Parameter),
213
- };
214
- const value = generateParameterTypeValue(p.type, p.name, schemaMap);
215
- pathParam.assignment = `const ${pathParam.name} =` + value + `;`;
216
- return pathParam;
217
- });
218
- return [pathItself].concat(pathParams);
219
- }
220
- function convertMethodLevelParameters(methods, schemaMap, operationParameter) {
221
- if (!methods ||
222
- methods.length === 0 ||
223
- !operationParameter ||
224
- operationParameter.parameters.length === 0) {
225
- return [];
226
- }
227
- const rawMethodParams = operationParameter.parameters;
228
- const method = methods[0];
229
- const requestParameter = rawMethodParams[0];
230
- if (!method || !requestParameter) {
231
- return [];
232
- }
233
- const hasInputParams = !!rawMethodParams && rawMethodParams.length > 0, requireParam = !method.hasOptionalOptions;
234
- if (!hasInputParams && !requireParam) {
235
- return [];
236
- }
237
- const allSideAssignments = [], querySideAssignments = [], headerSideAssignments = [];
238
- if (!!requestParameter.body &&
239
- requestParameter.body &&
240
- requestParameter.body.body &&
241
- requestParameter.body.body?.length > 0) {
242
- const body = requestParameter.body.body[0];
243
- if (body) {
244
- const bodyTypeName = body.typeName ?? body.type;
245
- if (bodyTypeName !== "string" && body.oriSchema) {
246
- schemaMap.set(bodyTypeName, body.oriSchema);
247
- }
248
- allSideAssignments.push(` body: ` + generateParameterTypeValue(bodyTypeName, "body", schemaMap));
249
- }
250
- }
251
- requestParameter.parameters
252
- ?.filter((p) => p.type === "query")
253
- .forEach((p) => {
254
- const name = `${p.name}`;
255
- querySideAssignments.push(`${name}: ` + generateParameterTypeValue(p.param.type, name, schemaMap));
256
- });
257
- if (querySideAssignments.length > 0) {
258
- allSideAssignments.push(` queryParameters: { ` + querySideAssignments.join(", ") + `}`);
259
- }
260
- requestParameter.parameters
261
- ?.filter((p) => p.type === "header")
262
- .filter((p) => p.name.toLowerCase() !== "contenttype")
263
- .forEach((p) => {
264
- const name = `${p.name}`;
265
- headerSideAssignments.push(`${name}: ` + generateParameterTypeValue(p.param.type, name, schemaMap));
266
- });
267
- if (headerSideAssignments.length > 0) {
268
- allSideAssignments.push(` headers: { ` + headerSideAssignments.join(", ") + `}`);
269
- }
270
- const contentType = requestParameter.parameters
271
- ?.filter((p) => p.type === "header")
272
- .filter((p) => p.name.toLowerCase() === "contenttype");
273
- const firstContentType = contentType?.[0];
274
- if (firstContentType) {
275
- allSideAssignments.push(` ${firstContentType.name}: ` +
276
- generateParameterTypeValue(firstContentType.param.type, firstContentType.name, schemaMap));
277
- }
278
- let value;
279
- if (allSideAssignments.length > 0) {
280
- value = `{ ` + allSideAssignments.join(", ") + `}`;
281
- }
282
- else {
283
- return [];
284
- }
285
- const optionParam = {
286
- name: "options",
287
- assignment: `const options =` + value + `;`,
288
- value,
289
- };
290
- return [optionParam];
291
- }
292
- function addValueInImportedDict(key, val, importedDict) {
293
- if (!importedDict[key]) {
294
- importedDict[key] = new Set();
295
- }
296
- importedDict[key].add(val);
297
- }
298
- function buildMethodParamMap(model) {
299
- const map = new Map();
300
- (model.parameters ?? []).forEach((p) => {
301
- const operatonConcante = getOperationConcate(p.operationName, p.operationGroup, model.options?.sourceFrom);
302
- map.set(operatonConcante, p);
303
- });
304
- return map;
305
- }
306
- function getOperationConcate(opName, opGroup, sourceFrom) {
307
- return sourceFrom === "Swagger"
308
- ? opGroup === "" || opGroup === "Client"
309
- ? opName
310
- : `${opGroup}${opName}`
311
- : `${opGroup}_${opName}`;
312
- }
313
- //# sourceMappingURL=transform-sample-groups.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transform-sample-groups.js","sourceRoot":"","sources":["../../../src/rlc-common/transform-sample-groups.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /**
2
- *
3
- * @param metaUrl usually import.meta.url
4
- */
5
- export declare function getDirname(metaUrl: string): {
6
- __dirname: string;
7
- __filename: string;
8
- };
9
- //# sourceMappingURL=dirname.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dirname.d.ts","sourceRoot":"","sources":["../../../src/utils/dirname.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM;;;EAIzC"}
@@ -1,12 +0,0 @@
1
- import path from "path";
2
- import { fileURLToPath } from "url";
3
- /**
4
- *
5
- * @param metaUrl usually import.meta.url
6
- */
7
- export function getDirname(metaUrl) {
8
- const __filename = fileURLToPath(metaUrl);
9
- const __dirname = path.dirname(__filename);
10
- return { __dirname, __filename };
11
- }
12
- //# sourceMappingURL=dirname.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dirname.js","sourceRoot":"","sources":["../../../src/utils/dirname.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACnC,CAAC"}
@@ -1,235 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
-
4
- import * as path from "path";
5
- import {
6
- CallSignatureDeclarationStructure,
7
- InterfaceDeclarationStructure,
8
- OptionalKind,
9
- Project,
10
- SourceFile,
11
- StructureKind,
12
- Writers,
13
- } from "ts-morph";
14
-
15
- import { REST_CLIENT_RESERVED } from "./build-method-shortcuts.js";
16
- import { getImportSpecifier } from "./helpers/imports-util.js";
17
- import { getClientName, getImportModuleName } from "./helpers/name-constructors.js";
18
- import { CasingConvention, NameType, normalizeName, pascalCase } from "./helpers/name-utils.js";
19
- import {
20
- buildMethodDefinitions,
21
- getGeneratedWrapperTypes,
22
- getPathParamDefinitions,
23
- } from "./helpers/operation-helpers.js";
24
- import { generateMethodShortcuts } from "./helpers/shortcut-methods.js";
25
- import { PathMetadata, Paths, RLCModel } from "./interfaces.js";
26
-
27
- export function buildClientDefinitions(model: RLCModel) {
28
- const options = {
29
- importedParameters: new Set<string>(),
30
- importedResponses: new Set<string>(),
31
- clientImports: new Set<string>(),
32
- };
33
- const project = new Project();
34
- const srcPath = model.srcPath;
35
- const filePath = path.join(srcPath, `clientDefinitions.ts`);
36
- const clientDefinitionsFile = project.createSourceFile(filePath, undefined, {
37
- overwrite: true,
38
- });
39
-
40
- // Get all paths
41
- const pathDictionary = model.paths;
42
- let shortcuts: OptionalKind<InterfaceDeclarationStructure>[] = [];
43
- // There may be operations without an operation group, those shortcut
44
- // methods need to be handled differently.
45
- let shortcutsInOperationGroup: { name: string; type: string }[] = [];
46
-
47
- if (model.options?.includeShortcuts) {
48
- shortcuts = generateMethodShortcuts(model.paths);
49
- clientDefinitionsFile.addInterfaces(shortcuts);
50
- shortcutsInOperationGroup = shortcuts
51
- .filter((s) => s.name !== "ClientOperations")
52
- .map((s) => getShortcutName(s.name));
53
- }
54
-
55
- clientDefinitionsFile.addInterface({
56
- name: "Routes",
57
- isExported: true,
58
- callSignatures: getPathFirstRoutesInterfaceDefinition(
59
- pathDictionary,
60
- clientDefinitionsFile,
61
- options,
62
- ),
63
- });
64
-
65
- const clientInterfaceName = getClientName(model);
66
- clientDefinitionsFile.addTypeAlias({
67
- isExported: true,
68
- name: clientInterfaceName,
69
- type: Writers.intersectionType(
70
- "Client",
71
- Writers.objectType({
72
- properties: [{ name: "path", type: "Routes" }, ...shortcutsInOperationGroup],
73
- }),
74
- // If the length of shortcuts in operation group and all shortcutsInOperationGroup
75
- // is the same, then we don't have any operations at the client level
76
- // Otherwise we need to make the client interface name an union with the
77
- // definition of all client level shortcut methods
78
- ...(shortcutsInOperationGroup.length !== shortcuts.length ? [`ClientOperations`] : []),
79
- ),
80
- });
81
-
82
- if (options.importedParameters.size) {
83
- clientDefinitionsFile.addImportDeclaration({
84
- isTypeOnly: true,
85
- namedImports: [...options.importedParameters],
86
- moduleSpecifier: getImportModuleName(
87
- { cjsName: "./parameters", esModulesName: "./parameters.js" },
88
- model,
89
- ),
90
- });
91
- }
92
-
93
- if (options.importedResponses.size) {
94
- clientDefinitionsFile.addImportDeclaration({
95
- isTypeOnly: true,
96
- namedImports: [...options.importedResponses],
97
- moduleSpecifier: getImportModuleName(
98
- { cjsName: "./responses", esModulesName: "./responses.js" },
99
- model,
100
- ),
101
- });
102
- }
103
-
104
- if ((model.importInfo.internalImports.rlcClientDefinition.importsSet?.size ?? 0) > 0) {
105
- clientDefinitionsFile.addImportDeclaration({
106
- isTypeOnly: true,
107
- namedImports: Array.from(model.importInfo.internalImports.rlcClientDefinition.importsSet!),
108
- moduleSpecifier: getImportModuleName(
109
- { cjsName: "./models", esModulesName: "./models.js" },
110
- model,
111
- ),
112
- });
113
- }
114
-
115
- options.clientImports.add("Client");
116
- options.clientImports.add("StreamableMethod");
117
- clientDefinitionsFile.addImportDeclarations([
118
- {
119
- isTypeOnly: true,
120
- namedImports: [...options.clientImports],
121
- moduleSpecifier: getImportSpecifier("restClient", model.importInfo.runtimeImports),
122
- },
123
- ]);
124
-
125
- return { path: filePath, content: clientDefinitionsFile.getFullText() };
126
- }
127
-
128
- function getPathFirstRoutesInterfaceDefinition(
129
- paths: Paths,
130
- sourcefile: SourceFile,
131
- options: {
132
- importedParameters: Set<string>;
133
- importedResponses: Set<string>;
134
- clientImports: Set<string>;
135
- },
136
- ): CallSignatureDeclarationStructure[] {
137
- const operationGroupCount = getOperationGroupCount(paths);
138
-
139
- const signatures: CallSignatureDeclarationStructure[] = [];
140
- for (const key of Object.keys(paths)) {
141
- const pathMetadata = paths[key];
142
- if (!pathMetadata) {
143
- continue;
144
- }
145
- for (const verb of Object.keys(pathMetadata.methods)) {
146
- const methods = pathMetadata.methods[verb];
147
- if (!methods) {
148
- continue;
149
- }
150
- for (const method of methods) {
151
- options.importedParameters.add(method.optionsName);
152
- method.returnType.split(" | ").forEach((item) => options.importedResponses.add(item));
153
- }
154
- }
155
- generatePathFirstRouteMethodsDefinition(pathMetadata, operationGroupCount, sourcefile);
156
- const pathParams = pathMetadata.pathParameters;
157
- getGeneratedWrapperTypes(pathParams).forEach((p) =>
158
- options.importedParameters.add(p.name ?? p.type),
159
- );
160
- signatures.push({
161
- docs: [
162
- `Resource for '${key
163
- .replace(/\\/g, "\\\\")
164
- .replace(/}/g, "\\}")
165
- .replace(/{/g, "\\{")}' has methods for the following verbs: ${Object.keys(
166
- pathMetadata.methods,
167
- ).join(", ")}`,
168
- ],
169
- parameters: [{ name: "path", type: `"${key}"` }, ...getPathParamDefinitions(pathParams)],
170
- returnType: getOperationReturnTypeName(pathMetadata, getOperationGroupCount(paths)),
171
- kind: StructureKind.CallSignature,
172
- });
173
- }
174
- return signatures;
175
- }
176
-
177
- function getOperationGroupCount(paths: Paths) {
178
- const operationGroups = Object.keys(paths)
179
- .map((p) => paths[p]?.operationGroupName)
180
- .filter((p) => p && p !== "Client");
181
- const uniqueNames = new Set(operationGroups);
182
-
183
- return uniqueNames.size;
184
- }
185
-
186
- function getOperationReturnTypeName(
187
- { operationGroupName, name }: PathMetadata,
188
- operationGroupCount: number,
189
- ) {
190
- if (operationGroupCount > 1 && operationGroupName && operationGroupName !== "Client") {
191
- return normalizeName(
192
- `${pascalCase(operationGroupName)}${pascalCase(name)}`,
193
- NameType.Interface,
194
- );
195
- }
196
-
197
- return pascalCase(name);
198
- }
199
-
200
- function generatePathFirstRouteMethodsDefinition(
201
- path: PathMetadata,
202
- operationGroupCount: number,
203
- file: SourceFile,
204
- ): void {
205
- const methodDefinitions = buildMethodDefinitions(path.methods);
206
- const interfaceDef = {
207
- methods: methodDefinitions,
208
- name: getOperationReturnTypeName(path, operationGroupCount),
209
- isExported: true,
210
- };
211
- file.addInterface(interfaceDef);
212
- }
213
-
214
- function getShortcutName(interfaceName: string) {
215
- const endIndex = shouldKeepSuffix(interfaceName)
216
- ? undefined
217
- : interfaceName.length - "Operations".length;
218
- const clientProperty = normalizeName(
219
- interfaceName.substring(0, endIndex),
220
- NameType.OperationGroup,
221
- true,
222
- REST_CLIENT_RESERVED,
223
- CasingConvention.Camel,
224
- );
225
-
226
- return {
227
- name: clientProperty,
228
- type: interfaceName,
229
- };
230
- }
231
-
232
- function shouldKeepSuffix(name: string) {
233
- const reservedNames = ["pipelineOperations", "pathOperations", "pathUncheckedOperations"];
234
- return reservedNames.some((r) => r.toLowerCase() === name.toLowerCase());
235
- }