@azure-tools/typespec-ts 0.56.0-dev.1 → 0.56.0-dev.11

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 (459) hide show
  1. package/README.md +1 -13
  2. package/dist/src/context-manager.d.ts +19 -2
  3. package/dist/src/context-manager.d.ts.map +1 -1
  4. package/dist/src/context-manager.js +21 -0
  5. package/dist/src/context-manager.js.map +1 -1
  6. package/dist/src/framework/declaration.d.ts.map +1 -1
  7. package/dist/src/framework/declaration.js +6 -20
  8. package/dist/src/framework/declaration.js.map +1 -1
  9. package/dist/src/framework/hooks/sdk-types.d.ts +9 -0
  10. package/dist/src/framework/hooks/sdk-types.d.ts.map +1 -1
  11. package/dist/src/framework/hooks/sdk-types.js +14 -1
  12. package/dist/src/framework/hooks/sdk-types.js.map +1 -1
  13. package/dist/src/framework/source-file-batch.d.ts +35 -0
  14. package/dist/src/framework/source-file-batch.d.ts.map +1 -0
  15. package/dist/src/framework/source-file-batch.js +128 -0
  16. package/dist/src/framework/source-file-batch.js.map +1 -0
  17. package/dist/src/index.d.ts.map +1 -1
  18. package/dist/src/index.js +73 -62
  19. package/dist/src/index.js.map +1 -1
  20. package/dist/src/{rlc-common/interfaces.d.ts → interfaces.d.ts} +12 -14
  21. package/dist/src/interfaces.d.ts.map +1 -0
  22. package/dist/src/interfaces.js.map +1 -0
  23. package/dist/src/lib.d.ts +2 -4
  24. package/dist/src/lib.d.ts.map +1 -1
  25. package/dist/src/lib.js +2 -12
  26. package/dist/src/lib.js.map +1 -1
  27. package/dist/src/meta-tree.d.ts +4 -4
  28. package/dist/src/meta-tree.d.ts.map +1 -1
  29. package/dist/src/metadata/build-api-extractor-config.d.ts +6 -0
  30. package/dist/src/metadata/build-api-extractor-config.d.ts.map +1 -0
  31. package/dist/src/metadata/build-api-extractor-config.js.map +1 -0
  32. package/dist/src/metadata/build-changelog-file.d.ts +6 -0
  33. package/dist/src/metadata/build-changelog-file.d.ts.map +1 -0
  34. package/dist/src/metadata/build-changelog-file.js.map +1 -0
  35. package/dist/src/metadata/build-es-lint-config.d.ts +6 -0
  36. package/dist/src/metadata/build-es-lint-config.d.ts.map +1 -0
  37. package/dist/src/metadata/build-es-lint-config.js.map +1 -0
  38. package/dist/src/metadata/build-license-file.d.ts.map +1 -0
  39. package/dist/src/metadata/build-license-file.js.map +1 -0
  40. package/dist/src/{rlc-common/metadata → metadata}/build-package-file.d.ts +3 -3
  41. package/dist/src/metadata/build-package-file.d.ts.map +1 -0
  42. package/dist/src/{rlc-common/metadata → metadata}/build-package-file.js +1 -1
  43. package/dist/src/metadata/build-package-file.js.map +1 -0
  44. package/dist/src/metadata/build-readme-file.d.ts +11 -0
  45. package/dist/src/metadata/build-readme-file.d.ts.map +1 -0
  46. package/dist/src/{rlc-common/metadata → metadata}/build-readme-file.js +16 -69
  47. package/dist/src/metadata/build-readme-file.js.map +1 -0
  48. package/dist/src/metadata/build-sample-env-file.d.ts +6 -0
  49. package/dist/src/metadata/build-sample-env-file.d.ts.map +1 -0
  50. package/dist/src/metadata/build-sample-env-file.js.map +1 -0
  51. package/dist/src/{rlc-common/metadata → metadata}/build-test-config.d.ts +3 -3
  52. package/dist/src/metadata/build-test-config.d.ts.map +1 -0
  53. package/dist/src/metadata/build-test-config.js.map +1 -0
  54. package/dist/src/{rlc-common/metadata → metadata}/build-ts-config.d.ts +3 -3
  55. package/dist/src/metadata/build-ts-config.d.ts.map +1 -0
  56. package/dist/src/metadata/build-ts-config.js.map +1 -0
  57. package/dist/src/metadata/build-vitest-config.d.ts +6 -0
  58. package/dist/src/metadata/build-vitest-config.d.ts.map +1 -0
  59. package/dist/src/metadata/build-vitest-config.js.map +1 -0
  60. package/dist/src/{rlc-common/metadata → metadata}/build-warp-config.d.ts +2 -2
  61. package/dist/src/metadata/build-warp-config.d.ts.map +1 -0
  62. package/dist/src/metadata/build-warp-config.js.map +1 -0
  63. package/dist/src/metadata/package-json/azure-package-common.d.ts.map +1 -0
  64. package/dist/src/metadata/package-json/azure-package-common.js.map +1 -0
  65. package/dist/src/metadata/package-json/build-azure-monorepo-package.d.ts.map +1 -0
  66. package/dist/src/metadata/package-json/build-azure-monorepo-package.js.map +1 -0
  67. package/dist/src/metadata/package-json/package-common.d.ts.map +1 -0
  68. package/dist/src/metadata/package-json/package-common.js.map +1 -0
  69. package/dist/src/metadata/render-template.d.ts +24 -0
  70. package/dist/src/metadata/render-template.d.ts.map +1 -0
  71. package/dist/src/metadata/render-template.js +148 -0
  72. package/dist/src/metadata/render-template.js.map +1 -0
  73. package/dist/src/metadata/test/build-recorded-client.d.ts +6 -0
  74. package/dist/src/metadata/test/build-recorded-client.d.ts.map +1 -0
  75. package/dist/src/metadata/test/build-recorded-client.js +8 -0
  76. package/dist/src/metadata/test/build-recorded-client.js.map +1 -0
  77. package/dist/src/metadata/test/build-sample-test.d.ts +6 -0
  78. package/dist/src/metadata/test/build-sample-test.d.ts.map +1 -0
  79. package/dist/src/metadata/test/build-sample-test.js +8 -0
  80. package/dist/src/metadata/test/build-sample-test.js.map +1 -0
  81. package/dist/src/metadata/test/build-snippets.d.ts +6 -0
  82. package/dist/src/metadata/test/build-snippets.d.ts.map +1 -0
  83. package/dist/src/{rlc-common → metadata}/test/build-snippets.js +3 -5
  84. package/dist/src/metadata/test/build-snippets.js.map +1 -0
  85. package/dist/src/metadata/test/template.d.ts +4 -0
  86. package/dist/src/metadata/test/template.d.ts.map +1 -0
  87. package/dist/src/metadata/test/template.js +100 -0
  88. package/dist/src/metadata/test/template.js.map +1 -0
  89. package/dist/src/metadata/utils.d.ts +3 -0
  90. package/dist/src/metadata/utils.d.ts.map +1 -0
  91. package/dist/src/metadata/utils.js.map +1 -0
  92. package/dist/src/modular/build-classical-client.d.ts.map +1 -1
  93. package/dist/src/modular/build-classical-client.js +9 -9
  94. package/dist/src/modular/build-classical-client.js.map +1 -1
  95. package/dist/src/modular/build-classical-operation-groups.d.ts.map +1 -1
  96. package/dist/src/modular/build-classical-operation-groups.js +3 -3
  97. package/dist/src/modular/build-classical-operation-groups.js.map +1 -1
  98. package/dist/src/modular/build-client-context.d.ts.map +1 -1
  99. package/dist/src/modular/build-client-context.js +7 -7
  100. package/dist/src/modular/build-client-context.js.map +1 -1
  101. package/dist/src/modular/build-modular-options.js +3 -3
  102. package/dist/src/modular/build-modular-options.js.map +1 -1
  103. package/dist/src/modular/build-operations.d.ts.map +1 -1
  104. package/dist/src/modular/build-operations.js +6 -6
  105. package/dist/src/modular/build-operations.js.map +1 -1
  106. package/dist/src/modular/build-project-files.d.ts.map +1 -1
  107. package/dist/src/modular/build-project-files.js +4 -4
  108. package/dist/src/modular/build-project-files.js.map +1 -1
  109. package/dist/src/modular/build-restore-poller.d.ts.map +1 -1
  110. package/dist/src/modular/build-restore-poller.js +3 -3
  111. package/dist/src/modular/build-restore-poller.js.map +1 -1
  112. package/dist/src/modular/build-root-index.d.ts.map +1 -1
  113. package/dist/src/modular/build-root-index.js +42 -14
  114. package/dist/src/modular/build-root-index.js.map +1 -1
  115. package/dist/src/modular/build-subpath-index.d.ts.map +1 -1
  116. package/dist/src/modular/build-subpath-index.js +17 -4
  117. package/dist/src/modular/build-subpath-index.js.map +1 -1
  118. package/dist/src/modular/emit-models-options.d.ts.map +1 -1
  119. package/dist/src/modular/emit-models-options.js +3 -3
  120. package/dist/src/modular/emit-models-options.js.map +1 -1
  121. package/dist/src/modular/emit-models.d.ts +1 -1
  122. package/dist/src/modular/emit-models.d.ts.map +1 -1
  123. package/dist/src/modular/emit-models.js +32 -25
  124. package/dist/src/modular/emit-models.js.map +1 -1
  125. package/dist/src/modular/emit-samples.d.ts.map +1 -1
  126. package/dist/src/modular/emit-samples.js +5 -5
  127. package/dist/src/modular/emit-samples.js.map +1 -1
  128. package/dist/src/modular/emit-tests.d.ts.map +1 -1
  129. package/dist/src/modular/emit-tests.js +1 -1
  130. package/dist/src/modular/emit-tests.js.map +1 -1
  131. package/dist/src/modular/helpers/classical-operation-helpers.d.ts.map +1 -1
  132. package/dist/src/modular/helpers/classical-operation-helpers.js +11 -11
  133. package/dist/src/modular/helpers/classical-operation-helpers.js.map +1 -1
  134. package/dist/src/modular/helpers/client-helpers.d.ts.map +1 -1
  135. package/dist/src/modular/helpers/client-helpers.js +3 -3
  136. package/dist/src/modular/helpers/client-helpers.js.map +1 -1
  137. package/dist/src/modular/helpers/example-value-helpers.d.ts.map +1 -1
  138. package/dist/src/modular/helpers/example-value-helpers.js +2 -2
  139. package/dist/src/modular/helpers/example-value-helpers.js.map +1 -1
  140. package/dist/src/modular/helpers/naming-helpers.d.ts +1 -1
  141. package/dist/src/modular/helpers/naming-helpers.d.ts.map +1 -1
  142. package/dist/src/modular/helpers/naming-helpers.js +2 -2
  143. package/dist/src/modular/helpers/naming-helpers.js.map +1 -1
  144. package/dist/src/modular/helpers/operation-helpers.d.ts +4 -4
  145. package/dist/src/modular/helpers/operation-helpers.d.ts.map +1 -1
  146. package/dist/src/modular/helpers/operation-helpers.js +25 -26
  147. package/dist/src/modular/helpers/operation-helpers.js.map +1 -1
  148. package/dist/src/modular/helpers/type-helpers.d.ts.map +1 -1
  149. package/dist/src/modular/helpers/type-helpers.js +1 -1
  150. package/dist/src/modular/helpers/type-helpers.js.map +1 -1
  151. package/dist/src/modular/interfaces.d.ts +4 -4
  152. package/dist/src/modular/interfaces.d.ts.map +1 -1
  153. package/dist/src/modular/serialization/build-deserializer-function.d.ts.map +1 -1
  154. package/dist/src/modular/serialization/build-deserializer-function.js +2 -2
  155. package/dist/src/modular/serialization/build-deserializer-function.js.map +1 -1
  156. package/dist/src/modular/serialization/build-serializer-function.d.ts.map +1 -1
  157. package/dist/src/modular/serialization/build-serializer-function.js +2 -2
  158. package/dist/src/modular/serialization/build-serializer-function.js.map +1 -1
  159. package/dist/src/modular/serialization/build-xml-serializer-function.d.ts.map +1 -1
  160. package/dist/src/modular/serialization/build-xml-serializer-function.js +1 -1
  161. package/dist/src/modular/serialization/build-xml-serializer-function.js.map +1 -1
  162. package/dist/src/modular/type-expressions/get-enum-expression.js +1 -1
  163. package/dist/src/modular/type-expressions/get-enum-expression.js.map +1 -1
  164. package/dist/src/modular/type-expressions/get-nullable-expression.js +1 -1
  165. package/dist/src/modular/type-expressions/get-nullable-expression.js.map +1 -1
  166. package/dist/src/modular/type-expressions/get-type-expression.d.ts.map +1 -1
  167. package/dist/src/modular/type-expressions/get-type-expression.js +3 -3
  168. package/dist/src/modular/type-expressions/get-type-expression.js.map +1 -1
  169. package/dist/src/transform/transform-api-version-info.d.ts +1 -1
  170. package/dist/src/transform/transform-api-version-info.d.ts.map +1 -1
  171. package/dist/src/transform/transform-api-version-info.js +4 -3
  172. package/dist/src/transform/transform-api-version-info.js.map +1 -1
  173. package/dist/src/transform/{transfrom-rlc-options.d.ts → transform-client-options.d.ts} +3 -3
  174. package/dist/src/transform/transform-client-options.d.ts.map +1 -0
  175. package/dist/src/transform/{transfrom-rlc-options.js → transform-client-options.js} +9 -13
  176. package/dist/src/transform/transform-client-options.js.map +1 -0
  177. package/dist/src/transform/transform-helper-function-details.d.ts +1 -1
  178. package/dist/src/transform/transform-helper-function-details.d.ts.map +1 -1
  179. package/dist/src/transform/transform-helper-function-details.js +4 -4
  180. package/dist/src/transform/transform-helper-function-details.js.map +1 -1
  181. package/dist/src/transform/transform-parameters.d.ts +1 -1
  182. package/dist/src/transform/transform-parameters.d.ts.map +1 -1
  183. package/dist/src/transform/transform-parameters.js +11 -11
  184. package/dist/src/transform/transform-parameters.js.map +1 -1
  185. package/dist/src/transform/transform-paths.d.ts +1 -1
  186. package/dist/src/transform/transform-paths.d.ts.map +1 -1
  187. package/dist/src/transform/transform-paths.js +5 -4
  188. package/dist/src/transform/transform-paths.js.map +1 -1
  189. package/dist/src/transform/transform-responses.d.ts +1 -1
  190. package/dist/src/transform/transform-responses.d.ts.map +1 -1
  191. package/dist/src/transform/transform-responses.js +19 -18
  192. package/dist/src/transform/transform-responses.js.map +1 -1
  193. package/dist/src/transform/transform-schemas.js +5 -5
  194. package/dist/src/transform/transform-schemas.js.map +1 -1
  195. package/dist/src/transform/transform-telemetry-info.d.ts +1 -1
  196. package/dist/src/transform/transform-telemetry-info.d.ts.map +1 -1
  197. package/dist/src/transform/transform-telemetry-info.js +2 -2
  198. package/dist/src/transform/transform-telemetry-info.js.map +1 -1
  199. package/dist/src/transform/transform.d.ts +2 -2
  200. package/dist/src/transform/transform.d.ts.map +1 -1
  201. package/dist/src/transform/transform.js +9 -10
  202. package/dist/src/transform/transform.js.map +1 -1
  203. package/dist/src/utils/api-version-util.d.ts.map +1 -0
  204. package/dist/src/utils/api-version-util.js.map +1 -0
  205. package/dist/src/utils/client-utils.d.ts +5 -5
  206. package/dist/src/utils/client-utils.d.ts.map +1 -1
  207. package/dist/src/utils/client-utils.js +10 -10
  208. package/dist/src/utils/client-utils.js.map +1 -1
  209. package/dist/src/utils/cross-language-def.d.ts.map +1 -1
  210. package/dist/src/utils/cross-language-def.js +3 -3
  211. package/dist/src/utils/cross-language-def.js.map +1 -1
  212. package/dist/src/utils/emit-util.d.ts +2 -2
  213. package/dist/src/utils/emit-util.d.ts.map +1 -1
  214. package/dist/src/utils/emit-util.js +2 -2
  215. package/dist/src/utils/emit-util.js.map +1 -1
  216. package/dist/src/utils/imports-util.d.ts.map +1 -0
  217. package/dist/src/{rlc-common/helpers → utils}/imports-util.js +6 -6
  218. package/dist/src/utils/imports-util.js.map +1 -0
  219. package/dist/src/utils/interfaces.d.ts +3 -4
  220. package/dist/src/utils/interfaces.d.ts.map +1 -1
  221. package/dist/src/utils/model-utils.d.ts +1 -1
  222. package/dist/src/utils/model-utils.d.ts.map +1 -1
  223. package/dist/src/utils/model-utils.js +4 -2
  224. package/dist/src/utils/model-utils.js.map +1 -1
  225. package/dist/src/{rlc-common/helpers → utils}/name-constructors.d.ts +2 -2
  226. package/dist/src/utils/name-constructors.d.ts.map +1 -0
  227. package/dist/src/utils/name-constructors.js.map +1 -0
  228. package/dist/src/utils/name-utils.d.ts.map +1 -0
  229. package/dist/src/utils/name-utils.js.map +1 -0
  230. package/dist/src/utils/namespace-utils.js +4 -4
  231. package/dist/src/utils/namespace-utils.js.map +1 -1
  232. package/dist/src/utils/operation-helpers.d.ts +16 -0
  233. package/dist/src/utils/operation-helpers.d.ts.map +1 -0
  234. package/dist/src/utils/operation-helpers.js.map +1 -0
  235. package/dist/src/utils/operation-util.d.ts +2 -2
  236. package/dist/src/utils/operation-util.d.ts.map +1 -1
  237. package/dist/src/utils/operation-util.js +17 -18
  238. package/dist/src/utils/operation-util.js.map +1 -1
  239. package/dist/src/utils/parameter-utils.d.ts +1 -1
  240. package/dist/src/utils/parameter-utils.d.ts.map +1 -1
  241. package/dist/src/utils/parameter-utils.js +2 -4
  242. package/dist/src/utils/parameter-utils.js.map +1 -1
  243. package/dist/src/{rlc-common/helpers → utils}/schema-helpers.d.ts +2 -2
  244. package/dist/src/utils/schema-helpers.d.ts.map +1 -0
  245. package/dist/src/utils/schema-helpers.js.map +1 -0
  246. package/dist/src/utils/type-util.d.ts.map +1 -0
  247. package/dist/src/utils/type-util.js.map +1 -0
  248. package/dist/tsconfig.tsbuildinfo +1 -1
  249. package/package.json +14 -24
  250. package/src/context-manager.ts +25 -2
  251. package/src/framework/declaration.ts +8 -20
  252. package/src/framework/hooks/sdk-types.ts +15 -1
  253. package/src/framework/source-file-batch.ts +140 -0
  254. package/src/index.ts +92 -103
  255. package/src/{rlc-common/interfaces.ts → interfaces.ts} +14 -16
  256. package/src/lib.ts +3 -16
  257. package/src/meta-tree.ts +4 -4
  258. package/src/{rlc-common/metadata → metadata}/build-api-extractor-config.ts +2 -2
  259. package/src/{rlc-common/metadata → metadata}/build-changelog-file.ts +3 -3
  260. package/src/{rlc-common/metadata → metadata}/build-es-lint-config.ts +2 -2
  261. package/src/{rlc-common/metadata → metadata}/build-package-file.ts +6 -6
  262. package/src/{rlc-common/metadata → metadata}/build-readme-file.ts +25 -99
  263. package/src/{rlc-common/metadata → metadata}/build-sample-env-file.ts +2 -2
  264. package/src/{rlc-common/metadata → metadata}/build-test-config.ts +4 -4
  265. package/src/{rlc-common/metadata → metadata}/build-ts-config.ts +3 -3
  266. package/src/{rlc-common/metadata → metadata}/build-vitest-config.ts +2 -2
  267. package/src/{rlc-common/metadata → metadata}/build-warp-config.ts +2 -2
  268. package/src/metadata/render-template.ts +202 -0
  269. package/src/metadata/test/build-recorded-client.ts +9 -0
  270. package/src/metadata/test/build-sample-test.ts +9 -0
  271. package/src/{rlc-common → metadata}/test/build-snippets.ts +5 -7
  272. package/src/metadata/test/template.ts +101 -0
  273. package/src/{rlc-common/metadata → metadata}/utils.ts +2 -2
  274. package/src/modular/build-classical-client.ts +9 -9
  275. package/src/modular/build-classical-operation-groups.ts +3 -3
  276. package/src/modular/build-client-context.ts +7 -7
  277. package/src/modular/build-modular-options.ts +3 -3
  278. package/src/modular/build-operations.ts +6 -6
  279. package/src/modular/build-project-files.ts +4 -5
  280. package/src/modular/build-restore-poller.ts +3 -3
  281. package/src/modular/build-root-index.ts +57 -19
  282. package/src/modular/build-subpath-index.ts +26 -5
  283. package/src/modular/emit-models-options.ts +3 -3
  284. package/src/modular/emit-models.ts +32 -26
  285. package/src/modular/emit-samples.ts +5 -5
  286. package/src/modular/emit-tests.ts +1 -1
  287. package/src/modular/helpers/classical-operation-helpers.ts +11 -11
  288. package/src/modular/helpers/client-helpers.ts +3 -3
  289. package/src/modular/helpers/example-value-helpers.ts +2 -2
  290. package/src/modular/helpers/naming-helpers.ts +2 -2
  291. package/src/modular/helpers/operation-helpers.ts +27 -27
  292. package/src/modular/helpers/type-helpers.ts +1 -1
  293. package/src/modular/interfaces.ts +4 -4
  294. package/src/modular/serialization/build-deserializer-function.ts +2 -2
  295. package/src/modular/serialization/build-serializer-function.ts +2 -2
  296. package/src/modular/serialization/build-xml-serializer-function.ts +1 -1
  297. package/src/modular/type-expressions/get-enum-expression.ts +1 -1
  298. package/src/modular/type-expressions/get-nullable-expression.ts +1 -1
  299. package/src/modular/type-expressions/get-type-expression.ts +3 -3
  300. package/src/transform/transform-api-version-info.ts +4 -10
  301. package/src/transform/{transfrom-rlc-options.ts → transform-client-options.ts} +12 -22
  302. package/src/transform/transform-helper-function-details.ts +5 -5
  303. package/src/transform/transform-parameters.ts +12 -12
  304. package/src/transform/transform-paths.ts +5 -12
  305. package/src/transform/transform-responses.ts +19 -19
  306. package/src/transform/transform-schemas.ts +5 -5
  307. package/src/transform/transform-telemetry-info.ts +3 -3
  308. package/src/transform/transform.ts +13 -18
  309. package/src/utils/client-utils.ts +11 -11
  310. package/src/utils/cross-language-def.ts +3 -3
  311. package/src/utils/emit-util.ts +3 -3
  312. package/src/{rlc-common/helpers → utils}/imports-util.ts +6 -6
  313. package/src/utils/interfaces.ts +3 -4
  314. package/src/utils/model-utils.ts +7 -8
  315. package/src/{rlc-common/helpers → utils}/name-constructors.ts +2 -2
  316. package/src/utils/namespace-utils.ts +4 -4
  317. package/src/{rlc-common/helpers → utils}/operation-helpers.ts +12 -12
  318. package/src/utils/operation-util.ts +19 -33
  319. package/src/utils/parameter-utils.ts +2 -4
  320. package/src/{rlc-common/helpers → utils}/schema-helpers.ts +2 -2
  321. package/dist/src/rlc-common/helpers/api-version-util.d.ts.map +0 -1
  322. package/dist/src/rlc-common/helpers/api-version-util.js.map +0 -1
  323. package/dist/src/rlc-common/helpers/imports-util.d.ts.map +0 -1
  324. package/dist/src/rlc-common/helpers/imports-util.js.map +0 -1
  325. package/dist/src/rlc-common/helpers/name-constructors.d.ts.map +0 -1
  326. package/dist/src/rlc-common/helpers/name-constructors.js.map +0 -1
  327. package/dist/src/rlc-common/helpers/name-utils.d.ts.map +0 -1
  328. package/dist/src/rlc-common/helpers/name-utils.js.map +0 -1
  329. package/dist/src/rlc-common/helpers/operation-helpers.d.ts +0 -16
  330. package/dist/src/rlc-common/helpers/operation-helpers.d.ts.map +0 -1
  331. package/dist/src/rlc-common/helpers/operation-helpers.js.map +0 -1
  332. package/dist/src/rlc-common/helpers/schema-helpers.d.ts.map +0 -1
  333. package/dist/src/rlc-common/helpers/schema-helpers.js.map +0 -1
  334. package/dist/src/rlc-common/helpers/type-util.d.ts.map +0 -1
  335. package/dist/src/rlc-common/helpers/type-util.js.map +0 -1
  336. package/dist/src/rlc-common/index.d.ts +0 -23
  337. package/dist/src/rlc-common/index.d.ts.map +0 -1
  338. package/dist/src/rlc-common/index.js +0 -25
  339. package/dist/src/rlc-common/index.js.map +0 -1
  340. package/dist/src/rlc-common/interfaces.d.ts.map +0 -1
  341. package/dist/src/rlc-common/interfaces.js.map +0 -1
  342. package/dist/src/rlc-common/metadata/build-api-extractor-config.d.ts +0 -6
  343. package/dist/src/rlc-common/metadata/build-api-extractor-config.d.ts.map +0 -1
  344. package/dist/src/rlc-common/metadata/build-api-extractor-config.js.map +0 -1
  345. package/dist/src/rlc-common/metadata/build-changelog-file.d.ts +0 -6
  346. package/dist/src/rlc-common/metadata/build-changelog-file.d.ts.map +0 -1
  347. package/dist/src/rlc-common/metadata/build-changelog-file.js.map +0 -1
  348. package/dist/src/rlc-common/metadata/build-es-lint-config.d.ts +0 -6
  349. package/dist/src/rlc-common/metadata/build-es-lint-config.d.ts.map +0 -1
  350. package/dist/src/rlc-common/metadata/build-es-lint-config.js.map +0 -1
  351. package/dist/src/rlc-common/metadata/build-license-file.d.ts.map +0 -1
  352. package/dist/src/rlc-common/metadata/build-license-file.js.map +0 -1
  353. package/dist/src/rlc-common/metadata/build-package-file.d.ts.map +0 -1
  354. package/dist/src/rlc-common/metadata/build-package-file.js.map +0 -1
  355. package/dist/src/rlc-common/metadata/build-readme-file.d.ts +0 -11
  356. package/dist/src/rlc-common/metadata/build-readme-file.d.ts.map +0 -1
  357. package/dist/src/rlc-common/metadata/build-readme-file.js.map +0 -1
  358. package/dist/src/rlc-common/metadata/build-sample-env-file.d.ts +0 -6
  359. package/dist/src/rlc-common/metadata/build-sample-env-file.d.ts.map +0 -1
  360. package/dist/src/rlc-common/metadata/build-sample-env-file.js.map +0 -1
  361. package/dist/src/rlc-common/metadata/build-test-config.d.ts.map +0 -1
  362. package/dist/src/rlc-common/metadata/build-test-config.js.map +0 -1
  363. package/dist/src/rlc-common/metadata/build-ts-config.d.ts.map +0 -1
  364. package/dist/src/rlc-common/metadata/build-ts-config.js.map +0 -1
  365. package/dist/src/rlc-common/metadata/build-vitest-config.d.ts +0 -6
  366. package/dist/src/rlc-common/metadata/build-vitest-config.d.ts.map +0 -1
  367. package/dist/src/rlc-common/metadata/build-vitest-config.js.map +0 -1
  368. package/dist/src/rlc-common/metadata/build-warp-config.d.ts.map +0 -1
  369. package/dist/src/rlc-common/metadata/build-warp-config.js.map +0 -1
  370. package/dist/src/rlc-common/metadata/package-json/azure-package-common.d.ts.map +0 -1
  371. package/dist/src/rlc-common/metadata/package-json/azure-package-common.js.map +0 -1
  372. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.d.ts.map +0 -1
  373. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.js.map +0 -1
  374. package/dist/src/rlc-common/metadata/package-json/package-common.d.ts.map +0 -1
  375. package/dist/src/rlc-common/metadata/package-json/package-common.js.map +0 -1
  376. package/dist/src/rlc-common/metadata/utils.d.ts +0 -3
  377. package/dist/src/rlc-common/metadata/utils.d.ts.map +0 -1
  378. package/dist/src/rlc-common/metadata/utils.js.map +0 -1
  379. package/dist/src/rlc-common/static/paginate-content.d.ts +0 -2
  380. package/dist/src/rlc-common/static/paginate-content.d.ts.map +0 -1
  381. package/dist/src/rlc-common/static/paginate-content.js +0 -345
  382. package/dist/src/rlc-common/static/paginate-content.js.map +0 -1
  383. package/dist/src/rlc-common/static/polling-content.d.ts +0 -2
  384. package/dist/src/rlc-common/static/polling-content.d.ts.map +0 -1
  385. package/dist/src/rlc-common/static/polling-content.js +0 -225
  386. package/dist/src/rlc-common/static/polling-content.js.map +0 -1
  387. package/dist/src/rlc-common/static/sample-template.d.ts +0 -2
  388. package/dist/src/rlc-common/static/sample-template.d.ts.map +0 -1
  389. package/dist/src/rlc-common/static/sample-template.js +0 -56
  390. package/dist/src/rlc-common/static/sample-template.js.map +0 -1
  391. package/dist/src/rlc-common/static/serialize-helper.d.ts +0 -6
  392. package/dist/src/rlc-common/static/serialize-helper.d.ts.map +0 -1
  393. package/dist/src/rlc-common/static/serialize-helper.js +0 -31
  394. package/dist/src/rlc-common/static/serialize-helper.js.map +0 -1
  395. package/dist/src/rlc-common/test/build-karma-config.d.ts +0 -6
  396. package/dist/src/rlc-common/test/build-karma-config.d.ts.map +0 -1
  397. package/dist/src/rlc-common/test/build-karma-config.js +0 -11
  398. package/dist/src/rlc-common/test/build-karma-config.js.map +0 -1
  399. package/dist/src/rlc-common/test/build-recorded-client.d.ts +0 -6
  400. package/dist/src/rlc-common/test/build-recorded-client.d.ts.map +0 -1
  401. package/dist/src/rlc-common/test/build-recorded-client.js +0 -14
  402. package/dist/src/rlc-common/test/build-recorded-client.js.map +0 -1
  403. package/dist/src/rlc-common/test/build-sample-test.d.ts +0 -6
  404. package/dist/src/rlc-common/test/build-sample-test.d.ts.map +0 -1
  405. package/dist/src/rlc-common/test/build-sample-test.js +0 -11
  406. package/dist/src/rlc-common/test/build-sample-test.js.map +0 -1
  407. package/dist/src/rlc-common/test/build-snippets.d.ts +0 -6
  408. package/dist/src/rlc-common/test/build-snippets.d.ts.map +0 -1
  409. package/dist/src/rlc-common/test/build-snippets.js.map +0 -1
  410. package/dist/src/rlc-common/test/template.d.ts +0 -5
  411. package/dist/src/rlc-common/test/template.d.ts.map +0 -1
  412. package/dist/src/rlc-common/test/template.js +0 -227
  413. package/dist/src/rlc-common/test/template.js.map +0 -1
  414. package/dist/src/transform/transfrom-rlc-options.d.ts.map +0 -1
  415. package/dist/src/transform/transfrom-rlc-options.js.map +0 -1
  416. package/src/rlc-common/index.ts +0 -25
  417. package/src/rlc-common/static/paginate-content.ts +0 -345
  418. package/src/rlc-common/static/polling-content.ts +0 -225
  419. package/src/rlc-common/static/sample-template.ts +0 -56
  420. package/src/rlc-common/static/serialize-helper.ts +0 -34
  421. package/src/rlc-common/test/build-karma-config.ts +0 -12
  422. package/src/rlc-common/test/build-recorded-client.ts +0 -15
  423. package/src/rlc-common/test/build-sample-test.ts +0 -12
  424. package/src/rlc-common/test/template.ts +0 -229
  425. /package/dist/src/{rlc-common/interfaces.js → interfaces.js} +0 -0
  426. /package/dist/src/{rlc-common/metadata → metadata}/build-api-extractor-config.js +0 -0
  427. /package/dist/src/{rlc-common/metadata → metadata}/build-changelog-file.js +0 -0
  428. /package/dist/src/{rlc-common/metadata → metadata}/build-es-lint-config.js +0 -0
  429. /package/dist/src/{rlc-common/metadata → metadata}/build-license-file.d.ts +0 -0
  430. /package/dist/src/{rlc-common/metadata → metadata}/build-license-file.js +0 -0
  431. /package/dist/src/{rlc-common/metadata → metadata}/build-sample-env-file.js +0 -0
  432. /package/dist/src/{rlc-common/metadata → metadata}/build-test-config.js +0 -0
  433. /package/dist/src/{rlc-common/metadata → metadata}/build-ts-config.js +0 -0
  434. /package/dist/src/{rlc-common/metadata → metadata}/build-vitest-config.js +0 -0
  435. /package/dist/src/{rlc-common/metadata → metadata}/build-warp-config.js +0 -0
  436. /package/dist/src/{rlc-common/metadata → metadata}/package-json/azure-package-common.d.ts +0 -0
  437. /package/dist/src/{rlc-common/metadata → metadata}/package-json/azure-package-common.js +0 -0
  438. /package/dist/src/{rlc-common/metadata → metadata}/package-json/build-azure-monorepo-package.d.ts +0 -0
  439. /package/dist/src/{rlc-common/metadata → metadata}/package-json/build-azure-monorepo-package.js +0 -0
  440. /package/dist/src/{rlc-common/metadata → metadata}/package-json/package-common.d.ts +0 -0
  441. /package/dist/src/{rlc-common/metadata → metadata}/package-json/package-common.js +0 -0
  442. /package/dist/src/{rlc-common/metadata → metadata}/utils.js +0 -0
  443. /package/dist/src/{rlc-common/helpers → utils}/api-version-util.d.ts +0 -0
  444. /package/dist/src/{rlc-common/helpers → utils}/api-version-util.js +0 -0
  445. /package/dist/src/{rlc-common/helpers → utils}/imports-util.d.ts +0 -0
  446. /package/dist/src/{rlc-common/helpers → utils}/name-constructors.js +0 -0
  447. /package/dist/src/{rlc-common/helpers → utils}/name-utils.d.ts +0 -0
  448. /package/dist/src/{rlc-common/helpers → utils}/name-utils.js +0 -0
  449. /package/dist/src/{rlc-common/helpers → utils}/operation-helpers.js +0 -0
  450. /package/dist/src/{rlc-common/helpers → utils}/schema-helpers.js +0 -0
  451. /package/dist/src/{rlc-common/helpers → utils}/type-util.d.ts +0 -0
  452. /package/dist/src/{rlc-common/helpers → utils}/type-util.js +0 -0
  453. /package/src/{rlc-common/metadata → metadata}/build-license-file.ts +0 -0
  454. /package/src/{rlc-common/metadata → metadata}/package-json/azure-package-common.ts +0 -0
  455. /package/src/{rlc-common/metadata → metadata}/package-json/build-azure-monorepo-package.ts +0 -0
  456. /package/src/{rlc-common/metadata → metadata}/package-json/package-common.ts +0 -0
  457. /package/src/{rlc-common/helpers → utils}/api-version-util.ts +0 -0
  458. /package/src/{rlc-common/helpers → utils}/name-utils.ts +0 -0
  459. /package/src/{rlc-common/helpers → utils}/type-util.ts +0 -0
@@ -0,0 +1,101 @@
1
+ export const recordedClientContent = `
2
+
3
+ import {
4
+ Recorder,
5
+ RecorderStartOptions,
6
+ VitestTestContext,
7
+ } from "@azure-tools/test-recorder";
8
+
9
+ const replaceableVariables: Record<string, string> = {
10
+ SUBSCRIPTION_ID: "azure_subscription_id"
11
+ };
12
+
13
+ const recorderEnvSetup: RecorderStartOptions = {
14
+ envSetupForPlayback: replaceableVariables,
15
+ };
16
+
17
+ /**
18
+ * creates the recorder and reads the environment variables from the \`.env\` file.
19
+ * Should be called first in the test suite to make sure environment variables are
20
+ * read before they are being used.
21
+ */
22
+ export async function createRecorder(context: VitestTestContext): Promise<Recorder> {
23
+ const recorder = new Recorder(context);
24
+ await recorder.start(recorderEnvSetup);
25
+ return recorder;
26
+ }
27
+ `;
28
+
29
+ export const sampleTestContent = `
30
+ // import { Recorder } from "@azure-tools/test-recorder";
31
+ // import { createRecorder } from "./utils/recordedClient.js";
32
+ import { assert,
33
+ // beforeEach,
34
+ // afterEach,
35
+ it,
36
+ describe
37
+ } from "vitest";
38
+
39
+ describe("My test", () => {
40
+ // let recorder: Recorder;
41
+
42
+ // beforeEach(async function(ctx) {
43
+ // recorder = await createRecorder(ctx);
44
+ // });
45
+
46
+ // afterEach(async function() {
47
+ // await recorder.stop();
48
+ // });
49
+
50
+ it("sample test", async function() {
51
+ assert.equal(1, 1);
52
+ });
53
+ });
54
+ `;
55
+
56
+ export const snippetsContent = `
57
+ import { {{ clientClassName }} } from "../src/index.js";
58
+ import { DefaultAzureCredential, InteractiveBrowserCredential } from "@azure/identity";
59
+ import { setLogLevel } from "@azure/logger";
60
+ import { describe, it } from "vitest";
61
+
62
+ describe("snippets", () => {
63
+ it("ReadmeSampleCreateClient_Node", async () => {
64
+ {{#if azureArm}}
65
+ {{#if hasSubscriptionId}}
66
+ const subscriptionId = "00000000-0000-0000-0000-000000000000";
67
+ const client = new {{ clientClassName }}(new DefaultAzureCredential(), subscriptionId);
68
+ {{else}}
69
+ const client = new {{ clientClassName }}(new DefaultAzureCredential());
70
+ {{/if}}
71
+ {{else}}
72
+ const client = new {{ clientClassName }}("<endpoint>", new DefaultAzureCredential());
73
+ {{/if}}
74
+ });
75
+
76
+ it("ReadmeSampleCreateClient_Browser", async () => {
77
+ {{#if azureArm}}
78
+ const credential = new InteractiveBrowserCredential({
79
+ tenantId: "<YOUR_TENANT_ID>",
80
+ clientId: "<YOUR_CLIENT_ID>",
81
+ });
82
+ {{#if hasSubscriptionId}}
83
+ const subscriptionId = "00000000-0000-0000-0000-000000000000";
84
+ const client = new {{ clientClassName }}(credential, subscriptionId);
85
+ {{else}}
86
+ const client = new {{ clientClassName }}(credential);
87
+ {{/if}}
88
+ {{else}}
89
+ const credential = new InteractiveBrowserCredential({
90
+ tenantId: "<YOUR_TENANT_ID>",
91
+ clientId: "<YOUR_CLIENT_ID>",
92
+ });
93
+ const client = new {{ clientClassName }}("<endpoint>", credential);
94
+ {{/if}}
95
+ });
96
+
97
+ it("SetLogLevel", async () => {
98
+ setLogLevel("info");
99
+ });
100
+ });
101
+ `;
@@ -1,8 +1,8 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
3
 
4
- import { RLCModel } from "../interfaces.js";
4
+ import { ClientModel } from "../interfaces.js";
5
5
 
6
- export function getPackageName(model: RLCModel): string {
6
+ export function getPackageName(model: ClientModel): string {
7
7
  return model.options?.packageDetails?.name ?? model.libraryName;
8
8
  }
@@ -5,7 +5,6 @@ import {
5
5
  SourceFile,
6
6
  StructureKind,
7
7
  } from "ts-morph";
8
- import { NameType, normalizeName } from "../rlc-common/index.js";
9
8
  import { buildUserAgentOptions, getClientParametersDeclaration } from "./helpers/client-helpers.js";
10
9
  import { getClassicalClientName, getClientName } from "./helpers/naming-helpers.js";
11
10
  import { ModularEmitterOptions } from "./interfaces.js";
@@ -20,8 +19,9 @@ import { useContext } from "../context-manager.js";
20
19
  import { useDependencies } from "../framework/hooks/use-dependencies.js";
21
20
  import { resolveReference } from "../framework/reference.js";
22
21
  import { refkey } from "../framework/refkey.js";
23
- import { getModularClientOptions, isRLCMultiEndpoint } from "../utils/client-utils.js";
22
+ import { getClientModuleInfo, isMultiEndpointClient } from "../utils/client-utils.js";
24
23
  import { SdkContext } from "../utils/interfaces.js";
24
+ import { NameType, normalizeName } from "../utils/name-utils.js";
25
25
  import { getMethodHierarchiesMap, isTenantLevelOperation } from "../utils/operation-util.js";
26
26
  import { AzurePollingDependencies } from "./external-dependencies.js";
27
27
  import { getPagingLROMethodName } from "./helpers/classical-operation-helpers.js";
@@ -47,7 +47,7 @@ export function buildClassicalClient(
47
47
  requiredOnly: true,
48
48
  });
49
49
  const srcPath = emitterOptions.modularOptions.sourceRoot;
50
- const { subfolder, rlcClientName } = getModularClientOptions(clientMap);
50
+ const { subfolder, clientName } = getClientModuleInfo(clientMap);
51
51
 
52
52
  const clientFile = project.createSourceFile(
53
53
  `${srcPath}/${subfolder && subfolder !== "" ? subfolder + "/" : ""}${normalizeName(
@@ -68,16 +68,16 @@ export function buildClassicalClient(
68
68
  });
69
69
 
70
70
  // Add the private client member. This will be the client context from /api
71
- if (isRLCMultiEndpoint(dpgContext)) {
71
+ if (isMultiEndpointClient(dpgContext)) {
72
72
  clientClass.addProperty({
73
73
  name: "_client",
74
- type: `Client.${rlcClientName}`,
74
+ type: `Client.${clientName}`,
75
75
  scope: Scope.Private,
76
76
  });
77
77
  } else {
78
78
  clientClass.addProperty({
79
79
  name: "_client",
80
- type: `${rlcClientName}`,
80
+ type: `${clientName}`,
81
81
  scope: Scope.Private,
82
82
  });
83
83
  }
@@ -214,7 +214,7 @@ function generateMethod(
214
214
  });
215
215
 
216
216
  // add LRO helper methods if applicable
217
- if (context.rlcOptions?.compatibilityLro && declaration?.isLro && !declaration?.isLroPaging) {
217
+ if (context.emitterOptions?.compatibilityLro && declaration?.isLro && !declaration?.isLroPaging) {
218
218
  const operationStateReference = resolveReference(AzurePollingDependencies.OperationState);
219
219
  const simplePollerLikeReference = resolveReference(SimplePollerHelpers.SimplePollerLike);
220
220
  const getSimplePollerReference = resolveReference(SimplePollerHelpers.getSimplePoller);
@@ -244,7 +244,7 @@ function generateMethod(
244
244
  statements: `return await ${declarationRefKey}(${methodParamStr});`,
245
245
  });
246
246
  } // For LRO+Paging operations, use different return types and implementation
247
- else if (context.rlcOptions?.compatibilityLro && declaration?.isLroPaging) {
247
+ else if (context.emitterOptions?.compatibilityLro && declaration?.isLroPaging) {
248
248
  const returnType = declaration?.lropagingFinalReturnType ?? "void";
249
249
  const pagedAsyncIterableIteratorReference = resolveReference(
250
250
  PagingHelpers.PagedAsyncIterableIterator,
@@ -274,7 +274,7 @@ function buildClientOperationGroups(
274
274
  ) {
275
275
  let clientType = "Client";
276
276
  const [_hierarchy, client] = clientMap;
277
- const { subfolder } = getModularClientOptions(clientMap);
277
+ const { subfolder } = getClientModuleInfo(clientMap);
278
278
  if (subfolder && subfolder !== "") {
279
279
  clientType = `Client.${clientClass.getName()}`;
280
280
  }
@@ -1,9 +1,9 @@
1
1
  import { SdkClientType, SdkServiceOperation } from "@azure-tools/typespec-client-generator-core";
2
2
  import { SourceFile } from "ts-morph";
3
3
  import { useContext } from "../context-manager.js";
4
- import { NameType } from "../rlc-common/index.js";
5
- import { getModularClientOptions } from "../utils/client-utils.js";
4
+ import { getClientModuleInfo } from "../utils/client-utils.js";
6
5
  import { SdkContext } from "../utils/interfaces.js";
6
+ import { NameType } from "../utils/name-utils.js";
7
7
  import { getMethodHierarchiesMap } from "../utils/operation-util.js";
8
8
  import { getClassicalOperation } from "./helpers/classical-operation-helpers.js";
9
9
  import { getClassicalLayerPrefix } from "./helpers/naming-helpers.js";
@@ -17,7 +17,7 @@ export function buildClassicOperationFiles(
17
17
  // const sdkPackage = dpgContext.sdkPackage;
18
18
  const project = useContext("outputProject");
19
19
  const [_hierarchy, client] = clientMap;
20
- const { subfolder } = getModularClientOptions(clientMap);
20
+ const { subfolder } = getClientModuleInfo(clientMap);
21
21
  const classicOperationFiles: Map<string, SourceFile> = new Map<string, SourceFile>();
22
22
  const methodMap = getMethodHierarchiesMap(dpgContext, client);
23
23
  for (const [prefixKey, operations] of methodMap) {
@@ -1,4 +1,3 @@
1
- import { NameType, normalizeName } from "../rlc-common/index.js";
2
1
  import {
3
2
  buildGetClientCredentialParam,
4
3
  buildGetClientEndpointParam,
@@ -24,8 +23,9 @@ import { useDependencies } from "../framework/hooks/use-dependencies.js";
24
23
  import { resolveReference } from "../framework/reference.js";
25
24
  import { refkey } from "../framework/refkey.js";
26
25
  import { reportDiagnostic } from "../lib.js";
27
- import { getModularClientOptions } from "../utils/client-utils.js";
26
+ import { getClientModuleInfo } from "../utils/client-utils.js";
28
27
  import { SdkContext } from "../utils/interfaces.js";
28
+ import { NameType, normalizeName } from "../utils/name-utils.js";
29
29
  import { buildEnumTypes, getApiVersionEnum } from "./emit-models.js";
30
30
  import { getDocsFromDescription } from "./helpers/docs-helpers.js";
31
31
  import { getClassicalClientName, getClientName } from "./helpers/naming-helpers.js";
@@ -40,7 +40,7 @@ export function getClientContextPath(
40
40
  emitterOptions: ModularEmitterOptions,
41
41
  ): string {
42
42
  const [_, client] = clientMap;
43
- const { subfolder } = getModularClientOptions(clientMap);
43
+ const { subfolder } = getClientModuleInfo(clientMap);
44
44
  const name = getClientName(client);
45
45
  const srcPath = emitterOptions.modularOptions.sourceRoot;
46
46
  const contentPath = `${srcPath}/${
@@ -61,7 +61,7 @@ export function buildClientContext(
61
61
  const dependencies = useDependencies();
62
62
  const [hierarchy, client] = clientMap;
63
63
  const name = getClientName(client);
64
- const { rlcClientName } = getModularClientOptions(clientMap);
64
+ const { clientName } = getClientModuleInfo(clientMap);
65
65
  const requiredParams = getClientParametersDeclaration(client, dpgContext, {
66
66
  onClientOnly: false,
67
67
  requiredOnly: true,
@@ -116,7 +116,7 @@ export function buildClientContext(
116
116
 
117
117
  clientContextFile.addInterface({
118
118
  isExported: true,
119
- name: `${rlcClientName}`,
119
+ name: `${clientName}`,
120
120
  extends: [resolveReference(dependencies.Client)],
121
121
  docs: getDocsFromDescription(client.doc),
122
122
  properties: [...requiredInterfaceProperties, ...optionalInterfaceProperties],
@@ -172,7 +172,7 @@ export function buildClientContext(
172
172
  const factoryFunction = clientContextFile.addFunction({
173
173
  docs: getDocsFromDescription(client.doc),
174
174
  name: `create${name}`,
175
- returnType: `${rlcClientName}`,
175
+ returnType: `${clientName}`,
176
176
  parameters: getClientParametersDeclaration(client, dpgContext, {
177
177
  onClientOnly: false,
178
178
  requiredOnly: true,
@@ -286,7 +286,7 @@ export function buildClientContext(
286
286
 
287
287
  if (allContextParams.length) {
288
288
  factoryFunction.addStatements(
289
- `return { ...clientContext, ${allContextParams.join(", ")}} as ${rlcClientName};`,
289
+ `return { ...clientContext, ${allContextParams.join(", ")}} as ${clientName};`,
290
290
  );
291
291
  } else {
292
292
  factoryFunction.addStatements(`return clientContext;`);
@@ -10,11 +10,11 @@ export function transformModularEmitterOptions(
10
10
  ): ModularEmitterOptions {
11
11
  CASING = options.casing ?? CASING;
12
12
  const emitterOptions: ModularEmitterOptions = {
13
- options: dpgContext.rlcOptions ?? {},
13
+ options: dpgContext.emitterOptions ?? {},
14
14
  modularOptions: {
15
15
  sourceRoot: modularSourcesRoot,
16
- compatibilityMode: !!dpgContext.rlcOptions?.compatibilityMode,
17
- experimentalExtensibleEnums: !!dpgContext.rlcOptions?.experimentalExtensibleEnums,
16
+ compatibilityMode: !!dpgContext.emitterOptions?.compatibilityMode,
17
+ experimentalExtensibleEnums: !!dpgContext.emitterOptions?.experimentalExtensibleEnums,
18
18
  },
19
19
  };
20
20
 
@@ -1,5 +1,4 @@
1
1
  import { InterfaceDeclarationStructure, SourceFile, StructureKind } from "ts-morph";
2
- import { NameType, normalizeName } from "../rlc-common/index.js";
3
2
  import {
4
3
  getDeserializeExceptionHeadersPrivateFunction,
5
4
  getDeserializeHeadersPrivateFunction,
@@ -23,8 +22,9 @@ import { addDeclaration } from "../framework/declaration.js";
23
22
  import { useDependencies } from "../framework/hooks/use-dependencies.js";
24
23
  import { resolveReference } from "../framework/reference.js";
25
24
  import { refkey } from "../framework/refkey.js";
26
- import { getModularClientOptions, isRLCMultiEndpoint } from "../utils/client-utils.js";
25
+ import { getClientModuleInfo, isMultiEndpointClient } from "../utils/client-utils.js";
27
26
  import { SdkContext } from "../utils/interfaces.js";
27
+ import { NameType, normalizeName } from "../utils/name-utils.js";
28
28
  import {
29
29
  getMethodHierarchiesMap,
30
30
  hasDualFormatSupport,
@@ -48,9 +48,9 @@ export function buildOperationFiles(
48
48
  const project = useContext("outputProject");
49
49
  const [_, client] = clientMap;
50
50
  const operationFiles: Set<SourceFile> = new Set();
51
- const { subfolder, rlcClientName } = getModularClientOptions(clientMap);
52
- const isMultiEndpoint = isRLCMultiEndpoint(dpgContext);
53
- const clientType = isMultiEndpoint ? `Client.${rlcClientName}` : "Client";
51
+ const { subfolder, clientName } = getClientModuleInfo(clientMap);
52
+ const isMultiEndpoint = isMultiEndpointClient(dpgContext);
53
+ const clientType = isMultiEndpoint ? `Client.${clientName}` : "Client";
54
54
  const methodMap = getMethodHierarchiesMap(dpgContext, client);
55
55
  for (const [prefixKey, operations] of methodMap) {
56
56
  const prefixes = prefixKey.split("/");
@@ -102,7 +102,7 @@ export function buildOperationFiles(
102
102
 
103
103
  const indexPathPrefix = "../".repeat(prefixKey === "" ? 0 : prefixes.length) || "./";
104
104
  operationGroupFile.addImportDeclaration({
105
- namedImports: [`${rlcClientName} as Client`],
105
+ namedImports: [`${clientName} as Client`],
106
106
  moduleSpecifier: `${indexPathPrefix}index.js`,
107
107
  });
108
108
  operationGroupFile.fixUnusedIdentifiers();
@@ -1,9 +1,8 @@
1
- import { NameType } from "../rlc-common/index.js";
2
-
3
1
  import { getRelativePathFromDirectory, joinPaths } from "@typespec/compiler";
4
2
  import { useContext } from "../context-manager.js";
5
- import { getClientHierarchyMap, getModularClientOptions } from "../utils/client-utils.js";
3
+ import { getClientHierarchyMap, getClientModuleInfo } from "../utils/client-utils.js";
6
4
  import { SdkContext } from "../utils/interfaces.js";
5
+ import { NameType } from "../utils/name-utils.js";
7
6
  import { getMethodHierarchiesMap } from "../utils/operation-util.js";
8
7
  import { getClassicalLayerPrefix } from "./helpers/naming-helpers.js";
9
8
  import { ModularEmitterOptions } from "./interfaces.js";
@@ -42,7 +41,7 @@ function buildExportsForMultiClient(
42
41
  if (hierarchy.length === 0) {
43
42
  hasTopLevelClient = true;
44
43
  }
45
- const { subfolder } = getModularClientOptions([hierarchy, client]);
44
+ const { subfolder } = getClientModuleInfo([hierarchy, client]);
46
45
  if (subfolder !== "" && methodMap.size > 0) {
47
46
  packageInfo.exports[`./${subfolder}`] = `${srcPrefix}/${subfolder}/index.ts`;
48
47
 
@@ -56,7 +55,7 @@ function buildExportsForMultiClient(
56
55
  // TODO: support api subpath exports for multi-service. Skip for now. https://github.com/Azure/autorest.typescript/issues/3717
57
56
  if (!emitterOptions.options.isMultiService) {
58
57
  for (const flattenedClient of clientMap) {
59
- const { subfolder } = getModularClientOptions(flattenedClient);
58
+ const { subfolder } = getClientModuleInfo(flattenedClient);
60
59
  const client = flattenedClient[1];
61
60
  const methodMap = getMethodHierarchiesMap(context, client);
62
61
  for (const [prefixKey, _] of methodMap) {
@@ -4,9 +4,9 @@ import { SourceFile } from "ts-morph";
4
4
  import { useContext } from "../context-manager.js";
5
5
  import { useDependencies } from "../framework/hooks/use-dependencies.js";
6
6
  import { resolveReference } from "../framework/reference.js";
7
- import { NameType, normalizeName } from "../rlc-common/index.js";
8
- import { getModularClientOptions } from "../utils/client-utils.js";
7
+ import { getClientModuleInfo } from "../utils/client-utils.js";
9
8
  import { SdkContext } from "../utils/interfaces.js";
9
+ import { NameType, normalizeName } from "../utils/name-utils.js";
10
10
  import { getMethodHierarchiesMap } from "../utils/operation-util.js";
11
11
  import { buildLroDeserDetailMap } from "./build-operations.js";
12
12
  import { AzurePollingDependencies } from "./external-dependencies.js";
@@ -23,7 +23,7 @@ export function buildRestorePoller(
23
23
  const project = useContext("outputProject");
24
24
  const [_, client] = clientMap;
25
25
  const dependencies = useDependencies();
26
- const { subfolder } = getModularClientOptions(clientMap);
26
+ const { subfolder } = getClientModuleInfo(clientMap);
27
27
  const methodMap = getMethodHierarchiesMap(context, client);
28
28
  const hasLro = Array.from(methodMap.values()).some((operations) => {
29
29
  return operations.some(isLroOnlyOperation);
@@ -1,12 +1,19 @@
1
1
  import { SdkClientType, SdkServiceOperation } from "@azure-tools/typespec-client-generator-core";
2
2
  import { joinPaths, NoTarget } from "@typespec/compiler";
3
- import { Project, SourceFile } from "ts-morph";
3
+ import { Project, SourceFile, StructureKind } from "ts-morph";
4
4
  import { useContext } from "../context-manager.js";
5
5
  import { resolveReference } from "../framework/reference.js";
6
+ import {
7
+ beginSourceFileBatch,
8
+ enqueueStatement,
9
+ flushSourceFileBatch,
10
+ getEffectiveExportedNames,
11
+ getQueuedExportNames,
12
+ } from "../framework/source-file-batch.js";
6
13
  import { reportDiagnostic } from "../lib.js";
7
- import { NameType, normalizeName } from "../rlc-common/index.js";
8
- import { getModularClientOptions } from "../utils/client-utils.js";
14
+ import { getClientModuleInfo } from "../utils/client-utils.js";
9
15
  import { SdkContext } from "../utils/interfaces.js";
16
+ import { NameType, normalizeName } from "../utils/name-utils.js";
10
17
  import { getMethodHierarchiesMap } from "../utils/operation-util.js";
11
18
  import { partitionAndEmitExports } from "./build-subpath-index.js";
12
19
  import { getClassicalClientName } from "./helpers/naming-helpers.js";
@@ -24,6 +31,20 @@ export function buildRootIndex(
24
31
  emitterOptions: ModularEmitterOptions,
25
32
  rootIndexFile: SourceFile,
26
33
  clientMap?: [string[], SdkClientType<SdkServiceOperation>],
34
+ ) {
35
+ beginSourceFileBatch();
36
+ try {
37
+ buildRootIndexImpl(context, emitterOptions, rootIndexFile, clientMap);
38
+ } finally {
39
+ flushSourceFileBatch();
40
+ }
41
+ }
42
+
43
+ function buildRootIndexImpl(
44
+ context: SdkContext,
45
+ emitterOptions: ModularEmitterOptions,
46
+ rootIndexFile: SourceFile,
47
+ clientMap?: [string[], SdkClientType<SdkServiceOperation>],
27
48
  ) {
28
49
  if (!clientMap) {
29
50
  // we still need to export the models if no client is provided
@@ -34,7 +55,7 @@ export function buildRootIndex(
34
55
  const project = useContext("outputProject");
35
56
  const [_, client] = clientMap;
36
57
  const srcPath = emitterOptions.modularOptions.sourceRoot;
37
- const { subfolder } = getModularClientOptions(clientMap);
58
+ const { subfolder } = getClientModuleInfo(clientMap);
38
59
  const clientName = `${getClassicalClientName(client)}`;
39
60
  const clientFile = project.getSourceFile(
40
61
  `${srcPath}/${subfolder && subfolder !== "" ? subfolder + "/" : ""}${normalizeName(
@@ -109,7 +130,8 @@ function exportRestErrorTypes(rootIndexFile: SourceFile) {
109
130
  const existingExports = getExistingExports(rootIndexFile);
110
131
  const namedExports = ["RestError", "isRestError"].filter((name) => !existingExports.has(name));
111
132
  if (namedExports.length > 0) {
112
- rootIndexFile.addExportDeclaration({
133
+ enqueueStatement(rootIndexFile, {
134
+ kind: StructureKind.ExportDeclaration,
113
135
  moduleSpecifier: "@azure/core-rest-pipeline",
114
136
  namedExports,
115
137
  });
@@ -165,13 +187,7 @@ function exportFileContentsType(context: SdkContext, rootIndexFile: SourceFile)
165
187
  }
166
188
 
167
189
  function getExistingExports(rootIndexFile: SourceFile): Set<string> {
168
- return new Set(
169
- rootIndexFile
170
- .getExportDeclarations()
171
- .flatMap((exportDecl) =>
172
- exportDecl.getNamedExports().map((namedExport) => namedExport.getName()),
173
- ),
174
- );
190
+ return getEffectiveExportedNames(rootIndexFile);
175
191
  }
176
192
 
177
193
  function getNewNamedExports(namedExports: string[], existingExports: Set<string>): string[] {
@@ -186,7 +202,8 @@ function addExportsToRootIndexFile(
186
202
  const existingExports = getExistingExports(rootIndexFile);
187
203
  const newNamedExports = getNewNamedExports(namedExports, existingExports);
188
204
  if (newNamedExports.length > 0) {
189
- rootIndexFile.addExportDeclaration({
205
+ enqueueStatement(rootIndexFile, {
206
+ kind: StructureKind.ExportDeclaration,
190
207
  isTypeOnly,
191
208
  namedExports: newNamedExports,
192
209
  });
@@ -208,7 +225,7 @@ function exportSimplePollerLike(
208
225
  const hasLro = Array.from(methodMap.values()).some((operations) => {
209
226
  return operations.some(isLroOnlyOperation);
210
227
  });
211
- if (!hasLro || context.rlcOptions?.compatibilityLro !== true) {
228
+ if (!hasLro || context.emitterOptions?.compatibilityLro !== true) {
212
229
  return;
213
230
  }
214
231
  const helperFile = project.getSourceFile(
@@ -222,7 +239,8 @@ function exportSimplePollerLike(
222
239
  const moduleSpecifier = `./${
223
240
  isTopLevel && subfolder && subfolder !== "" ? subfolder + "/" : ""
224
241
  }static-helpers/simplePollerHelpers.js`;
225
- indexFile.addExportDeclaration({
242
+ enqueueStatement(indexFile, {
243
+ kind: StructureKind.ExportDeclaration,
226
244
  isTypeOnly: true,
227
245
  moduleSpecifier,
228
246
  namedExports: ["SimplePollerLike"],
@@ -243,7 +261,10 @@ function exportRestoreHelpers(
243
261
  if (!helperFile) {
244
262
  return;
245
263
  }
246
- const exported = new Set(indexFile.getExportedDeclarations().keys());
264
+ const exported = new Set([
265
+ ...indexFile.getExportedDeclarations().keys(),
266
+ ...getQueuedExportNames(indexFile),
267
+ ]);
247
268
  const allEntries = [...helperFile.getExportedDeclarations().entries()];
248
269
  const moduleSpecifier = `./${
249
270
  isTopLevel && subfolder && subfolder !== "" ? subfolder + "/" : ""
@@ -259,7 +280,8 @@ function exportClassicalClient(
259
280
  isSubClient: boolean = false,
260
281
  ) {
261
282
  const clientName = client.name;
262
- indexFile.addExportDeclaration({
283
+ enqueueStatement(indexFile, {
284
+ kind: StructureKind.ExportDeclaration,
263
285
  namedExports: [clientName],
264
286
  moduleSpecifier: `./${
265
287
  subfolder && subfolder !== "" && !isSubClient ? subfolder + "/" : ""
@@ -321,7 +343,10 @@ function exportModules(
321
343
  continue;
322
344
  }
323
345
 
324
- const exported = new Set(indexFile.getExportedDeclarations().keys());
346
+ const exported = new Set([
347
+ ...indexFile.getExportedDeclarations().keys(),
348
+ ...getQueuedExportNames(indexFile),
349
+ ]);
325
350
  const serializerOrDeserializerRegex = /.*(Serializer|Deserializer)(_\d+)?$/;
326
351
  const filteredEntries = [...modelsFile.getExportedDeclarations().entries()].filter(
327
352
  (exDeclaration) => {
@@ -362,10 +387,23 @@ export function buildSubClientIndexFile(
362
387
  context: SdkContext,
363
388
  clientMap: [string[], SdkClientType<SdkServiceOperation>],
364
389
  emitterOptions: ModularEmitterOptions,
390
+ ) {
391
+ beginSourceFileBatch();
392
+ try {
393
+ buildSubClientIndexFileImpl(context, clientMap, emitterOptions);
394
+ } finally {
395
+ flushSourceFileBatch();
396
+ }
397
+ }
398
+
399
+ function buildSubClientIndexFileImpl(
400
+ context: SdkContext,
401
+ clientMap: [string[], SdkClientType<SdkServiceOperation>],
402
+ emitterOptions: ModularEmitterOptions,
365
403
  ) {
366
404
  const project = useContext("outputProject");
367
405
  const [_, client] = clientMap;
368
- const { subfolder } = getModularClientOptions(clientMap);
406
+ const { subfolder } = getClientModuleInfo(clientMap);
369
407
  const srcPath = emitterOptions.modularOptions.sourceRoot;
370
408
  const subClientIndexFile = project.createSourceFile(
371
409
  `${srcPath}/${subfolder && subfolder !== "" ? subfolder + "/" : ""}index.ts`,
@@ -2,9 +2,14 @@ import { SdkClientType, SdkServiceOperation } from "@azure-tools/typespec-client
2
2
  import { joinPaths } from "@typespec/compiler";
3
3
  import { ModularEmitterOptions } from "./interfaces.js";
4
4
 
5
- import { Node, SourceFile } from "ts-morph";
5
+ import { Node, SourceFile, StructureKind } from "ts-morph";
6
6
  import { useContext } from "../context-manager.js";
7
- import { getModularClientOptions } from "../utils/client-utils.js";
7
+ import {
8
+ beginSourceFileBatch,
9
+ enqueueStatement,
10
+ flushSourceFileBatch,
11
+ } from "../framework/source-file-batch.js";
12
+ import { getClientModuleInfo } from "../utils/client-utils.js";
8
13
 
9
14
  export interface buildSubpathIndexFileOptions {
10
15
  exportIndex?: boolean;
@@ -17,9 +22,23 @@ export function buildSubpathIndexFile(
17
22
  subpath: string,
18
23
  clientMap?: [string[], SdkClientType<SdkServiceOperation>],
19
24
  options: buildSubpathIndexFileOptions = {},
25
+ ) {
26
+ beginSourceFileBatch();
27
+ try {
28
+ buildSubpathIndexFileImpl(emitterOptions, subpath, clientMap, options);
29
+ } finally {
30
+ flushSourceFileBatch();
31
+ }
32
+ }
33
+
34
+ function buildSubpathIndexFileImpl(
35
+ emitterOptions: ModularEmitterOptions,
36
+ subpath: string,
37
+ clientMap?: [string[], SdkClientType<SdkServiceOperation>],
38
+ options: buildSubpathIndexFileOptions = {},
20
39
  ) {
21
40
  const project = useContext("outputProject");
22
- const subfolder = clientMap ? (getModularClientOptions(clientMap).subfolder ?? "") : "";
41
+ const subfolder = clientMap ? (getClientModuleInfo(clientMap).subfolder ?? "") : "";
23
42
  const srcPath = emitterOptions.modularOptions.sourceRoot;
24
43
  // Skip to export these files because they are used internally.
25
44
  const skipFiles = ["pagingHelpers.ts", "pollingHelpers.ts"];
@@ -137,14 +156,16 @@ export function partitionAndEmitExports(
137
156
  }
138
157
  }
139
158
  if (typeOnlyExports.length > 0) {
140
- indexFile.addExportDeclaration({
159
+ enqueueStatement(indexFile, {
160
+ kind: StructureKind.ExportDeclaration,
141
161
  isTypeOnly: true,
142
162
  moduleSpecifier,
143
163
  namedExports: typeOnlyExports,
144
164
  });
145
165
  }
146
166
  if (valueExports.length > 0) {
147
- indexFile.addExportDeclaration({
167
+ enqueueStatement(indexFile, {
168
+ kind: StructureKind.ExportDeclaration,
148
169
  moduleSpecifier,
149
170
  namedExports: valueExports,
150
171
  });
@@ -4,9 +4,9 @@ import { ModularEmitterOptions } from "./interfaces.js";
4
4
 
5
5
  import { SdkClientType, SdkServiceOperation } from "@azure-tools/typespec-client-generator-core";
6
6
  import { useContext } from "../context-manager.js";
7
- import { NameType, normalizeName } from "../rlc-common/index.js";
8
- import { getModularClientOptions } from "../utils/client-utils.js";
7
+ import { getClientModuleInfo } from "../utils/client-utils.js";
9
8
  import { SdkContext } from "../utils/interfaces.js";
9
+ import { NameType, normalizeName } from "../utils/name-utils.js";
10
10
  import { getMethodHierarchiesMap } from "../utils/operation-util.js";
11
11
  import { buildOperationOptions } from "./build-operations.js";
12
12
 
@@ -20,7 +20,7 @@ export function buildApiOptions(
20
20
  const project = useContext("outputProject");
21
21
  const [_, client] = clientMap;
22
22
  const modelOptionsFiles = [];
23
- const { subfolder } = getModularClientOptions(clientMap);
23
+ const { subfolder } = getClientModuleInfo(clientMap);
24
24
  const methodMap = getMethodHierarchiesMap(context, client);
25
25
  for (const [prefixKey, operations] of methodMap) {
26
26
  const prefixes = prefixKey.split("/");