@azure-tools/typespec-ts 0.55.0-dev.2 → 0.55.0-dev.4

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 (145) hide show
  1. package/README.md +96 -24
  2. package/dist/src/framework/hooks/binder.d.ts.map +1 -1
  3. package/dist/src/framework/hooks/binder.js +3 -4
  4. package/dist/src/framework/hooks/binder.js.map +1 -1
  5. package/dist/src/framework/load-static-helpers.d.ts +4 -1
  6. package/dist/src/framework/load-static-helpers.d.ts.map +1 -1
  7. package/dist/src/framework/load-static-helpers.js +19 -15
  8. package/dist/src/framework/load-static-helpers.js.map +1 -1
  9. package/dist/src/framework/sample.js +1 -1
  10. package/dist/src/framework/sample.js.map +1 -1
  11. package/dist/src/index.d.ts.map +1 -1
  12. package/dist/src/index.js +47 -28
  13. package/dist/src/index.js.map +1 -1
  14. package/dist/src/lib.js +30 -31
  15. package/dist/src/lib.js.map +1 -1
  16. package/dist/src/modular/build-project-files.d.ts.map +1 -1
  17. package/dist/src/modular/build-project-files.js +4 -4
  18. package/dist/src/modular/build-project-files.js.map +1 -1
  19. package/dist/src/modular/build-restore-poller.js +2 -2
  20. package/dist/src/modular/build-restore-poller.js.map +1 -1
  21. package/dist/src/modular/build-root-index.d.ts.map +1 -1
  22. package/dist/src/modular/build-root-index.js +5 -6
  23. package/dist/src/modular/build-root-index.js.map +1 -1
  24. package/dist/src/modular/build-subpath-index.d.ts.map +1 -1
  25. package/dist/src/modular/build-subpath-index.js +4 -4
  26. package/dist/src/modular/build-subpath-index.js.map +1 -1
  27. package/dist/src/modular/emit-models-options.js +2 -2
  28. package/dist/src/modular/emit-models-options.js.map +1 -1
  29. package/dist/src/modular/emit-models.d.ts.map +1 -1
  30. package/dist/src/modular/emit-models.js +2 -3
  31. package/dist/src/modular/emit-models.js.map +1 -1
  32. package/dist/src/modular/emit-samples.d.ts.map +1 -1
  33. package/dist/src/modular/emit-samples.js +3 -4
  34. package/dist/src/modular/emit-samples.js.map +1 -1
  35. package/dist/src/modular/emit-tests.d.ts +2 -1
  36. package/dist/src/modular/emit-tests.d.ts.map +1 -1
  37. package/dist/src/modular/emit-tests.js +21 -11
  38. package/dist/src/modular/emit-tests.js.map +1 -1
  39. package/dist/src/modular/helpers/example-value-helpers.js +4 -4
  40. package/dist/src/modular/helpers/example-value-helpers.js.map +1 -1
  41. package/dist/src/rlc-common/build-client-definitions.js +3 -3
  42. package/dist/src/rlc-common/build-client-definitions.js.map +1 -1
  43. package/dist/src/rlc-common/build-client.js +4 -4
  44. package/dist/src/rlc-common/build-client.js.map +1 -1
  45. package/dist/src/rlc-common/build-index-file.js +3 -3
  46. package/dist/src/rlc-common/build-index-file.js.map +1 -1
  47. package/dist/src/rlc-common/build-is-unexpected-helper.js +3 -3
  48. package/dist/src/rlc-common/build-is-unexpected-helper.js.map +1 -1
  49. package/dist/src/rlc-common/build-logger.js +3 -3
  50. package/dist/src/rlc-common/build-logger.js.map +1 -1
  51. package/dist/src/rlc-common/build-paginate-helper.js +2 -2
  52. package/dist/src/rlc-common/build-paginate-helper.js.map +1 -1
  53. package/dist/src/rlc-common/build-parameter-types.js +3 -3
  54. package/dist/src/rlc-common/build-parameter-types.js.map +1 -1
  55. package/dist/src/rlc-common/build-polling-helper.js +2 -2
  56. package/dist/src/rlc-common/build-polling-helper.js.map +1 -1
  57. package/dist/src/rlc-common/build-response-types.js +3 -3
  58. package/dist/src/rlc-common/build-response-types.js.map +1 -1
  59. package/dist/src/rlc-common/build-samples.js +2 -2
  60. package/dist/src/rlc-common/build-samples.js.map +1 -1
  61. package/dist/src/rlc-common/build-schema-type.js +4 -4
  62. package/dist/src/rlc-common/build-schema-type.js.map +1 -1
  63. package/dist/src/rlc-common/build-serialize-helper.js +2 -2
  64. package/dist/src/rlc-common/build-serialize-helper.js.map +1 -1
  65. package/dist/src/rlc-common/build-top-level-index-file.js +3 -3
  66. package/dist/src/rlc-common/build-top-level-index-file.js.map +1 -1
  67. package/dist/src/rlc-common/helpers/path-utils.d.ts.map +1 -1
  68. package/dist/src/rlc-common/helpers/path-utils.js +1 -2
  69. package/dist/src/rlc-common/helpers/path-utils.js.map +1 -1
  70. package/dist/src/rlc-common/metadata/build-api-extractor-config.js +1 -1
  71. package/dist/src/rlc-common/metadata/build-api-extractor-config.js.map +1 -1
  72. package/dist/src/rlc-common/metadata/build-es-lint-config.js +1 -1
  73. package/dist/src/rlc-common/metadata/build-es-lint-config.js.map +1 -1
  74. package/dist/src/rlc-common/metadata/build-package-file.js +1 -1
  75. package/dist/src/rlc-common/metadata/build-package-file.js.map +1 -1
  76. package/dist/src/rlc-common/metadata/build-readme-file.d.ts +2 -2
  77. package/dist/src/rlc-common/metadata/build-readme-file.d.ts.map +1 -1
  78. package/dist/src/rlc-common/metadata/build-readme-file.js +11 -14
  79. package/dist/src/rlc-common/metadata/build-readme-file.js.map +1 -1
  80. package/dist/src/rlc-common/metadata/build-rollup-config.js +1 -1
  81. package/dist/src/rlc-common/metadata/build-rollup-config.js.map +1 -1
  82. package/dist/src/rlc-common/metadata/build-ts-config.js +1 -1
  83. package/dist/src/rlc-common/metadata/build-ts-config.js.map +1 -1
  84. package/dist/src/transform/transform.d.ts.map +1 -1
  85. package/dist/src/transform/transform.js +2 -3
  86. package/dist/src/transform/transform.js.map +1 -1
  87. package/dist/src/utils/emit-util.d.ts.map +1 -1
  88. package/dist/src/utils/emit-util.js +10 -5
  89. package/dist/src/utils/emit-util.js.map +1 -1
  90. package/dist/src/utils/file-system-utils.d.ts +4 -4
  91. package/dist/src/utils/file-system-utils.d.ts.map +1 -1
  92. package/dist/src/utils/file-system-utils.js +14 -16
  93. package/dist/src/utils/file-system-utils.js.map +1 -1
  94. package/dist/src/utils/import-helper.js +3 -3
  95. package/dist/src/utils/import-helper.js.map +1 -1
  96. package/dist/src/utils/resolve-project-root.d.ts +6 -4
  97. package/dist/src/utils/resolve-project-root.d.ts.map +1 -1
  98. package/dist/src/utils/resolve-project-root.js +11 -18
  99. package/dist/src/utils/resolve-project-root.js.map +1 -1
  100. package/dist/tsconfig.tsbuildinfo +1 -1
  101. package/package.json +26 -26
  102. package/src/framework/hooks/binder.ts +3 -4
  103. package/src/framework/load-static-helpers.ts +29 -18
  104. package/src/framework/sample.ts +1 -1
  105. package/src/index.ts +61 -28
  106. package/src/lib.ts +31 -31
  107. package/src/modular/build-project-files.ts +11 -4
  108. package/src/modular/build-restore-poller.ts +2 -2
  109. package/src/modular/build-root-index.ts +5 -6
  110. package/src/modular/build-subpath-index.ts +4 -4
  111. package/src/modular/emit-models-options.ts +2 -2
  112. package/src/modular/emit-models.ts +2 -3
  113. package/src/modular/emit-samples.ts +3 -4
  114. package/src/modular/emit-tests.ts +28 -11
  115. package/src/modular/helpers/example-value-helpers.ts +4 -4
  116. package/src/rlc-common/build-client-definitions.ts +3 -3
  117. package/src/rlc-common/build-client.ts +4 -4
  118. package/src/rlc-common/build-index-file.ts +3 -3
  119. package/src/rlc-common/build-is-unexpected-helper.ts +3 -3
  120. package/src/rlc-common/build-logger.ts +3 -3
  121. package/src/rlc-common/build-paginate-helper.ts +2 -2
  122. package/src/rlc-common/build-parameter-types.ts +3 -3
  123. package/src/rlc-common/build-polling-helper.ts +2 -2
  124. package/src/rlc-common/build-response-types.ts +3 -3
  125. package/src/rlc-common/build-samples.ts +2 -2
  126. package/src/rlc-common/build-schema-type.ts +4 -4
  127. package/src/rlc-common/build-serialize-helper.ts +2 -2
  128. package/src/rlc-common/build-top-level-index-file.ts +3 -3
  129. package/src/rlc-common/helpers/path-utils.ts +1 -3
  130. package/src/rlc-common/metadata/build-api-extractor-config.ts +1 -1
  131. package/src/rlc-common/metadata/build-es-lint-config.ts +1 -1
  132. package/src/rlc-common/metadata/build-package-file.ts +1 -1
  133. package/src/rlc-common/metadata/build-readme-file.ts +12 -15
  134. package/src/rlc-common/metadata/build-rollup-config.ts +1 -1
  135. package/src/rlc-common/metadata/build-ts-config.ts +1 -1
  136. package/src/transform/transform.ts +2 -3
  137. package/src/utils/emit-util.ts +10 -8
  138. package/src/utils/file-system-utils.ts +14 -15
  139. package/src/utils/import-helper.ts +3 -3
  140. package/src/utils/resolve-project-root.ts +11 -24
  141. package/dist/src/utils/dirname.d.ts +0 -9
  142. package/dist/src/utils/dirname.d.ts.map +0 -1
  143. package/dist/src/utils/dirname.js +0 -12
  144. package/dist/src/utils/dirname.js.map +0 -1
  145. package/src/utils/dirname.ts +0 -12
package/README.md CHANGED
@@ -8,7 +8,7 @@ An experimental TypeSpec emitter for TypeScript RLC
8
8
  npm install @azure-tools/typespec-ts
9
9
  ```
10
10
 
11
- ## Usage
11
+ ## Emitter usage
12
12
 
13
13
  1. Via the command line
14
14
 
@@ -42,6 +42,12 @@ options:
42
42
  Defines the emitter output directory. Defaults to `{output-dir}/@azure-tools/typespec-ts`
43
43
  See [Configuring output directory for more info](https://typespec.io/docs/handbook/configuration/configuration/#configuring-output-directory)
44
44
 
45
+ ### `include-headers-in-response`
46
+
47
+ **Type:** `boolean`
48
+
49
+ This option is used to indicate whether to include response headers in the generated response type. When set to true, the generated response type will include response headers as properties.
50
+
45
51
  ### `include-shortcuts`
46
52
 
47
53
  **Type:** `boolean`
@@ -56,34 +62,45 @@ Deprecated option for RLC legacy generation.
56
62
 
57
63
  ### `batch`
58
64
 
59
- **Type:** `array`
65
+ **Type:** `string[]`
60
66
 
61
67
  Deprecated option for RLC legacy generation.
62
68
 
63
69
  ### `package-details`
64
70
 
65
- **Type:** `object`
71
+ **Type:** `object { name, scopeName, nameWithoutScope, description, version, isVersionUserProvided }`
66
72
 
67
73
  This is to indicate the package information such as package name, package description etc.
68
74
 
75
+ **Properties:**
76
+
77
+ | Name | Type | Default | Description |
78
+ | ----------------------- | --------- | ------- | ----------- |
79
+ | `name` | `string` | | |
80
+ | `scopeName` | `string` | | |
81
+ | `nameWithoutScope` | `string` | | |
82
+ | `description` | `string` | | |
83
+ | `version` | `string` | | |
84
+ | `isVersionUserProvided` | `boolean` | | |
85
+
69
86
  ### `add-credentials`
70
87
 
71
88
  **Type:** `boolean`
72
89
 
73
- We support two types of authentication: Azure Key Credential(AzureKey) and Token credential(AADToken), any other will need to be handled manually.
90
+ We support two types of authentication: Azure Key Credential(AzureKey) and Token credential(AADToken), any other will need to be handled manually.
74
91
 
75
- There are two ways to set up our credential details
92
+ There are two ways to set up our credential details
76
93
 
77
- - To use `@useAuth` decorator in TypeSpec
78
- - To config in yaml file
94
+ - To use `@useAuth` decorator in TypeSpec
95
+ - To config in yaml file
79
96
 
80
- Please notice defining in TypeSpec is recommended and also has higher priority than second one.
97
+ Please notice defining in TypeSpec is recommended and also has higher priority than second one.
81
98
 
82
- To enable credential in `tspconfig.yaml` and we need to provide more details to let codegen know types.
99
+ To enable credential in `tspconfig.yaml` and we need to provide more details to let codegen know types.
83
100
 
84
101
  ### `credential-scopes`
85
102
 
86
- **Type:** `array`
103
+ **Type:** `string[]`
87
104
 
88
105
  If we enable the option `add-credentials` and specify `credential-scopes` the details we would enable the AADToken authentication.
89
106
 
@@ -109,17 +126,18 @@ This option is used for special Key Auth, when the key has a shared prefix and t
109
126
 
110
127
  **Type:** `boolean`
111
128
 
112
- Whether to generate metadata files which includes package.json, README.md and tsconfig.json etc. Defaults to `undefined`. If there's not a package.json under package-dir, defaults to `true`. but if you'd like to disable this feature you could set it as `false`.
129
+ Whether to generate metadata files which includes package.json, README.md and tsconfig.json etc. Defaults to `undefined`. If there's not a package.json under package-dir, defaults to `true`. but if you'd like to disable this feature you could set it as `false`.
113
130
 
114
131
  ### `generate-test`
115
132
 
116
133
  **Type:** `boolean`
117
134
 
118
- Whether to generate test files, for basic testing of your generated sdks. Defaults to `undefined`.
119
- other cases:
120
- - If azure-sdk-for-js is `false`. Defaults to `false`.
121
- - If azure-sdk-for-js is `true` but there's a test folder under package-dir. Defaults to `false`.
122
- - If azure-sdk-for-js is `true` but there's not a test folder under package-dir. Defaults to `true`.
135
+ Whether to generate test files, for basic testing of your generated sdks. Defaults to `undefined`.
136
+ other cases:
137
+
138
+ - If azure-sdk-for-js is `false`. Defaults to `false`.
139
+ - If azure-sdk-for-js is `true` but there's a test folder under package-dir. Defaults to `false`.
140
+ - If azure-sdk-for-js is `true` but there's not a test folder under package-dir. Defaults to `true`.
123
141
 
124
142
  ### `generate-sample`
125
143
 
@@ -153,10 +171,17 @@ Deprecated option for RLC legacy generation.
153
171
 
154
172
  ### `dependency-info`
155
173
 
156
- **Type:** `object`
174
+ **Type:** `object { link, description }`
157
175
 
158
176
  Deprecated option for RLC legacy generation.
159
177
 
178
+ **Properties:**
179
+
180
+ | Name | Type | Default | Description |
181
+ | ------------- | -------- | ------- | ----------- |
182
+ | `link` | `string` | | |
183
+ | `description` | `string` | | |
184
+
160
185
  ### `product-doc-link`
161
186
 
162
187
  **Type:** `string`
@@ -165,10 +190,17 @@ Deprecated option for RLC legacy generation.
165
190
 
166
191
  ### `service-info`
167
192
 
168
- **Type:** `object`
193
+ **Type:** `object { title, description }`
169
194
 
170
195
  Deprecated option for RLC legacy generation.
171
196
 
197
+ **Properties:**
198
+
199
+ | Name | Type | Default | Description |
200
+ | ------------- | -------- | ------- | ----------- |
201
+ | `title` | `string` | | |
202
+ | `description` | `string` | | |
203
+
172
204
  ### `azure-arm`
173
205
 
174
206
  **Type:** `boolean`
@@ -185,6 +217,8 @@ Internal option, the value is default for TypeSpec generation
185
217
 
186
218
  **Type:** `boolean`
187
219
 
220
+ **Default:** `false`
221
+
188
222
  Whether to generate a Modular library. Defaults to `false`. Arm packages default to `true`.
189
223
 
190
224
  ### `enable-operation-group`
@@ -219,7 +253,9 @@ The flavor of the SDK.
219
253
 
220
254
  ### `module-kind`
221
255
 
222
- **Type:** `"esm" | "cjs"`
256
+ **Type:** `"esm"`
257
+
258
+ **Default:** `"esm"`
223
259
 
224
260
  Internal option for test.
225
261
 
@@ -229,6 +265,12 @@ Internal option for test.
229
265
 
230
266
  Whether to affect the generation of the additional property feature for the Modular client. Defaults to `false`.
231
267
 
268
+ ### `compatibility-lro`
269
+
270
+ **Type:** `boolean`
271
+
272
+ [deprecated] Whether to generate the legacy LRO interface. When `true`, we will generate legacy beginXXX and beginXXXAndWait LRO methods.
273
+
232
274
  ### `experimental-extensible-enums`
233
275
 
234
276
  **Type:** `boolean`
@@ -272,14 +314,44 @@ Deprecated option for RLC legacy generation.
272
314
  Only for Modular generation
273
315
  By default, code generation uses the titles specified in the `@client` and `@service` decorators in TypeSpec to name modular clients. If you need to override these names, you can configure the `typespec-title-map`. The map's keys represent the original client names from TypeSpec, and the values are the desired client names. This configuration supports renaming multiple clients.
274
316
 
275
- ```yaml
276
- typespec-title-map:
277
- AnomalyDetectorClient: AnomalyDetectorRest
278
- AnomalyDetectorClient2: AnomalyDetectorRest2
279
- ```
317
+ ```yaml
318
+ typespec-title-map:
319
+ AnomalyDetectorClient: AnomalyDetectorRest
320
+ AnomalyDetectorClient2: AnomalyDetectorRest2
321
+ ```
280
322
 
281
323
  ### `should-use-pnpm-dep`
282
324
 
283
325
  **Type:** `boolean`
284
326
 
285
327
  Internal option for test.
328
+
329
+ ### `ignore-nullable-on-optional`
330
+
331
+ **Type:** `boolean`
332
+
333
+ If an optional property is also marked as nullable, it will be treated as just optional. Defaults to `true` for Azure services.
334
+
335
+ ### `wrap-non-model-return`
336
+
337
+ **Type:** `boolean`
338
+
339
+ When set to true (default for Azure services), non-model return types (arrays, scalars, enums, bytes with binary content type) will be wrapped in an XxxResponse type for HLC backward compatibility during TypeSpec migration.
340
+
341
+ ### `enable-storage-compat`
342
+
343
+ **Type:** `boolean`
344
+
345
+ When enabled, every regular (non-LRO, non-paging) operation return type is augmented with a `_response` property containing `rawResponse` (PathUncheckedResponse), `parsedBody`, and `parsedHeaders`. Defaults to `false`.
346
+
347
+ ### `treat-unknown-as-record`
348
+
349
+ **Type:** `boolean`
350
+
351
+ When set to true, TypeSpec `unknown` type will be translated to `Record<string, unknown>` instead of `any` in the generated Modular SDK. This is useful when migrating from HLC where `unknown` in swagger mapped to `Record<string, unknown>`. (Modular SDK only) Defaults to `false`.
352
+
353
+ ### `generate-react-native-target`
354
+
355
+ **Type:** `boolean`
356
+
357
+ When set to true, generates React Native build targets (tsconfig, warp target, package.json exports). Only applicable when azure-sdk-for-js is true. Defaults to `false`.
@@ -1 +1 @@
1
- {"version":3,"file":"binder.d.ts","sourceRoot":"","sources":["../../../../src/framework/hooks/binder.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,OAAO,EACP,UAAU,EAEX,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAoB,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAInF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACnD;qFACiF;IACjF,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,MAAM;IACrB;;;;;;OAMG;IACH,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC;IAChF,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1C,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnE;AA0VD,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAInF;AAWD;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC"}
1
+ {"version":3,"file":"binder.d.ts","sourceRoot":"","sources":["../../../../src/framework/hooks/binder.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,OAAO,EACP,UAAU,EAEX,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAoB,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAInF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACnD;qFACiF;IACjF,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,MAAM;IACrB;;;;;;OAMG;IACH,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC;IAChF,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1C,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnE;AA0VD,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAInF;AAWD;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC"}
@@ -1,5 +1,4 @@
1
- import { normalizePath } from "@typespec/compiler";
2
- import path from "path/posix";
1
+ import { joinPaths, normalizePath } from "@typespec/compiler";
3
2
  import { StructureKind, } from "ts-morph";
4
3
  import { provideContext, useContext } from "../../context-manager.js";
5
4
  import { generateLocallyUniqueName } from "../../modular/helpers/naming-helpers.js";
@@ -258,7 +257,7 @@ class BinderImp {
258
257
  }
259
258
  }
260
259
  // Also keep files that are imported by any used helper file
261
- const helperFiles = this.project.getSourceFiles(normalizePath(path.join(sourceRoot, "static-helpers/**/*.*ts")));
260
+ const helperFiles = this.project.getSourceFiles(normalizePath(joinPaths(sourceRoot, "static-helpers/**/*.*ts")));
262
261
  const usedFiles = helperFiles.filter((file) => !isFileUnused(file, usedHelperNames));
263
262
  for (const usedFile of usedFiles) {
264
263
  for (const importDecl of usedFile.getImportDeclarations()) {
@@ -279,7 +278,7 @@ class BinderImp {
279
278
  }
280
279
  this.project
281
280
  //normalizae the final path to adapt to different systems
282
- .getSourceFiles(normalizePath(path.join(testRoot, "test/generated/util/**/*.*ts")))
281
+ .getSourceFiles(normalizePath(joinPaths(testRoot, "test/generated/util/**/*.*ts")))
283
282
  .filter((file) => isFileUnused(file, usedHelperNames))
284
283
  .forEach((helperFile) => helperFile.delete());
285
284
  }
@@ -1 +1 @@
1
- {"version":3,"file":"binder.js","sourceRoot":"","sources":["../../../../src/framework/hooks/binder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binder.js","sourceRoot":"","sources":["../../../../src/framework/hooks/binder.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Program } from "@typespec/compiler";
1
+ import { type CompilerHost, Program } from "@typespec/compiler";
2
2
  import { Project, SourceFile } from "ts-morph";
3
3
  import { ModularEmitterOptions } from "../modular/interfaces.js";
4
4
  export declare const SourceFileSymbol: unique symbol;
@@ -15,6 +15,9 @@ export interface LoadStaticHelpersOptions extends Partial<ModularEmitterOptions>
15
15
  sourcesDir?: string;
16
16
  rootDir?: string;
17
17
  program?: Program;
18
+ host?: CompilerHost;
19
+ /** The emitter package root directory (where static/ lives). */
20
+ packageRoot?: string;
18
21
  /** When true, also load test helpers from static/test-helpers/ into test/generated/util/ */
19
22
  loadTestHelpers?: boolean;
20
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"load-static-helpers.d.ts","sourceRoot":"","sources":["../../../src/framework/load-static-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,EAKL,OAAO,EACP,UAAU,EAEX,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAIjE,eAAO,MAAM,gBAAgB,eAAuB,CAAC;AACrD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,gBAAgB,CAAC,CAAC,EAAE,UAAU,CAAC;CACjC;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,GAAG,GAAG,QAAQ,IAAI,oBAAoB,CAItF;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAKjE,MAAM,WAAW,wBAAyB,SAAQ,OAAO,CAAC,qBAAqB,CAAC;IAC9E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4FAA4F;IAC5F,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAOD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAoF5C"}
1
+ {"version":3,"file":"load-static-helpers.d.ts","sourceRoot":"","sources":["../../../src/framework/load-static-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAuB,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAKL,OAAO,EACP,UAAU,EAEX,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAIjE,eAAO,MAAM,gBAAgB,eAAuB,CAAC;AACrD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,gBAAgB,CAAC,CAAC,EAAE,UAAU,CAAC;CACjC;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,GAAG,GAAG,QAAQ,IAAI,oBAAoB,CAItF;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAKjE,MAAM,WAAW,wBAAyB,SAAQ,OAAO,CAAC,qBAAqB,CAAC;IAC9E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4FAA4F;IAC5F,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAOD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CA0F5C"}
@@ -1,6 +1,4 @@
1
- import { NoTarget } from "@typespec/compiler";
2
- import { readdir, readFile, stat } from "fs/promises";
3
- import * as path from "path";
1
+ import { joinPaths, NoTarget } from "@typespec/compiler";
4
2
  import { reportDiagnostic } from "../lib.js";
5
3
  import { isAzurePackage } from "../rlc-common/index.js";
6
4
  import { resolveProjectRoot } from "../utils/resolve-project-root.js";
@@ -13,22 +11,28 @@ const DEFAULT_SOURCES_STATIC_HELPERS_PATH = "static/static-helpers";
13
11
  const DEFAULT_SOURCES_TESTING_HELPERS_PATH = "static/test-helpers";
14
12
  export async function loadStaticHelpers(project, helpers, options = {}) {
15
13
  const helpersMap = new Map();
14
+ const host = options.host ?? options.program?.host;
15
+ if (!host) {
16
+ throw new Error("loadStaticHelpers requires either a host or program in options to access the file system.");
17
+ }
18
+ const packageRoot = options.packageRoot ?? resolveProjectRoot();
16
19
  // Load static helpers used in sources code
17
- const defaultStaticHelpersPath = path.join(resolveProjectRoot(), DEFAULT_SOURCES_STATIC_HELPERS_PATH);
18
- const filesInSources = await traverseDirectory(options.helpersAssetDirectory ?? defaultStaticHelpersPath, options.program);
20
+ const defaultStaticHelpersPath = joinPaths(packageRoot, DEFAULT_SOURCES_STATIC_HELPERS_PATH);
21
+ const filesInSources = await traverseDirectory(options.helpersAssetDirectory ?? defaultStaticHelpersPath, host, options.program);
19
22
  await loadFiles(filesInSources, options.sourcesDir ?? "");
20
23
  // Load static helpers used in testing code (only when loadTestHelpers is enabled)
21
24
  if (options.loadTestHelpers ??
22
25
  (options.options?.generateTest && isAzurePackage({ options: options.options }))) {
23
- const defaultTestingHelpersPath = path.join(resolveProjectRoot(), DEFAULT_SOURCES_TESTING_HELPERS_PATH);
24
- const filesInTestings = await traverseDirectory(defaultTestingHelpersPath, options.program, [], "", "test/generated/util");
26
+ const defaultTestingHelpersPath = joinPaths(packageRoot, DEFAULT_SOURCES_TESTING_HELPERS_PATH);
27
+ const filesInTestings = await traverseDirectory(defaultTestingHelpersPath, host, options.program, [], "", "test/generated/util");
25
28
  await loadFiles(filesInTestings, options.rootDir ?? "");
26
29
  }
27
30
  return assertAllHelpersLoadedPresent(helpersMap);
28
31
  async function loadFiles(files, generateDir) {
29
32
  for (const file of files) {
30
- const targetPath = path.join(generateDir, file.target);
31
- const contents = await readFile(file.source, "utf-8");
33
+ const targetPath = joinPaths(generateDir, file.target);
34
+ const sourceFile = await host.readFile(file.source);
35
+ const contents = sourceFile.text;
32
36
  const addedFile = project.createSourceFile(targetPath, contents, {
33
37
  overwrite: true,
34
38
  });
@@ -101,17 +105,17 @@ function getDeclarationByMetadata(file, declaration) {
101
105
  }
102
106
  }
103
107
  const _targetStaticHelpersBaseDir = "static-helpers";
104
- async function traverseDirectory(directory, program, result = [], relativePath = "", targetBaseDir = _targetStaticHelpersBaseDir) {
108
+ async function traverseDirectory(directory, host, program, result = [], relativePath = "", targetBaseDir = _targetStaticHelpersBaseDir) {
105
109
  try {
106
- const files = await readdir(directory);
110
+ const files = await host.readDir(directory);
107
111
  await Promise.all(files.map(async (file) => {
108
- const filePath = path.join(directory, file);
109
- const fileStat = await stat(filePath);
112
+ const filePath = joinPaths(directory, file);
113
+ const fileStat = await host.stat(filePath);
110
114
  if (fileStat.isDirectory()) {
111
- await traverseDirectory(filePath, program, result, path.join(relativePath, file), targetBaseDir);
115
+ await traverseDirectory(filePath, host, program, result, joinPaths(relativePath, file), targetBaseDir);
112
116
  }
113
117
  else if (fileStat.isFile() && !file.endsWith(".d.ts") && /.*\..?ts$/.test(file)) {
114
- const target = path.join(targetBaseDir, relativePath, file);
118
+ const target = joinPaths(targetBaseDir, relativePath, file);
115
119
  result.push({ source: filePath, target });
116
120
  }
117
121
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"load-static-helpers.js","sourceRoot":"","sources":["../../../src/framework/load-static-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"load-static-helpers.js","sourceRoot":"","sources":["../../../src/framework/load-static-helpers.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { addDeclaration } from "./declaration.js";
3
3
  import { useBinder } from "./hooks/binder.js";
4
4
  import { resolveReference } from "./reference.js";
5
5
  // Create a new ts-morph project
6
- const project = new Project();
6
+ const project = new Project({ useInMemoryFileSystem: true });
7
7
  // Create a source file
8
8
  const sourceFile = project.createSourceFile("test.ts", "", { overwrite: true });
9
9
  // Initialize the binder
@@ -1 +1 @@
1
- {"version":3,"file":"sample.js","sourceRoot":"","sources":["../../../src/framework/sample.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,OAAO,EACP,aAAa,GACd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,gCAAgC;AAChC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,uBAAuB;AACvB,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAEhF,wBAAwB;AACxB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;AAE3B,mHAAmH;AACnH,+JAA+J;AAC/J,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,aAAa;IACnB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;CAC7C,CAAC;AAEF,0BAA0B;AAC1B,MAAM,YAAY,GAAG;IACnB,IAAI,EAAE,YAAY;IAClB,UAAU,EAAE,MAAM;IAClB,IAAI,EAAE,6BAA6B;CACpC,CAAC;AAEF,mKAAmK;AACnK,MAAM,oBAAoB,GAAkC;IAC1D,IAAI,EAAE,aAAa,CAAC,SAAS;IAC7B,IAAI,EAAE,SAAS,CAAC,IAAI;IACpB,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;KACb,CAAC,CAAC;CACJ,CAAC;AAEF,0CAA0C;AAC1C,MAAM,mBAAmB,GAAiC;IACxD,IAAI,EAAE,aAAa,CAAC,QAAQ;IAC5B,IAAI,EAAE,YAAY,CAAC,IAAI;IACvB,UAAU,EAAE,YAAY,CAAC,UAAU;IACnC,UAAU,EAAE,YAAY,CAAC,IAAI;CAC9B,CAAC;AAEF,6IAA6I;AAC7I,yIAAyI;AACzI,cAAc,CAAC,UAAU,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC;AAC5D,cAAc,CAAC,UAAU,EAAE,mBAAmB,EAAE,YAAY,CAAC,CAAC;AAE9D,6BAA6B;AAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,EAAE,EAAE;IAC3D,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC;AAEH,sDAAsD;AACtD,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACzD,MAAM,cAAc,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAEnD,WAAW,CAAC,aAAa,CAAC,GAAG,iBAAiB,KAAK,CAAC,CAAC;AACrD,WAAW,CAAC,aAAa,CAAC,YAAY,cAAc,eAAe,CAAC,CAAC;AAErE,6CAA6C;AAC7C,MAAM,CAAC,oBAAoB,CAAC,2BAA2B,CAAC,CAAC;AAEzD,SAAS;AACT,UAAU;AACV,0BAA0B;AAC1B,kBAAkB;AAClB,IAAI;AAEJ,gCAAgC;AAChC,kCAAkC;AAClC,IAAI;AAEJ,cAAc;AACd,oDAAoD;AAEpD,gBAAgB;AAChB,oCAAoC"}
1
+ {"version":3,"file":"sample.js","sourceRoot":"","sources":["../../../src/framework/sample.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,OAAO,EACP,aAAa,GACd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,gCAAgC;AAChC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC;AAE7D,uBAAuB;AACvB,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAEhF,wBAAwB;AACxB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;AAE3B,mHAAmH;AACnH,+JAA+J;AAC/J,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,aAAa;IACnB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;CAC7C,CAAC;AAEF,0BAA0B;AAC1B,MAAM,YAAY,GAAG;IACnB,IAAI,EAAE,YAAY;IAClB,UAAU,EAAE,MAAM;IAClB,IAAI,EAAE,6BAA6B;CACpC,CAAC;AAEF,mKAAmK;AACnK,MAAM,oBAAoB,GAAkC;IAC1D,IAAI,EAAE,aAAa,CAAC,SAAS;IAC7B,IAAI,EAAE,SAAS,CAAC,IAAI;IACpB,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;KACb,CAAC,CAAC;CACJ,CAAC;AAEF,0CAA0C;AAC1C,MAAM,mBAAmB,GAAiC;IACxD,IAAI,EAAE,aAAa,CAAC,QAAQ;IAC5B,IAAI,EAAE,YAAY,CAAC,IAAI;IACvB,UAAU,EAAE,YAAY,CAAC,UAAU;IACnC,UAAU,EAAE,YAAY,CAAC,IAAI;CAC9B,CAAC;AAEF,6IAA6I;AAC7I,yIAAyI;AACzI,cAAc,CAAC,UAAU,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC;AAC5D,cAAc,CAAC,UAAU,EAAE,mBAAmB,EAAE,YAAY,CAAC,CAAC;AAE9D,6BAA6B;AAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,EAAE,EAAE;IAC3D,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC;AAEH,sDAAsD;AACtD,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACzD,MAAM,cAAc,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAEnD,WAAW,CAAC,aAAa,CAAC,GAAG,iBAAiB,KAAK,CAAC,CAAC;AACrD,WAAW,CAAC,aAAa,CAAC,YAAY,cAAc,eAAe,CAAC,CAAC;AAErE,6CAA6C;AAC7C,MAAM,CAAC,oBAAoB,CAAC,2BAA2B,CAAC,CAAC;AAEzD,SAAS;AACT,UAAU;AACV,0BAA0B;AAC1B,kBAAkB;AAClB,IAAI;AAEJ,gCAAgC;AAChC,kCAAkC;AAClC,IAAI;AAEJ,cAAc;AACd,oDAAoD;AAEpD,gBAAgB;AAChB,oCAAoC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAW,MAAM,oBAAoB,CAAC;AAsE1D,OAAO,EAAuB,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExE,OAAO,EACL,aAAa,EACb,mBAAmB,EAGpB,MAAM,6CAA6C,CAAC;AAsBrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAWhE,cAAc,UAAU,CAAC;AAEzB,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,iBAmjBjD;AAED,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GACxC,OAAO,CAAC,UAAU,CAAC,CA2BrB;AAQD,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAC1C,cAAc,EAAE,qBAAqB,iBAQtC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,WAAW,EAOZ,MAAM,oBAAoB,CAAC;AAsE5B,OAAO,EAAuB,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExE,OAAO,EACL,aAAa,EACb,mBAAmB,EAGpB,MAAM,6CAA6C,CAAC;AAoBrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAWhE,cAAc,UAAU,CAAC;AAEzB,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,iBA8kBjD;AAED,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GACxC,OAAO,CAAC,UAAU,CAAC,CA2BrB;AAQD,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAC1C,cAAc,EAAE,qBAAqB,iBAQtC"}
package/dist/src/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
+ import { getBaseFileName, getDirectoryPath, joinPaths, resolvePath, } from "@typespec/compiler";
3
4
  import { provideContext, useContext } from "./context-manager.js";
4
5
  import { buildRootIndex, buildSubClientIndexFile } from "./modular/build-root-index.js";
5
6
  import { AzureCoreDependencies, AzureIdentityDependencies, AzurePollingDependencies, AzureTestDependencies, DefaultCoreDependencies, } from "./modular/external-dependencies.js";
@@ -8,8 +9,6 @@ import { buildApiExtractorConfig, buildChangelogFile, buildClient, buildClientDe
8
9
  import { emitContentByBuilder, emitModels } from "./utils/emit-util.js";
9
10
  import { clearDirectory, emptyDir, pathExists } from "./utils/file-system-utils.js";
10
11
  import { createSdkContext, listAllServiceNamespaces, } from "@azure-tools/typespec-client-generator-core";
11
- import { existsSync } from "fs";
12
- import { basename, join } from "path";
13
12
  import { Project } from "ts-morph";
14
13
  import { provideBinder } from "./framework/hooks/binder.js";
15
14
  import { provideSdkTypes } from "./framework/hooks/sdk-types.js";
@@ -39,8 +38,15 @@ export async function $onEmit(context) {
39
38
  return;
40
39
  }
41
40
  /** Shared status */
42
- const outputProject = new Project();
41
+ const outputProject = new Project({ useInMemoryFileSystem: true });
43
42
  const program = context.program;
43
+ const host = program.host;
44
+ // Derive the emitter package root from the compiler's resolved emitter entry point.
45
+ // This works correctly in both Node.js and the browser playground VFS.
46
+ const emitterRef = program.emitters.find((e) => e.metadata.name === "@azure-tools/typespec-ts");
47
+ const emitterPackageRoot = emitterRef
48
+ ? resolvePath(getDirectoryPath(emitterRef.main), "../..")
49
+ : undefined;
44
50
  const emitterOptions = context.options;
45
51
  const dpgContext = await createContextWithDefaultOptions(context);
46
52
  // Report any diagnostics from TCGC
@@ -76,6 +82,8 @@ export async function $onEmit(context) {
76
82
  rootDir: dpgContext.generationPathDetail?.rootDir,
77
83
  options: rlcOptions,
78
84
  program,
85
+ host,
86
+ packageRoot: emitterPackageRoot,
79
87
  });
80
88
  const extraDependencies = isAzurePackage({ options: rlcOptions })
81
89
  ? {
@@ -125,9 +133,9 @@ export async function $onEmit(context) {
125
133
  // clear output folder if needed
126
134
  if (options.clearOutputFolder) {
127
135
  // Clear output directory while preserving TempTypeSpecFiles
128
- await clearDirectory(context.emitterOutputDir, ["TempTypeSpecFiles"], program);
136
+ await clearDirectory(host, context.emitterOutputDir, ["TempTypeSpecFiles"], program);
129
137
  }
130
- const hasTestFolder = await pathExists(join(dpgContext.generationPathDetail?.metadataDir ?? "", "test"));
138
+ const hasTestFolder = await pathExists(host, joinPaths(dpgContext.generationPathDetail?.metadataDir ?? "", "test"));
131
139
  options.generateTest =
132
140
  options.generateTest === true ||
133
141
  (options.generateTest === undefined &&
@@ -137,15 +145,15 @@ export async function $onEmit(context) {
137
145
  }
138
146
  async function calculateGenerationDir() {
139
147
  const projectRoot = context.emitterOutputDir ?? "";
140
- const customizationFolder = join(projectRoot, "generated");
141
- const srcGeneratedFolder = join(projectRoot, "src", "generated");
148
+ const customizationFolder = joinPaths(projectRoot, "generated");
149
+ const srcGeneratedFolder = joinPaths(projectRoot, "src", "generated");
142
150
  // if customization folder exists, use it as sources root
143
- const finalCustomizationFolder = (await pathExists(srcGeneratedFolder))
151
+ const finalCustomizationFolder = (await pathExists(host, srcGeneratedFolder))
144
152
  ? srcGeneratedFolder
145
153
  : customizationFolder;
146
- const sourcesRoot = (await pathExists(finalCustomizationFolder))
154
+ const sourcesRoot = (await pathExists(host, finalCustomizationFolder))
147
155
  ? finalCustomizationFolder
148
- : join(projectRoot, "src");
156
+ : joinPaths(projectRoot, "src");
149
157
  return {
150
158
  rootDir: projectRoot,
151
159
  metadataDir: projectRoot,
@@ -154,15 +162,15 @@ export async function $onEmit(context) {
154
162
  };
155
163
  }
156
164
  async function clearSrcFolder() {
157
- await emptyDir(dpgContext.generationPathDetail?.modularSourcesDir ??
165
+ await emptyDir(host, dpgContext.generationPathDetail?.modularSourcesDir ??
158
166
  dpgContext.generationPathDetail?.rlcSourcesDir ??
159
167
  "");
160
168
  }
161
169
  async function clearSamplesDevFolder() {
162
170
  if (emitterOptions["generate-sample"] === true) {
163
- const samplesDevPath = join(dpgContext.generationPathDetail?.rootDir ?? "", "samples-dev");
164
- if (await pathExists(samplesDevPath)) {
165
- await emptyDir(samplesDevPath);
171
+ const samplesDevPath = joinPaths(dpgContext.generationPathDetail?.rootDir ?? "", "samples-dev");
172
+ if (await pathExists(host, samplesDevPath)) {
173
+ await emptyDir(host, samplesDevPath);
166
174
  }
167
175
  }
168
176
  }
@@ -209,7 +217,7 @@ export async function $onEmit(context) {
209
217
  // platform-types (and its browser/react-native variants); emit those
210
218
  // files directly under src/ (strip the static-helpers/ segment) to match
211
219
  // the RLC design where all generated output lives in src/.
212
- if (!basename(filePath).startsWith("platform-types")) {
220
+ if (!getBaseFileName(filePath).startsWith("platform-types")) {
213
221
  continue;
214
222
  }
215
223
  const outputPath = filePath.replace(/\/static-helpers\//g, "/");
@@ -318,18 +326,18 @@ export async function $onEmit(context) {
318
326
  // to avoid unexpected modifications to files like package.json, README.md,
319
327
  // warp.config.yml, and snippets.spec.ts. metadata.json is still updated.
320
328
  const sourcesDir = dpgContext.generationPathDetail?.modularSourcesDir ?? "";
321
- const hasManualConvenienceLayer = basename(sourcesDir) === "generated";
329
+ const hasManualConvenienceLayer = getBaseFileName(sourcesDir) === "generated";
322
330
  const isAzureFlavor = isAzurePackage({ options: option });
323
331
  // Generate metadata
324
- const existingPackageFilePath = join(dpgContext.generationPathDetail?.metadataDir ?? "", "package.json");
325
- const hasPackageFile = await existsSync(existingPackageFilePath);
326
- const existingReadmeFilePath = join(dpgContext.generationPathDetail?.metadataDir ?? "", "README.md");
327
- const hasReadmeFile = await existsSync(existingReadmeFilePath);
328
- const existingChangelogFilePath = join(dpgContext.generationPathDetail?.metadataDir ?? "", "CHANGELOG.md");
329
- const hasChangelogFile = await existsSync(existingChangelogFilePath);
332
+ const existingPackageFilePath = joinPaths(dpgContext.generationPathDetail?.metadataDir ?? "", "package.json");
333
+ const hasPackageFile = await pathExists(host, existingPackageFilePath);
334
+ const existingReadmeFilePath = joinPaths(dpgContext.generationPathDetail?.metadataDir ?? "", "README.md");
335
+ const hasReadmeFile = await pathExists(host, existingReadmeFilePath);
336
+ const existingChangelogFilePath = joinPaths(dpgContext.generationPathDetail?.metadataDir ?? "", "CHANGELOG.md");
337
+ const hasChangelogFile = await pathExists(host, existingChangelogFilePath);
330
338
  const shouldGenerateMetadata = option.generateMetadata === true || !hasPackageFile;
331
- const existingTestFolderPath = join(dpgContext.generationPathDetail?.metadataDir ?? "", "test");
332
- const hasTestFolder = await existsSync(existingTestFolderPath);
339
+ const existingTestFolderPath = joinPaths(dpgContext.generationPathDetail?.metadataDir ?? "", "test");
340
+ const hasTestFolder = await pathExists(host, existingTestFolderPath);
333
341
  if (option.generateTest === undefined) {
334
342
  if (hasTestFolder) {
335
343
  option.generateTest = false;
@@ -367,7 +375,7 @@ export async function $onEmit(context) {
367
375
  if (emitterOptions["generate-test"] === true &&
368
376
  option.azureSdkForJs === true &&
369
377
  emitterOptions["generate-metadata"] === true) {
370
- await emitTests(dpgContext);
378
+ await emitTests(dpgContext, host);
371
379
  }
372
380
  let modularPackageInfo = {};
373
381
  if (option.isModularLibrary) {
@@ -454,7 +462,16 @@ export async function $onEmit(context) {
454
462
  // Always update package.json for monorepo packages (adds #platform/* imports)
455
463
  // and for modular packages (adds exports, clientContextPaths, LRO deps)
456
464
  if (option.isModularLibrary || option.azureSdkForJs) {
457
- updateBuilders.push((model) => updatePackageFile(model, existingPackageFilePath, modularPackageInfo));
465
+ // Read package.json content via host and pass parsed object
466
+ const pkgSourceFile = await host.readFile(existingPackageFilePath);
467
+ let packageInfo;
468
+ try {
469
+ packageInfo = JSON.parse(pkgSourceFile.text);
470
+ }
471
+ catch {
472
+ packageInfo = {};
473
+ }
474
+ updateBuilders.push((model) => updatePackageFile(model, packageInfo, modularPackageInfo));
458
475
  }
459
476
  // Update warp.config.yml for Azure monorepo packages
460
477
  if (option.azureSdkForJs) {
@@ -463,10 +480,12 @@ export async function $onEmit(context) {
463
480
  // If the client name changed, regenerate the README and snippets completely;
464
481
  // otherwise update only the API reference link in-place.
465
482
  if (hasReadmeFile) {
466
- const clientNameChanged = hasClientNameChanged(rlcClient, existingReadmeFilePath);
483
+ const readmeSourceFile = await host.readFile(existingReadmeFilePath);
484
+ const existingReadmeContent = readmeSourceFile.text;
485
+ const clientNameChanged = hasClientNameChanged(rlcClient, existingReadmeContent);
467
486
  updateBuilders.push(clientNameChanged
468
487
  ? buildReadmeFile
469
- : (model) => updateReadmeFile(model, existingReadmeFilePath));
488
+ : (model) => updateReadmeFile(model, existingReadmeContent));
470
489
  // Regenerate snippets.spec.ts only when the client name changed
471
490
  if (clientNameChanged && option.azureSdkForJs) {
472
491
  for (const subClient of dpgContext.sdkPackage.clients) {