@azure-tools/typespec-ts 0.56.0-dev.0 → 0.56.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 (456) hide show
  1. package/README.md +1 -13
  2. package/dist/src/context-manager.d.ts +2 -2
  3. package/dist/src/context-manager.d.ts.map +1 -1
  4. package/dist/src/framework/declaration.d.ts.map +1 -1
  5. package/dist/src/framework/declaration.js +6 -20
  6. package/dist/src/framework/declaration.js.map +1 -1
  7. package/dist/src/framework/hooks/sdk-types.d.ts.map +1 -1
  8. package/dist/src/framework/hooks/sdk-types.js +1 -1
  9. package/dist/src/framework/hooks/sdk-types.js.map +1 -1
  10. package/dist/src/framework/source-file-batch.d.ts +35 -0
  11. package/dist/src/framework/source-file-batch.d.ts.map +1 -0
  12. package/dist/src/framework/source-file-batch.js +128 -0
  13. package/dist/src/framework/source-file-batch.js.map +1 -0
  14. package/dist/src/index.d.ts.map +1 -1
  15. package/dist/src/index.js +63 -60
  16. package/dist/src/index.js.map +1 -1
  17. package/dist/src/{rlc-common/interfaces.d.ts → interfaces.d.ts} +12 -14
  18. package/dist/src/interfaces.d.ts.map +1 -0
  19. package/dist/src/interfaces.js.map +1 -0
  20. package/dist/src/lib.d.ts +2 -4
  21. package/dist/src/lib.d.ts.map +1 -1
  22. package/dist/src/lib.js +2 -12
  23. package/dist/src/lib.js.map +1 -1
  24. package/dist/src/meta-tree.d.ts +4 -4
  25. package/dist/src/meta-tree.d.ts.map +1 -1
  26. package/dist/src/metadata/build-api-extractor-config.d.ts +6 -0
  27. package/dist/src/metadata/build-api-extractor-config.d.ts.map +1 -0
  28. package/dist/src/metadata/build-api-extractor-config.js.map +1 -0
  29. package/dist/src/metadata/build-changelog-file.d.ts +6 -0
  30. package/dist/src/metadata/build-changelog-file.d.ts.map +1 -0
  31. package/dist/src/metadata/build-changelog-file.js.map +1 -0
  32. package/dist/src/metadata/build-es-lint-config.d.ts +6 -0
  33. package/dist/src/metadata/build-es-lint-config.d.ts.map +1 -0
  34. package/dist/src/metadata/build-es-lint-config.js.map +1 -0
  35. package/dist/src/metadata/build-license-file.d.ts.map +1 -0
  36. package/dist/src/metadata/build-license-file.js.map +1 -0
  37. package/dist/src/{rlc-common/metadata → metadata}/build-package-file.d.ts +3 -3
  38. package/dist/src/metadata/build-package-file.d.ts.map +1 -0
  39. package/dist/src/{rlc-common/metadata → metadata}/build-package-file.js +1 -1
  40. package/dist/src/metadata/build-package-file.js.map +1 -0
  41. package/dist/src/metadata/build-readme-file.d.ts +11 -0
  42. package/dist/src/metadata/build-readme-file.d.ts.map +1 -0
  43. package/dist/src/{rlc-common/metadata → metadata}/build-readme-file.js +16 -69
  44. package/dist/src/metadata/build-readme-file.js.map +1 -0
  45. package/dist/src/metadata/build-sample-env-file.d.ts +6 -0
  46. package/dist/src/metadata/build-sample-env-file.d.ts.map +1 -0
  47. package/dist/src/metadata/build-sample-env-file.js.map +1 -0
  48. package/dist/src/{rlc-common/metadata → metadata}/build-test-config.d.ts +3 -3
  49. package/dist/src/metadata/build-test-config.d.ts.map +1 -0
  50. package/dist/src/metadata/build-test-config.js.map +1 -0
  51. package/dist/src/{rlc-common/metadata → metadata}/build-ts-config.d.ts +3 -3
  52. package/dist/src/metadata/build-ts-config.d.ts.map +1 -0
  53. package/dist/src/metadata/build-ts-config.js.map +1 -0
  54. package/dist/src/metadata/build-vitest-config.d.ts +6 -0
  55. package/dist/src/metadata/build-vitest-config.d.ts.map +1 -0
  56. package/dist/src/metadata/build-vitest-config.js.map +1 -0
  57. package/dist/src/{rlc-common/metadata → metadata}/build-warp-config.d.ts +2 -2
  58. package/dist/src/metadata/build-warp-config.d.ts.map +1 -0
  59. package/dist/src/metadata/build-warp-config.js.map +1 -0
  60. package/dist/src/metadata/package-json/azure-package-common.d.ts.map +1 -0
  61. package/dist/src/metadata/package-json/azure-package-common.js.map +1 -0
  62. package/dist/src/metadata/package-json/build-azure-monorepo-package.d.ts.map +1 -0
  63. package/dist/src/{rlc-common/metadata → metadata}/package-json/build-azure-monorepo-package.js +1 -1
  64. package/dist/src/metadata/package-json/build-azure-monorepo-package.js.map +1 -0
  65. package/dist/src/metadata/package-json/package-common.d.ts.map +1 -0
  66. package/dist/src/metadata/package-json/package-common.js.map +1 -0
  67. package/dist/src/metadata/render-template.d.ts +24 -0
  68. package/dist/src/metadata/render-template.d.ts.map +1 -0
  69. package/dist/src/metadata/render-template.js +148 -0
  70. package/dist/src/metadata/render-template.js.map +1 -0
  71. package/dist/src/metadata/test/build-recorded-client.d.ts +6 -0
  72. package/dist/src/metadata/test/build-recorded-client.d.ts.map +1 -0
  73. package/dist/src/metadata/test/build-recorded-client.js +8 -0
  74. package/dist/src/metadata/test/build-recorded-client.js.map +1 -0
  75. package/dist/src/metadata/test/build-sample-test.d.ts +6 -0
  76. package/dist/src/metadata/test/build-sample-test.d.ts.map +1 -0
  77. package/dist/src/metadata/test/build-sample-test.js +8 -0
  78. package/dist/src/metadata/test/build-sample-test.js.map +1 -0
  79. package/dist/src/metadata/test/build-snippets.d.ts +6 -0
  80. package/dist/src/metadata/test/build-snippets.d.ts.map +1 -0
  81. package/dist/src/{rlc-common → metadata}/test/build-snippets.js +3 -5
  82. package/dist/src/metadata/test/build-snippets.js.map +1 -0
  83. package/dist/src/metadata/test/template.d.ts +4 -0
  84. package/dist/src/metadata/test/template.d.ts.map +1 -0
  85. package/dist/src/metadata/test/template.js +100 -0
  86. package/dist/src/metadata/test/template.js.map +1 -0
  87. package/dist/src/metadata/utils.d.ts +3 -0
  88. package/dist/src/metadata/utils.d.ts.map +1 -0
  89. package/dist/src/metadata/utils.js.map +1 -0
  90. package/dist/src/modular/build-classical-client.d.ts.map +1 -1
  91. package/dist/src/modular/build-classical-client.js +9 -9
  92. package/dist/src/modular/build-classical-client.js.map +1 -1
  93. package/dist/src/modular/build-classical-operation-groups.d.ts.map +1 -1
  94. package/dist/src/modular/build-classical-operation-groups.js +3 -3
  95. package/dist/src/modular/build-classical-operation-groups.js.map +1 -1
  96. package/dist/src/modular/build-client-context.d.ts.map +1 -1
  97. package/dist/src/modular/build-client-context.js +7 -7
  98. package/dist/src/modular/build-client-context.js.map +1 -1
  99. package/dist/src/modular/build-modular-options.js +3 -3
  100. package/dist/src/modular/build-modular-options.js.map +1 -1
  101. package/dist/src/modular/build-operations.d.ts.map +1 -1
  102. package/dist/src/modular/build-operations.js +6 -6
  103. package/dist/src/modular/build-operations.js.map +1 -1
  104. package/dist/src/modular/build-project-files.d.ts.map +1 -1
  105. package/dist/src/modular/build-project-files.js +4 -4
  106. package/dist/src/modular/build-project-files.js.map +1 -1
  107. package/dist/src/modular/build-restore-poller.d.ts.map +1 -1
  108. package/dist/src/modular/build-restore-poller.js +3 -3
  109. package/dist/src/modular/build-restore-poller.js.map +1 -1
  110. package/dist/src/modular/build-root-index.d.ts.map +1 -1
  111. package/dist/src/modular/build-root-index.js +42 -14
  112. package/dist/src/modular/build-root-index.js.map +1 -1
  113. package/dist/src/modular/build-subpath-index.d.ts.map +1 -1
  114. package/dist/src/modular/build-subpath-index.js +17 -4
  115. package/dist/src/modular/build-subpath-index.js.map +1 -1
  116. package/dist/src/modular/emit-models-options.d.ts.map +1 -1
  117. package/dist/src/modular/emit-models-options.js +3 -3
  118. package/dist/src/modular/emit-models-options.js.map +1 -1
  119. package/dist/src/modular/emit-models.d.ts +1 -1
  120. package/dist/src/modular/emit-models.d.ts.map +1 -1
  121. package/dist/src/modular/emit-models.js +32 -25
  122. package/dist/src/modular/emit-models.js.map +1 -1
  123. package/dist/src/modular/emit-samples.d.ts.map +1 -1
  124. package/dist/src/modular/emit-samples.js +5 -5
  125. package/dist/src/modular/emit-samples.js.map +1 -1
  126. package/dist/src/modular/emit-tests.d.ts.map +1 -1
  127. package/dist/src/modular/emit-tests.js +1 -1
  128. package/dist/src/modular/emit-tests.js.map +1 -1
  129. package/dist/src/modular/helpers/classical-operation-helpers.d.ts.map +1 -1
  130. package/dist/src/modular/helpers/classical-operation-helpers.js +11 -11
  131. package/dist/src/modular/helpers/classical-operation-helpers.js.map +1 -1
  132. package/dist/src/modular/helpers/client-helpers.d.ts.map +1 -1
  133. package/dist/src/modular/helpers/client-helpers.js +3 -3
  134. package/dist/src/modular/helpers/client-helpers.js.map +1 -1
  135. package/dist/src/modular/helpers/example-value-helpers.d.ts.map +1 -1
  136. package/dist/src/modular/helpers/example-value-helpers.js +2 -2
  137. package/dist/src/modular/helpers/example-value-helpers.js.map +1 -1
  138. package/dist/src/modular/helpers/naming-helpers.d.ts +1 -1
  139. package/dist/src/modular/helpers/naming-helpers.d.ts.map +1 -1
  140. package/dist/src/modular/helpers/naming-helpers.js +2 -2
  141. package/dist/src/modular/helpers/naming-helpers.js.map +1 -1
  142. package/dist/src/modular/helpers/operation-helpers.d.ts +4 -4
  143. package/dist/src/modular/helpers/operation-helpers.d.ts.map +1 -1
  144. package/dist/src/modular/helpers/operation-helpers.js +25 -26
  145. package/dist/src/modular/helpers/operation-helpers.js.map +1 -1
  146. package/dist/src/modular/helpers/type-helpers.d.ts.map +1 -1
  147. package/dist/src/modular/helpers/type-helpers.js +1 -1
  148. package/dist/src/modular/helpers/type-helpers.js.map +1 -1
  149. package/dist/src/modular/interfaces.d.ts +4 -4
  150. package/dist/src/modular/interfaces.d.ts.map +1 -1
  151. package/dist/src/modular/serialization/build-deserializer-function.d.ts.map +1 -1
  152. package/dist/src/modular/serialization/build-deserializer-function.js +2 -2
  153. package/dist/src/modular/serialization/build-deserializer-function.js.map +1 -1
  154. package/dist/src/modular/serialization/build-serializer-function.d.ts.map +1 -1
  155. package/dist/src/modular/serialization/build-serializer-function.js +2 -2
  156. package/dist/src/modular/serialization/build-serializer-function.js.map +1 -1
  157. package/dist/src/modular/serialization/build-xml-serializer-function.d.ts.map +1 -1
  158. package/dist/src/modular/serialization/build-xml-serializer-function.js +1 -1
  159. package/dist/src/modular/serialization/build-xml-serializer-function.js.map +1 -1
  160. package/dist/src/modular/type-expressions/get-enum-expression.js +1 -1
  161. package/dist/src/modular/type-expressions/get-enum-expression.js.map +1 -1
  162. package/dist/src/modular/type-expressions/get-nullable-expression.js +1 -1
  163. package/dist/src/modular/type-expressions/get-nullable-expression.js.map +1 -1
  164. package/dist/src/modular/type-expressions/get-type-expression.d.ts.map +1 -1
  165. package/dist/src/modular/type-expressions/get-type-expression.js +3 -3
  166. package/dist/src/modular/type-expressions/get-type-expression.js.map +1 -1
  167. package/dist/src/transform/transform-api-version-info.d.ts +1 -1
  168. package/dist/src/transform/transform-api-version-info.d.ts.map +1 -1
  169. package/dist/src/transform/transform-api-version-info.js +4 -3
  170. package/dist/src/transform/transform-api-version-info.js.map +1 -1
  171. package/dist/src/transform/{transfrom-rlc-options.d.ts → transform-client-options.d.ts} +3 -3
  172. package/dist/src/transform/transform-client-options.d.ts.map +1 -0
  173. package/dist/src/transform/{transfrom-rlc-options.js → transform-client-options.js} +9 -13
  174. package/dist/src/transform/transform-client-options.js.map +1 -0
  175. package/dist/src/transform/transform-helper-function-details.d.ts +1 -1
  176. package/dist/src/transform/transform-helper-function-details.d.ts.map +1 -1
  177. package/dist/src/transform/transform-helper-function-details.js +4 -4
  178. package/dist/src/transform/transform-helper-function-details.js.map +1 -1
  179. package/dist/src/transform/transform-parameters.d.ts +1 -1
  180. package/dist/src/transform/transform-parameters.d.ts.map +1 -1
  181. package/dist/src/transform/transform-parameters.js +11 -11
  182. package/dist/src/transform/transform-parameters.js.map +1 -1
  183. package/dist/src/transform/transform-paths.d.ts +1 -1
  184. package/dist/src/transform/transform-paths.d.ts.map +1 -1
  185. package/dist/src/transform/transform-paths.js +5 -4
  186. package/dist/src/transform/transform-paths.js.map +1 -1
  187. package/dist/src/transform/transform-responses.d.ts +1 -1
  188. package/dist/src/transform/transform-responses.d.ts.map +1 -1
  189. package/dist/src/transform/transform-responses.js +19 -18
  190. package/dist/src/transform/transform-responses.js.map +1 -1
  191. package/dist/src/transform/transform-schemas.js +5 -5
  192. package/dist/src/transform/transform-schemas.js.map +1 -1
  193. package/dist/src/transform/transform-telemetry-info.d.ts +1 -1
  194. package/dist/src/transform/transform-telemetry-info.d.ts.map +1 -1
  195. package/dist/src/transform/transform-telemetry-info.js +2 -2
  196. package/dist/src/transform/transform-telemetry-info.js.map +1 -1
  197. package/dist/src/transform/transform.d.ts +2 -2
  198. package/dist/src/transform/transform.d.ts.map +1 -1
  199. package/dist/src/transform/transform.js +9 -10
  200. package/dist/src/transform/transform.js.map +1 -1
  201. package/dist/src/utils/api-version-util.d.ts.map +1 -0
  202. package/dist/src/utils/api-version-util.js.map +1 -0
  203. package/dist/src/utils/client-utils.d.ts +5 -5
  204. package/dist/src/utils/client-utils.d.ts.map +1 -1
  205. package/dist/src/utils/client-utils.js +10 -10
  206. package/dist/src/utils/client-utils.js.map +1 -1
  207. package/dist/src/utils/cross-language-def.d.ts.map +1 -1
  208. package/dist/src/utils/cross-language-def.js +3 -3
  209. package/dist/src/utils/cross-language-def.js.map +1 -1
  210. package/dist/src/utils/emit-util.d.ts +2 -2
  211. package/dist/src/utils/emit-util.d.ts.map +1 -1
  212. package/dist/src/utils/emit-util.js +2 -2
  213. package/dist/src/utils/emit-util.js.map +1 -1
  214. package/dist/src/utils/imports-util.d.ts.map +1 -0
  215. package/dist/src/{rlc-common/helpers → utils}/imports-util.js +6 -6
  216. package/dist/src/utils/imports-util.js.map +1 -0
  217. package/dist/src/utils/interfaces.d.ts +3 -4
  218. package/dist/src/utils/interfaces.d.ts.map +1 -1
  219. package/dist/src/utils/model-utils.d.ts +1 -1
  220. package/dist/src/utils/model-utils.d.ts.map +1 -1
  221. package/dist/src/utils/model-utils.js +4 -2
  222. package/dist/src/utils/model-utils.js.map +1 -1
  223. package/dist/src/{rlc-common/helpers → utils}/name-constructors.d.ts +2 -2
  224. package/dist/src/utils/name-constructors.d.ts.map +1 -0
  225. package/dist/src/utils/name-constructors.js.map +1 -0
  226. package/dist/src/utils/name-utils.d.ts.map +1 -0
  227. package/dist/src/utils/name-utils.js.map +1 -0
  228. package/dist/src/utils/namespace-utils.js +4 -4
  229. package/dist/src/utils/namespace-utils.js.map +1 -1
  230. package/dist/src/utils/operation-helpers.d.ts +16 -0
  231. package/dist/src/utils/operation-helpers.d.ts.map +1 -0
  232. package/dist/src/utils/operation-helpers.js.map +1 -0
  233. package/dist/src/utils/operation-util.d.ts +2 -2
  234. package/dist/src/utils/operation-util.d.ts.map +1 -1
  235. package/dist/src/utils/operation-util.js +17 -18
  236. package/dist/src/utils/operation-util.js.map +1 -1
  237. package/dist/src/utils/parameter-utils.d.ts +1 -1
  238. package/dist/src/utils/parameter-utils.d.ts.map +1 -1
  239. package/dist/src/utils/parameter-utils.js +2 -4
  240. package/dist/src/utils/parameter-utils.js.map +1 -1
  241. package/dist/src/{rlc-common/helpers → utils}/schema-helpers.d.ts +2 -2
  242. package/dist/src/utils/schema-helpers.d.ts.map +1 -0
  243. package/dist/src/utils/schema-helpers.js.map +1 -0
  244. package/dist/src/utils/type-util.d.ts.map +1 -0
  245. package/dist/src/utils/type-util.js.map +1 -0
  246. package/dist/tsconfig.tsbuildinfo +1 -1
  247. package/package.json +14 -24
  248. package/src/context-manager.ts +2 -2
  249. package/src/framework/declaration.ts +8 -20
  250. package/src/framework/hooks/sdk-types.ts +1 -1
  251. package/src/framework/source-file-batch.ts +140 -0
  252. package/src/index.ts +81 -101
  253. package/src/{rlc-common/interfaces.ts → interfaces.ts} +14 -16
  254. package/src/lib.ts +3 -16
  255. package/src/meta-tree.ts +4 -4
  256. package/src/{rlc-common/metadata → metadata}/build-api-extractor-config.ts +2 -2
  257. package/src/{rlc-common/metadata → metadata}/build-changelog-file.ts +3 -3
  258. package/src/{rlc-common/metadata → metadata}/build-es-lint-config.ts +2 -2
  259. package/src/{rlc-common/metadata → metadata}/build-package-file.ts +6 -6
  260. package/src/{rlc-common/metadata → metadata}/build-readme-file.ts +25 -99
  261. package/src/{rlc-common/metadata → metadata}/build-sample-env-file.ts +2 -2
  262. package/src/{rlc-common/metadata → metadata}/build-test-config.ts +4 -4
  263. package/src/{rlc-common/metadata → metadata}/build-ts-config.ts +3 -3
  264. package/src/{rlc-common/metadata → metadata}/build-vitest-config.ts +2 -2
  265. package/src/{rlc-common/metadata → metadata}/build-warp-config.ts +2 -2
  266. package/src/{rlc-common/metadata → metadata}/package-json/build-azure-monorepo-package.ts +1 -1
  267. package/src/metadata/render-template.ts +202 -0
  268. package/src/metadata/test/build-recorded-client.ts +9 -0
  269. package/src/metadata/test/build-sample-test.ts +9 -0
  270. package/src/{rlc-common → metadata}/test/build-snippets.ts +5 -7
  271. package/src/metadata/test/template.ts +101 -0
  272. package/src/{rlc-common/metadata → metadata}/utils.ts +2 -2
  273. package/src/modular/build-classical-client.ts +9 -9
  274. package/src/modular/build-classical-operation-groups.ts +3 -3
  275. package/src/modular/build-client-context.ts +7 -7
  276. package/src/modular/build-modular-options.ts +3 -3
  277. package/src/modular/build-operations.ts +6 -6
  278. package/src/modular/build-project-files.ts +4 -5
  279. package/src/modular/build-restore-poller.ts +3 -3
  280. package/src/modular/build-root-index.ts +57 -19
  281. package/src/modular/build-subpath-index.ts +26 -5
  282. package/src/modular/emit-models-options.ts +3 -3
  283. package/src/modular/emit-models.ts +32 -26
  284. package/src/modular/emit-samples.ts +5 -5
  285. package/src/modular/emit-tests.ts +1 -1
  286. package/src/modular/helpers/classical-operation-helpers.ts +11 -11
  287. package/src/modular/helpers/client-helpers.ts +3 -3
  288. package/src/modular/helpers/example-value-helpers.ts +2 -2
  289. package/src/modular/helpers/naming-helpers.ts +2 -2
  290. package/src/modular/helpers/operation-helpers.ts +27 -27
  291. package/src/modular/helpers/type-helpers.ts +1 -1
  292. package/src/modular/interfaces.ts +4 -4
  293. package/src/modular/serialization/build-deserializer-function.ts +2 -2
  294. package/src/modular/serialization/build-serializer-function.ts +2 -2
  295. package/src/modular/serialization/build-xml-serializer-function.ts +1 -1
  296. package/src/modular/type-expressions/get-enum-expression.ts +1 -1
  297. package/src/modular/type-expressions/get-nullable-expression.ts +1 -1
  298. package/src/modular/type-expressions/get-type-expression.ts +3 -3
  299. package/src/transform/transform-api-version-info.ts +4 -10
  300. package/src/transform/{transfrom-rlc-options.ts → transform-client-options.ts} +12 -22
  301. package/src/transform/transform-helper-function-details.ts +5 -5
  302. package/src/transform/transform-parameters.ts +12 -12
  303. package/src/transform/transform-paths.ts +5 -12
  304. package/src/transform/transform-responses.ts +19 -19
  305. package/src/transform/transform-schemas.ts +5 -5
  306. package/src/transform/transform-telemetry-info.ts +3 -3
  307. package/src/transform/transform.ts +13 -18
  308. package/src/utils/client-utils.ts +11 -11
  309. package/src/utils/cross-language-def.ts +3 -3
  310. package/src/utils/emit-util.ts +3 -3
  311. package/src/{rlc-common/helpers → utils}/imports-util.ts +6 -6
  312. package/src/utils/interfaces.ts +3 -4
  313. package/src/utils/model-utils.ts +7 -8
  314. package/src/{rlc-common/helpers → utils}/name-constructors.ts +2 -2
  315. package/src/utils/namespace-utils.ts +4 -4
  316. package/src/{rlc-common/helpers → utils}/operation-helpers.ts +12 -12
  317. package/src/utils/operation-util.ts +19 -33
  318. package/src/utils/parameter-utils.ts +2 -4
  319. package/src/{rlc-common/helpers → utils}/schema-helpers.ts +2 -2
  320. package/dist/src/rlc-common/helpers/api-version-util.d.ts.map +0 -1
  321. package/dist/src/rlc-common/helpers/api-version-util.js.map +0 -1
  322. package/dist/src/rlc-common/helpers/imports-util.d.ts.map +0 -1
  323. package/dist/src/rlc-common/helpers/imports-util.js.map +0 -1
  324. package/dist/src/rlc-common/helpers/name-constructors.d.ts.map +0 -1
  325. package/dist/src/rlc-common/helpers/name-constructors.js.map +0 -1
  326. package/dist/src/rlc-common/helpers/name-utils.d.ts.map +0 -1
  327. package/dist/src/rlc-common/helpers/name-utils.js.map +0 -1
  328. package/dist/src/rlc-common/helpers/operation-helpers.d.ts +0 -16
  329. package/dist/src/rlc-common/helpers/operation-helpers.d.ts.map +0 -1
  330. package/dist/src/rlc-common/helpers/operation-helpers.js.map +0 -1
  331. package/dist/src/rlc-common/helpers/schema-helpers.d.ts.map +0 -1
  332. package/dist/src/rlc-common/helpers/schema-helpers.js.map +0 -1
  333. package/dist/src/rlc-common/helpers/type-util.d.ts.map +0 -1
  334. package/dist/src/rlc-common/helpers/type-util.js.map +0 -1
  335. package/dist/src/rlc-common/index.d.ts +0 -23
  336. package/dist/src/rlc-common/index.d.ts.map +0 -1
  337. package/dist/src/rlc-common/index.js +0 -25
  338. package/dist/src/rlc-common/index.js.map +0 -1
  339. package/dist/src/rlc-common/interfaces.d.ts.map +0 -1
  340. package/dist/src/rlc-common/interfaces.js.map +0 -1
  341. package/dist/src/rlc-common/metadata/build-api-extractor-config.d.ts +0 -6
  342. package/dist/src/rlc-common/metadata/build-api-extractor-config.d.ts.map +0 -1
  343. package/dist/src/rlc-common/metadata/build-api-extractor-config.js.map +0 -1
  344. package/dist/src/rlc-common/metadata/build-changelog-file.d.ts +0 -6
  345. package/dist/src/rlc-common/metadata/build-changelog-file.d.ts.map +0 -1
  346. package/dist/src/rlc-common/metadata/build-changelog-file.js.map +0 -1
  347. package/dist/src/rlc-common/metadata/build-es-lint-config.d.ts +0 -6
  348. package/dist/src/rlc-common/metadata/build-es-lint-config.d.ts.map +0 -1
  349. package/dist/src/rlc-common/metadata/build-es-lint-config.js.map +0 -1
  350. package/dist/src/rlc-common/metadata/build-license-file.d.ts.map +0 -1
  351. package/dist/src/rlc-common/metadata/build-license-file.js.map +0 -1
  352. package/dist/src/rlc-common/metadata/build-package-file.d.ts.map +0 -1
  353. package/dist/src/rlc-common/metadata/build-package-file.js.map +0 -1
  354. package/dist/src/rlc-common/metadata/build-readme-file.d.ts +0 -11
  355. package/dist/src/rlc-common/metadata/build-readme-file.d.ts.map +0 -1
  356. package/dist/src/rlc-common/metadata/build-readme-file.js.map +0 -1
  357. package/dist/src/rlc-common/metadata/build-sample-env-file.d.ts +0 -6
  358. package/dist/src/rlc-common/metadata/build-sample-env-file.d.ts.map +0 -1
  359. package/dist/src/rlc-common/metadata/build-sample-env-file.js.map +0 -1
  360. package/dist/src/rlc-common/metadata/build-test-config.d.ts.map +0 -1
  361. package/dist/src/rlc-common/metadata/build-test-config.js.map +0 -1
  362. package/dist/src/rlc-common/metadata/build-ts-config.d.ts.map +0 -1
  363. package/dist/src/rlc-common/metadata/build-ts-config.js.map +0 -1
  364. package/dist/src/rlc-common/metadata/build-vitest-config.d.ts +0 -6
  365. package/dist/src/rlc-common/metadata/build-vitest-config.d.ts.map +0 -1
  366. package/dist/src/rlc-common/metadata/build-vitest-config.js.map +0 -1
  367. package/dist/src/rlc-common/metadata/build-warp-config.d.ts.map +0 -1
  368. package/dist/src/rlc-common/metadata/build-warp-config.js.map +0 -1
  369. package/dist/src/rlc-common/metadata/package-json/azure-package-common.d.ts.map +0 -1
  370. package/dist/src/rlc-common/metadata/package-json/azure-package-common.js.map +0 -1
  371. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.d.ts.map +0 -1
  372. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.js.map +0 -1
  373. package/dist/src/rlc-common/metadata/package-json/package-common.d.ts.map +0 -1
  374. package/dist/src/rlc-common/metadata/package-json/package-common.js.map +0 -1
  375. package/dist/src/rlc-common/metadata/utils.d.ts +0 -3
  376. package/dist/src/rlc-common/metadata/utils.d.ts.map +0 -1
  377. package/dist/src/rlc-common/metadata/utils.js.map +0 -1
  378. package/dist/src/rlc-common/static/paginate-content.d.ts +0 -2
  379. package/dist/src/rlc-common/static/paginate-content.d.ts.map +0 -1
  380. package/dist/src/rlc-common/static/paginate-content.js +0 -345
  381. package/dist/src/rlc-common/static/paginate-content.js.map +0 -1
  382. package/dist/src/rlc-common/static/polling-content.d.ts +0 -2
  383. package/dist/src/rlc-common/static/polling-content.d.ts.map +0 -1
  384. package/dist/src/rlc-common/static/polling-content.js +0 -225
  385. package/dist/src/rlc-common/static/polling-content.js.map +0 -1
  386. package/dist/src/rlc-common/static/sample-template.d.ts +0 -2
  387. package/dist/src/rlc-common/static/sample-template.d.ts.map +0 -1
  388. package/dist/src/rlc-common/static/sample-template.js +0 -56
  389. package/dist/src/rlc-common/static/sample-template.js.map +0 -1
  390. package/dist/src/rlc-common/static/serialize-helper.d.ts +0 -6
  391. package/dist/src/rlc-common/static/serialize-helper.d.ts.map +0 -1
  392. package/dist/src/rlc-common/static/serialize-helper.js +0 -31
  393. package/dist/src/rlc-common/static/serialize-helper.js.map +0 -1
  394. package/dist/src/rlc-common/test/build-karma-config.d.ts +0 -6
  395. package/dist/src/rlc-common/test/build-karma-config.d.ts.map +0 -1
  396. package/dist/src/rlc-common/test/build-karma-config.js +0 -11
  397. package/dist/src/rlc-common/test/build-karma-config.js.map +0 -1
  398. package/dist/src/rlc-common/test/build-recorded-client.d.ts +0 -6
  399. package/dist/src/rlc-common/test/build-recorded-client.d.ts.map +0 -1
  400. package/dist/src/rlc-common/test/build-recorded-client.js +0 -14
  401. package/dist/src/rlc-common/test/build-recorded-client.js.map +0 -1
  402. package/dist/src/rlc-common/test/build-sample-test.d.ts +0 -6
  403. package/dist/src/rlc-common/test/build-sample-test.d.ts.map +0 -1
  404. package/dist/src/rlc-common/test/build-sample-test.js +0 -11
  405. package/dist/src/rlc-common/test/build-sample-test.js.map +0 -1
  406. package/dist/src/rlc-common/test/build-snippets.d.ts +0 -6
  407. package/dist/src/rlc-common/test/build-snippets.d.ts.map +0 -1
  408. package/dist/src/rlc-common/test/build-snippets.js.map +0 -1
  409. package/dist/src/rlc-common/test/template.d.ts +0 -5
  410. package/dist/src/rlc-common/test/template.d.ts.map +0 -1
  411. package/dist/src/rlc-common/test/template.js +0 -227
  412. package/dist/src/rlc-common/test/template.js.map +0 -1
  413. package/dist/src/transform/transfrom-rlc-options.d.ts.map +0 -1
  414. package/dist/src/transform/transfrom-rlc-options.js.map +0 -1
  415. package/src/rlc-common/index.ts +0 -25
  416. package/src/rlc-common/static/paginate-content.ts +0 -345
  417. package/src/rlc-common/static/polling-content.ts +0 -225
  418. package/src/rlc-common/static/sample-template.ts +0 -56
  419. package/src/rlc-common/static/serialize-helper.ts +0 -34
  420. package/src/rlc-common/test/build-karma-config.ts +0 -12
  421. package/src/rlc-common/test/build-recorded-client.ts +0 -15
  422. package/src/rlc-common/test/build-sample-test.ts +0 -12
  423. package/src/rlc-common/test/template.ts +0 -229
  424. /package/dist/src/{rlc-common/interfaces.js → interfaces.js} +0 -0
  425. /package/dist/src/{rlc-common/metadata → metadata}/build-api-extractor-config.js +0 -0
  426. /package/dist/src/{rlc-common/metadata → metadata}/build-changelog-file.js +0 -0
  427. /package/dist/src/{rlc-common/metadata → metadata}/build-es-lint-config.js +0 -0
  428. /package/dist/src/{rlc-common/metadata → metadata}/build-license-file.d.ts +0 -0
  429. /package/dist/src/{rlc-common/metadata → metadata}/build-license-file.js +0 -0
  430. /package/dist/src/{rlc-common/metadata → metadata}/build-sample-env-file.js +0 -0
  431. /package/dist/src/{rlc-common/metadata → metadata}/build-test-config.js +0 -0
  432. /package/dist/src/{rlc-common/metadata → metadata}/build-ts-config.js +0 -0
  433. /package/dist/src/{rlc-common/metadata → metadata}/build-vitest-config.js +0 -0
  434. /package/dist/src/{rlc-common/metadata → metadata}/build-warp-config.js +0 -0
  435. /package/dist/src/{rlc-common/metadata → metadata}/package-json/azure-package-common.d.ts +0 -0
  436. /package/dist/src/{rlc-common/metadata → metadata}/package-json/azure-package-common.js +0 -0
  437. /package/dist/src/{rlc-common/metadata → metadata}/package-json/build-azure-monorepo-package.d.ts +0 -0
  438. /package/dist/src/{rlc-common/metadata → metadata}/package-json/package-common.d.ts +0 -0
  439. /package/dist/src/{rlc-common/metadata → metadata}/package-json/package-common.js +0 -0
  440. /package/dist/src/{rlc-common/metadata → metadata}/utils.js +0 -0
  441. /package/dist/src/{rlc-common/helpers → utils}/api-version-util.d.ts +0 -0
  442. /package/dist/src/{rlc-common/helpers → utils}/api-version-util.js +0 -0
  443. /package/dist/src/{rlc-common/helpers → utils}/imports-util.d.ts +0 -0
  444. /package/dist/src/{rlc-common/helpers → utils}/name-constructors.js +0 -0
  445. /package/dist/src/{rlc-common/helpers → utils}/name-utils.d.ts +0 -0
  446. /package/dist/src/{rlc-common/helpers → utils}/name-utils.js +0 -0
  447. /package/dist/src/{rlc-common/helpers → utils}/operation-helpers.js +0 -0
  448. /package/dist/src/{rlc-common/helpers → utils}/schema-helpers.js +0 -0
  449. /package/dist/src/{rlc-common/helpers → utils}/type-util.d.ts +0 -0
  450. /package/dist/src/{rlc-common/helpers → utils}/type-util.js +0 -0
  451. /package/src/{rlc-common/metadata → metadata}/build-license-file.ts +0 -0
  452. /package/src/{rlc-common/metadata → metadata}/package-json/azure-package-common.ts +0 -0
  453. /package/src/{rlc-common/metadata → metadata}/package-json/package-common.ts +0 -0
  454. /package/src/{rlc-common/helpers → utils}/api-version-util.ts +0 -0
  455. /package/src/{rlc-common/helpers → utils}/name-utils.ts +0 -0
  456. /package/src/{rlc-common/helpers → utils}/type-util.ts +0 -0
@@ -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("/");
@@ -28,7 +28,6 @@ import {
28
28
  StructureKind,
29
29
  TypeAliasDeclarationStructure,
30
30
  } from "ts-morph";
31
- import { fixLeadingNumber, NameType, normalizeName } from "../rlc-common/index.js";
32
31
  // import { isKey } from "@typespec/compiler";
33
32
  import {
34
33
  getExternalModel,
@@ -47,10 +46,12 @@ import {
47
46
  pagedModelsKeptPublic,
48
47
  } from "../framework/hooks/sdk-types.js";
49
48
  import { refkey } from "../framework/refkey.js";
49
+ import { beginSourceFileBatch, flushSourceFileBatch } from "../framework/source-file-batch.js";
50
50
  import { reportDiagnostic } from "../lib.js";
51
51
  import { getClientHierarchyMap } from "../utils/client-utils.js";
52
52
  import { SdkContext } from "../utils/interfaces.js";
53
53
  import { isAzureCoreErrorType } from "../utils/model-utils.js";
54
+ import { fixLeadingNumber, NameType, normalizeName } from "../utils/name-utils.js";
54
55
  import { getMethodHierarchiesMap } from "../utils/operation-util.js";
55
56
  import { getHeaderClientOptions } from "./helpers/client-option-helpers.js";
56
57
  import {
@@ -117,32 +118,37 @@ export function emitTypes(context: SdkContext, { sourceRoot }: { sourceRoot: str
117
118
 
118
119
  let sourceFile;
119
120
 
120
- for (const type of emitQueue) {
121
- if (!isGenerableType(type)) {
122
- continue;
123
- }
121
+ beginSourceFileBatch();
122
+ try {
123
+ for (const type of emitQueue) {
124
+ if (!isGenerableType(type)) {
125
+ continue;
126
+ }
124
127
 
125
- const namespaces = getModelNamespaces(context, type);
126
- const filepath = getModelsPath(sourceRoot, namespaces);
127
- sourceFile = outputProject.getSourceFile(filepath);
128
- if (!sourceFile) {
129
- sourceFile = outputProject.createSourceFile(filepath);
130
- sourceFile.addStatements(`/**
128
+ const namespaces = getModelNamespaces(context, type);
129
+ const filepath = getModelsPath(sourceRoot, namespaces);
130
+ sourceFile = outputProject.getSourceFile(filepath);
131
+ if (!sourceFile) {
132
+ sourceFile = outputProject.createSourceFile(filepath);
133
+ sourceFile.addStatements(`/*
131
134
  * This file contains only generated model types and their (de)serializers.
132
135
  * Disable the following rules for internal models with '_' prefix and deserializers which require 'any' for raw JSON input.
133
136
  */
134
137
  /* eslint-disable @typescript-eslint/naming-convention */
135
138
  /* eslint-disable @typescript-eslint/explicit-module-boundary-types */`);
139
+ }
140
+ emitType(context, type, sourceFile);
136
141
  }
137
- emitType(context, type, sourceFile);
138
- }
139
142
 
140
- // Emit serialization/deserialization functions for flattened properties
141
- for (const [property, _] of flattenPropertyModelMap) {
142
- const namespaces = getModelNamespaces(context, property.type);
143
- const filepath = getModelsPath(sourceRoot, namespaces);
144
- sourceFile = outputProject.getSourceFile(filepath);
145
- addSerializationFunctions(context, property, sourceFile!);
143
+ // Emit serialization/deserialization functions for flattened properties
144
+ for (const [property, _] of flattenPropertyModelMap) {
145
+ const namespaces = getModelNamespaces(context, property.type);
146
+ const filepath = getModelsPath(sourceRoot, namespaces);
147
+ sourceFile = outputProject.getSourceFile(filepath);
148
+ addSerializationFunctions(context, property, sourceFile!);
149
+ }
150
+ } finally {
151
+ flushSourceFileBatch();
146
152
  }
147
153
 
148
154
  const modelFiles = outputProject.getSourceFiles(sourceRoot + "/models/**/*.ts");
@@ -245,7 +251,7 @@ function emitType(context: SdkContext, type: SdkType, sourceFile: SourceFile) {
245
251
  }
246
252
  const apiVersionEnumOnly = type.usage === UsageFlags.ApiVersionEnum;
247
253
  // Skip known api version enums for multi-service scenarios as users are not allowed to set api versions
248
- if (apiVersionEnumOnly && context.rlcOptions?.isMultiService) {
254
+ if (apiVersionEnumOnly && context.emitterOptions?.isMultiService) {
249
255
  return;
250
256
  }
251
257
  const inputUsage = (type.usage & UsageFlags.Input) === UsageFlags.Input;
@@ -290,7 +296,7 @@ function emitType(context: SdkContext, type: SdkType, sourceFile: SourceFile) {
290
296
 
291
297
  export function getApiVersionEnum(context: SdkContext) {
292
298
  // Skip api version enum for multi-service scenarios since each service may have different versions
293
- if (context.rlcOptions?.isMultiService) {
299
+ if (context.emitterOptions?.isMultiService) {
294
300
  return;
295
301
  }
296
302
  const apiVersionEnum = context.sdkPackage.enums.find(
@@ -325,7 +331,7 @@ export function getModelNamespaces(context: SdkContext, model: SdkType): string[
325
331
  }
326
332
  const segments = model.namespace.split(".");
327
333
  // Keep full namespace segments if multiple services are present because there isn't a root namespace to trim
328
- if (context.rlcOptions?.isMultiService) {
334
+ if (context.emitterOptions?.isMultiService) {
329
335
  return segments;
330
336
  }
331
337
 
@@ -603,7 +609,7 @@ function emitEnumMember(
603
609
  ): EnumMemberStructure {
604
610
  const shouldNormalizeName = !member.name.startsWith("$DO_NOT_NORMALIZE$");
605
611
  const enumTypeName = normalizeName(member.enumType.name, NameType.Interface, true);
606
- let normalizedMemberName = context.rlcOptions?.ignoreEnumMemberNameNormalize
612
+ let normalizedMemberName = context.emitterOptions?.ignoreEnumMemberNameNormalize
607
613
  ? fixLeadingNumber(member.name, NameType.EnumMemberName) // need to fix the leading number also for enum member
608
614
  : normalizeName(member.name, NameType.EnumMemberName, true);
609
615
  // If the member name starts with _ due to a leading digit (not because the original has _),
@@ -744,7 +750,7 @@ function addExtendedDictInfo(
744
750
  const additionalPropertiesType = model.additionalProperties
745
751
  ? getTypeExpression(context, model.additionalProperties)
746
752
  : undefined;
747
- if (context.rlcOptions?.compatibilityMode) {
753
+ if (context.emitterOptions?.compatibilityMode) {
748
754
  const ancestors = getAllAncestors(model);
749
755
  const properties = getAllProperties(context, model, ancestors);
750
756
  let anyType: boolean;
@@ -839,7 +845,7 @@ export function normalizeModelName(
839
845
  unionSuffix = "Union";
840
846
  }
841
847
  }
842
- const namespacePrefix = context.rlcOptions?.enableModelNamespace ? segments.join("") : "";
848
+ const namespacePrefix = context.emitterOptions?.enableModelNamespace ? segments.join("") : "";
843
849
  const internalModelPrefix =
844
850
  (isPagedResultModel(context, type) && !pagedModelsKeptPublic.has(type)) || type.isGeneratedName
845
851
  ? "_"
@@ -883,7 +889,7 @@ function buildModelProperty(
883
889
  ): PropertySignatureStructure {
884
890
  const normalizedPropName = normalizeModelPropertyName(context, property);
885
891
  if (
886
- !context.rlcOptions?.ignorePropertyNameNormalize &&
892
+ !context.emitterOptions?.ignorePropertyNameNormalize &&
887
893
  normalizedPropName !== `"${property.name}"`
888
894
  ) {
889
895
  reportDiagnostic(context.program, {
@@ -14,10 +14,10 @@ import { useContext } from "../context-manager.js";
14
14
  import { resolveReference } from "../framework/reference.js";
15
15
  import { reportDiagnostic } from "../index.js";
16
16
  import { AzureIdentityDependencies } from "../modular/external-dependencies.js";
17
- import { NameType, normalizeName } from "../rlc-common/index.js";
18
- import { getSubscriptionId } from "../transform/transfrom-rlc-options.js";
17
+ import { getSubscriptionId } from "../transform/transform-client-options.js";
19
18
  import { hasKeyCredential, hasTokenCredential } from "../utils/credential-utils.js";
20
19
  import { SdkContext } from "../utils/interfaces.js";
20
+ import { NameType, normalizeName } from "../utils/name-utils.js";
21
21
  import {
22
22
  getMethodHierarchiesMap,
23
23
  isTenantLevelOperation,
@@ -115,9 +115,9 @@ function emitMethodSamples(
115
115
  });
116
116
  const exampleFunctions = [];
117
117
  // TODO: remove hard-coded for package
118
- if (dpgContext.rlcOptions?.packageDetails?.name) {
118
+ if (dpgContext.emitterOptions?.packageDetails?.name) {
119
119
  sourceFile.addImportDeclaration({
120
- moduleSpecifier: dpgContext.rlcOptions?.packageDetails?.name,
120
+ moduleSpecifier: dpgContext.emitterOptions?.packageDetails?.name,
121
121
  namedImports: [getClassicalClientName(options.topLevelClient)],
122
122
  });
123
123
  }
@@ -606,7 +606,7 @@ function getParameterValue(
606
606
  retValue = `${JSON.stringify(value.value)}`;
607
607
  break;
608
608
  case "null": {
609
- const ignoreNullableOnOptional = context.rlcOptions?.ignoreNullableOnOptional ?? false;
609
+ const ignoreNullableOnOptional = context.emitterOptions?.ignoreNullableOnOptional ?? false;
610
610
  if (ignoreNullableOnOptional) {
611
611
  // When ignore-nullable-on-optional is true, the TypeScript type won't include
612
612
  // | null for optional properties, so we convert null to a type-appropriate default
@@ -1,8 +1,8 @@
1
1
  import { type CompilerHost, joinPaths } from "@typespec/compiler";
2
2
  import { SourceFile } from "ts-morph";
3
3
  import { resolveReference } from "../framework/reference.js";
4
- import { NameType, normalizeName } from "../rlc-common/index.js";
5
4
  import { SdkContext } from "../utils/interfaces.js";
5
+ import { NameType, normalizeName } from "../utils/name-utils.js";
6
6
  import { ServiceOperation } from "../utils/operation-util.js";
7
7
  import { AzureTestDependencies } from "./external-dependencies.js";
8
8
  import {
@@ -10,9 +10,9 @@ import {
10
10
  import { addDeclaration } from "../../framework/declaration.js";
11
11
  import { resolveReference } from "../../framework/reference.js";
12
12
  import { refkey } from "../../framework/refkey.js";
13
- import { NameType, normalizeName } from "../../rlc-common/index.js";
14
- import { getModularClientOptions } from "../../utils/client-utils.js";
13
+ import { getClientModuleInfo } from "../../utils/client-utils.js";
15
14
  import { SdkContext } from "../../utils/interfaces.js";
15
+ import { NameType, normalizeName } from "../../utils/name-utils.js";
16
16
  import { ServiceOperation } from "../../utils/operation-util.js";
17
17
  import { AzurePollingDependencies } from "../external-dependencies.js";
18
18
  import { PagingHelpers, SimplePollerHelpers } from "../static-helpers-metadata.js";
@@ -55,18 +55,18 @@ export function getClassicalOperation(
55
55
  ) {
56
56
  const prefixes = operationGroup[0];
57
57
  const operations = operationGroup[1];
58
- const { rlcClientName } = getModularClientOptions(clientMap);
58
+ const { clientName } = getClientModuleInfo(clientMap);
59
59
  const hasClientContextImport = classicFile.getImportDeclarations().filter((i) => {
60
60
  return (
61
61
  i.getModuleSpecifierValue() ===
62
- `${"../".repeat(layer + 2)}api/${normalizeName(rlcClientName, NameType.File)}.js`
62
+ `${"../".repeat(layer + 2)}api/${normalizeName(clientName, NameType.File)}.js`
63
63
  );
64
64
  });
65
65
  if (!hasClientContextImport || hasClientContextImport.length === 0) {
66
66
  classicFile.addImportDeclaration({
67
- namedImports: [rlcClientName],
67
+ namedImports: [clientName],
68
68
  moduleSpecifier: `${"../".repeat(layer + 2)}api/${normalizeName(
69
- rlcClientName,
69
+ clientName,
70
70
  NameType.File,
71
71
  )}.js`,
72
72
  });
@@ -78,7 +78,7 @@ export function getClassicalOperation(
78
78
  >();
79
79
  const operationDeclarations: OptionalKind<FunctionDeclarationStructure>[] = operations.map(
80
80
  (operation) => {
81
- const declaration = getOperationFunction(dpgContext, [prefixes, operation], rlcClientName);
81
+ const declaration = getOperationFunction(dpgContext, [prefixes, operation], clientName);
82
82
  operationDeclarationMap.set(declaration, {
83
83
  declaration,
84
84
  oriName: operation.oriName,
@@ -141,7 +141,7 @@ export function getClassicalOperation(
141
141
  });
142
142
  // add LRO helper methods if applicable
143
143
  if (
144
- dpgContext.rlcOptions?.compatibilityLro &&
144
+ dpgContext.emitterOptions?.compatibilityLro &&
145
145
  (operationInfo?.isLro || operationInfo?.isLroPaging)
146
146
  ) {
147
147
  const operationStateReference = resolveReference(AzurePollingDependencies.OperationState);
@@ -207,7 +207,7 @@ export function getClassicalOperation(
207
207
  parameters: [
208
208
  {
209
209
  name: "context",
210
- type: rlcClientName,
210
+ type: clientName,
211
211
  },
212
212
  ],
213
213
  statements: `return {
@@ -237,7 +237,7 @@ export function getClassicalOperation(
237
237
  ];
238
238
  // add LRO helper methods if applicable
239
239
  if (
240
- dpgContext.rlcOptions?.compatibilityLro &&
240
+ dpgContext.emitterOptions?.compatibilityLro &&
241
241
  (operationInfo?.isLro || operationInfo?.isLroPaging)
242
242
  ) {
243
243
  const getSimplePollerReference = resolveReference(
@@ -336,7 +336,7 @@ export function getClassicalOperation(
336
336
  parameters: [
337
337
  {
338
338
  name: "context",
339
- type: rlcClientName,
339
+ type: clientName,
340
340
  },
341
341
  ],
342
342
  returnType: resolveReference(refkey(interfaceName, layer, "classicOperations")),
@@ -10,8 +10,8 @@ import { OptionalKind, ParameterDeclarationStructure, StatementedNode } from "ts
10
10
  import { ModularEmitterOptions } from "../interfaces.js";
11
11
 
12
12
  import { resolveReference } from "../../framework/reference.js";
13
- import { NameType, normalizeName } from "../../rlc-common/index.js";
14
13
  import { SdkContext } from "../../utils/interfaces.js";
14
+ import { NameType, normalizeName } from "../../utils/name-utils.js";
15
15
  import { CloudSettingHelpers } from "../static-helpers-metadata.js";
16
16
  import { getTypeExpression } from "../type-expressions/get-type-expression.js";
17
17
  import { getClassicalClientName } from "./naming-helpers.js";
@@ -87,10 +87,10 @@ export function getClientParameters(
87
87
  const armSpecific = (p: SdkParameter) => !(p.kind === "endpoint" && dpgContext.arm);
88
88
  // Skip apiVersion parameter when it's multi-service (each service has its own default apiVersion)
89
89
  const skipApiVersionOnMultiService = (p: SdkParameter) =>
90
- !(dpgContext.rlcOptions?.isMultiService && p.isApiVersionParam);
90
+ !(dpgContext.emitterOptions?.isMultiService && p.isApiVersionParam);
91
91
  const filters = [
92
92
  options.requiredOnly ? isRequired : undefined,
93
- dpgContext.rlcOptions?.addCredentials === false ? skipCredentials : undefined,
93
+ dpgContext.emitterOptions?.addCredentials === false ? skipCredentials : undefined,
94
94
  options.optionalOnly ? isOptional : undefined,
95
95
  options.onClientOnly ? skipMethodParam : undefined,
96
96
  options.skipArmSpecific ? undefined : armSpecific,
@@ -12,10 +12,10 @@ import { joinPaths } from "@typespec/compiler";
12
12
  import { SourceFile } from "ts-morph";
13
13
  import { useContext } from "../../context-manager.js";
14
14
  import { resolveReference } from "../../framework/reference.js";
15
- import { NameType, normalizeName } from "../../rlc-common/index.js";
16
- import { getSubscriptionId } from "../../transform/transfrom-rlc-options.js";
15
+ import { getSubscriptionId } from "../../transform/transform-client-options.js";
17
16
  import { hasKeyCredential, hasTokenCredential } from "../../utils/credential-utils.js";
18
17
  import { SdkContext } from "../../utils/interfaces.js";
18
+ import { NameType, normalizeName } from "../../utils/name-utils.js";
19
19
  import { getMethodHierarchiesMap, ServiceOperation } from "../../utils/operation-util.js";
20
20
  import { AzureIdentityDependencies, AzureTestDependencies } from "../external-dependencies.js";
21
21
  import { getClientParametersDeclaration } from "./client-helpers.js";
@@ -1,6 +1,6 @@
1
1
  import { SdkClientType, SdkServiceOperation } from "@azure-tools/typespec-client-generator-core";
2
- import { NameType, normalizeName, ReservedModelNames } from "../../rlc-common/index.js";
3
2
  import { SdkContext } from "../../utils/interfaces.js";
3
+ import { NameType, normalizeName, ReservedModelNames } from "../../utils/name-utils.js";
4
4
  import { ServiceOperation } from "../../utils/operation-util.js";
5
5
 
6
6
  export function getClientName(client: SdkClientType<SdkServiceOperation>): string {
@@ -21,7 +21,7 @@ export function getOperationName(
21
21
  dpgContext?: SdkContext,
22
22
  ): GuardedName {
23
23
  const norm = normalizeName(operation.name, NameType.Method, true);
24
- const isDataplane = dpgContext !== undefined && !dpgContext.rlcOptions?.azureArm;
24
+ const isDataplane = dpgContext !== undefined && !dpgContext.emitterOptions?.azureArm;
25
25
  if (isReservedName(operation.name, NameType.Method) && isDataplane) {
26
26
  return {
27
27
  name: norm,