@azure-tools/typespec-ts 0.55.0-dev.3 → 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 (80) hide show
  1. package/dist/src/framework/load-static-helpers.d.ts +4 -1
  2. package/dist/src/framework/load-static-helpers.d.ts.map +1 -1
  3. package/dist/src/framework/load-static-helpers.js +15 -10
  4. package/dist/src/framework/load-static-helpers.js.map +1 -1
  5. package/dist/src/framework/sample.js +1 -1
  6. package/dist/src/framework/sample.js.map +1 -1
  7. package/dist/src/index.d.ts.map +1 -1
  8. package/dist/src/index.js +37 -18
  9. package/dist/src/index.js.map +1 -1
  10. package/dist/src/modular/emit-tests.d.ts +2 -1
  11. package/dist/src/modular/emit-tests.d.ts.map +1 -1
  12. package/dist/src/modular/emit-tests.js +18 -8
  13. package/dist/src/modular/emit-tests.js.map +1 -1
  14. package/dist/src/rlc-common/build-client-definitions.js +1 -1
  15. package/dist/src/rlc-common/build-client-definitions.js.map +1 -1
  16. package/dist/src/rlc-common/build-client.js +1 -1
  17. package/dist/src/rlc-common/build-client.js.map +1 -1
  18. package/dist/src/rlc-common/build-index-file.js +1 -1
  19. package/dist/src/rlc-common/build-index-file.js.map +1 -1
  20. package/dist/src/rlc-common/build-is-unexpected-helper.js +1 -1
  21. package/dist/src/rlc-common/build-is-unexpected-helper.js.map +1 -1
  22. package/dist/src/rlc-common/build-logger.js +1 -1
  23. package/dist/src/rlc-common/build-logger.js.map +1 -1
  24. package/dist/src/rlc-common/build-parameter-types.js +1 -1
  25. package/dist/src/rlc-common/build-parameter-types.js.map +1 -1
  26. package/dist/src/rlc-common/build-response-types.js +1 -1
  27. package/dist/src/rlc-common/build-response-types.js.map +1 -1
  28. package/dist/src/rlc-common/build-schema-type.js +1 -1
  29. package/dist/src/rlc-common/build-schema-type.js.map +1 -1
  30. package/dist/src/rlc-common/build-top-level-index-file.js +1 -1
  31. package/dist/src/rlc-common/build-top-level-index-file.js.map +1 -1
  32. package/dist/src/rlc-common/metadata/build-api-extractor-config.js +1 -1
  33. package/dist/src/rlc-common/metadata/build-api-extractor-config.js.map +1 -1
  34. package/dist/src/rlc-common/metadata/build-es-lint-config.js +1 -1
  35. package/dist/src/rlc-common/metadata/build-es-lint-config.js.map +1 -1
  36. package/dist/src/rlc-common/metadata/build-package-file.js +1 -1
  37. package/dist/src/rlc-common/metadata/build-package-file.js.map +1 -1
  38. package/dist/src/rlc-common/metadata/build-readme-file.d.ts +2 -2
  39. package/dist/src/rlc-common/metadata/build-readme-file.d.ts.map +1 -1
  40. package/dist/src/rlc-common/metadata/build-readme-file.js +5 -8
  41. package/dist/src/rlc-common/metadata/build-readme-file.js.map +1 -1
  42. package/dist/src/rlc-common/metadata/build-rollup-config.js +1 -1
  43. package/dist/src/rlc-common/metadata/build-rollup-config.js.map +1 -1
  44. package/dist/src/rlc-common/metadata/build-ts-config.js +1 -1
  45. package/dist/src/rlc-common/metadata/build-ts-config.js.map +1 -1
  46. package/dist/src/utils/emit-util.d.ts.map +1 -1
  47. package/dist/src/utils/emit-util.js +7 -1
  48. package/dist/src/utils/emit-util.js.map +1 -1
  49. package/dist/src/utils/file-system-utils.d.ts +4 -4
  50. package/dist/src/utils/file-system-utils.d.ts.map +1 -1
  51. package/dist/src/utils/file-system-utils.js +12 -13
  52. package/dist/src/utils/file-system-utils.js.map +1 -1
  53. package/dist/src/utils/resolve-project-root.d.ts +6 -4
  54. package/dist/src/utils/resolve-project-root.d.ts.map +1 -1
  55. package/dist/src/utils/resolve-project-root.js +11 -16
  56. package/dist/src/utils/resolve-project-root.js.map +1 -1
  57. package/dist/tsconfig.tsbuildinfo +1 -1
  58. package/package.json +1 -1
  59. package/src/framework/load-static-helpers.ts +25 -13
  60. package/src/framework/sample.ts +1 -1
  61. package/src/index.ts +44 -16
  62. package/src/modular/emit-tests.ts +22 -9
  63. package/src/rlc-common/build-client-definitions.ts +1 -1
  64. package/src/rlc-common/build-client.ts +1 -1
  65. package/src/rlc-common/build-index-file.ts +1 -1
  66. package/src/rlc-common/build-is-unexpected-helper.ts +1 -1
  67. package/src/rlc-common/build-logger.ts +1 -1
  68. package/src/rlc-common/build-parameter-types.ts +1 -1
  69. package/src/rlc-common/build-response-types.ts +1 -1
  70. package/src/rlc-common/build-schema-type.ts +1 -1
  71. package/src/rlc-common/build-top-level-index-file.ts +1 -1
  72. package/src/rlc-common/metadata/build-api-extractor-config.ts +1 -1
  73. package/src/rlc-common/metadata/build-es-lint-config.ts +1 -1
  74. package/src/rlc-common/metadata/build-package-file.ts +1 -1
  75. package/src/rlc-common/metadata/build-readme-file.ts +5 -8
  76. package/src/rlc-common/metadata/build-rollup-config.ts +1 -1
  77. package/src/rlc-common/metadata/build-ts-config.ts +1 -1
  78. package/src/utils/emit-util.ts +7 -4
  79. package/src/utils/file-system-utils.ts +13 -13
  80. package/src/utils/resolve-project-root.ts +11 -22
@@ -1,38 +1,37 @@
1
1
  import { NoTarget, resolvePath } from "@typespec/compiler";
2
- import { mkdir, readdir, rm, stat } from "fs/promises";
3
2
  import { reportDiagnostic } from "../lib.js";
4
- export async function pathExists(targetPath) {
3
+ export async function pathExists(host, targetPath) {
5
4
  try {
6
- await stat(targetPath);
5
+ await host.stat(targetPath);
7
6
  return true;
8
7
  }
9
8
  catch {
10
9
  return false;
11
10
  }
12
11
  }
13
- export async function emptyDir(dirPath) {
12
+ export async function emptyDir(host, dirPath) {
14
13
  let entries;
15
14
  try {
16
- entries = await readdir(dirPath);
15
+ entries = await host.readDir(dirPath);
17
16
  }
18
17
  catch {
19
- await mkdir(dirPath, { recursive: true });
18
+ await host.mkdirp(dirPath);
20
19
  return;
21
20
  }
22
- await Promise.all(entries.map((entry) => rm(resolvePath(dirPath, entry), { recursive: true, force: true })));
21
+ await Promise.all(entries.map((entry) => host.rm(resolvePath(dirPath, entry), { recursive: true })));
23
22
  }
24
- export async function clearDirectory(dirPath, excludeNames = [], program) {
25
- if (!(await pathExists(dirPath))) {
23
+ export async function clearDirectory(host, dirPath, excludeNames = [], program) {
24
+ if (!(await pathExists(host, dirPath))) {
26
25
  return;
27
26
  }
28
27
  // If no exclude names, just use regular emptyDir for efficiency
29
28
  if (excludeNames.length === 0) {
30
- await emptyDir(dirPath);
29
+ await emptyDir(host, dirPath);
31
30
  return;
32
31
  }
33
32
  try {
34
33
  // Get all subdirectories and files
35
- const entries = await readdir(dirPath);
34
+ const entries = await host.readDir(dirPath);
36
35
  // Filter entries to exclude those that should be preserved
37
36
  const filteredEntries = entries.filter((entry) => {
38
37
  return !excludeNames.includes(entry);
@@ -40,7 +39,7 @@ export async function clearDirectory(dirPath, excludeNames = [], program) {
40
39
  // Process each entry
41
40
  for (const entry of filteredEntries) {
42
41
  const entryPath = resolvePath(dirPath, entry);
43
- await rm(entryPath, { recursive: true, force: true });
42
+ await host.rm(entryPath, { recursive: true });
44
43
  }
45
44
  }
46
45
  catch (error) {
@@ -52,7 +51,7 @@ export async function clearDirectory(dirPath, excludeNames = [], program) {
52
51
  target: NoTarget,
53
52
  });
54
53
  }
55
- await emptyDir(dirPath);
54
+ await emptyDir(host, dirPath);
56
55
  }
57
56
  }
58
57
  //# sourceMappingURL=file-system-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-system-utils.js","sourceRoot":"","sources":["../../../src/utils/file-system-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAW,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAAkB;IACjD,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAe;IAC5C,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAC1F,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,eAAyB,EAAE,EAC3B,OAAiB;IAEjB,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO;IACT,CAAC;IAED,gEAAgE;IAChE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxB,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,mCAAmC;QACnC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QAEvC,2DAA2D;QAC3D,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/C,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,qBAAqB;QACrB,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC9C,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qDAAqD;QACrD,IAAI,OAAO,EAAE,CAAC;YACZ,gBAAgB,CAAC,OAAO,EAAE;gBACxB,IAAI,EAAE,2BAA2B;gBACjC,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACpD,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"file-system-utils.js","sourceRoot":"","sources":["../../../src/utils/file-system-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAW,WAAW,EAAqB,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAkB,EAAE,UAAkB;IACrE,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAkB,EAAE,OAAe;IAChE,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAClF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAkB,EAClB,OAAe,EACf,eAAyB,EAAE,EAC3B,OAAiB;IAEjB,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;QACvC,OAAO;IACT,CAAC;IAED,gEAAgE;IAChE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,mCAAmC;QACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE5C,2DAA2D;QAC3D,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/C,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,qBAAqB;QACrB,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC9C,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qDAAqD;QACrD,IAAI,OAAO,EAAE,CAAC;YACZ,gBAAgB,CAAC,OAAO,EAAE;gBACxB,IAAI,EAAE,2BAA2B;gBACjC,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACpD,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
@@ -1,7 +1,9 @@
1
1
  /**
2
- * Recursively finds the nearest package.json file starting from the specified directory.
3
- * @param {string} currentDir - The directory to start searching from. Defaults to the directory of the current module.
4
- * @returns {string} path to the directory containing the package.json file.
2
+ * Returns the package root directory for the emitter.
3
+ *
4
+ * The compiled output lives at `dist/src/utils/resolve-project-root.js`,
5
+ * so the package root is 3 levels up. This avoids filesystem access,
6
+ * making it compatible with virtual file systems (e.g., the playground).
5
7
  */
6
- export declare function resolveProjectRoot(currentDir?: string): string;
8
+ export declare function resolveProjectRoot(): string;
7
9
  //# sourceMappingURL=resolve-project-root.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-project-root.d.ts","sourceRoot":"","sources":["../../../src/utils/resolve-project-root.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,GAAE,MAAgD,GAC3D,MAAM,CAcR"}
1
+ {"version":3,"file":"resolve-project-root.d.ts","sourceRoot":"","sources":["../../../src/utils/resolve-project-root.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAK3C"}
@@ -1,20 +1,15 @@
1
- import { existsSync } from "fs";
2
- import { dirname, resolve } from "path";
3
- import { fileURLToPath } from "url";
1
+ import { resolvePath } from "@typespec/compiler";
4
2
  /**
5
- * Recursively finds the nearest package.json file starting from the specified directory.
6
- * @param {string} currentDir - The directory to start searching from. Defaults to the directory of the current module.
7
- * @returns {string} path to the directory containing the package.json file.
3
+ * Returns the package root directory for the emitter.
4
+ *
5
+ * The compiled output lives at `dist/src/utils/resolve-project-root.js`,
6
+ * so the package root is 3 levels up. This avoids filesystem access,
7
+ * making it compatible with virtual file systems (e.g., the playground).
8
8
  */
9
- export function resolveProjectRoot(currentDir = dirname(fileURLToPath(import.meta.url))) {
10
- const packageJsonPath = resolve(currentDir, "package.json");
11
- if (existsSync(packageJsonPath)) {
12
- return currentDir;
13
- }
14
- const parentDir = resolve(currentDir, "..");
15
- if (parentDir === currentDir) {
16
- throw new Error("Could not find package.json");
17
- }
18
- return resolveProjectRoot(parentDir);
9
+ export function resolveProjectRoot() {
10
+ // Use the global URL constructor (works in both Node.js and browsers)
11
+ const currentDir = new URL(".", import.meta.url).pathname;
12
+ // From dist/src/utils/ -> package root (3 levels: utils -> src -> dist -> root)
13
+ return resolvePath(currentDir, "../../..");
19
14
  }
20
15
  //# sourceMappingURL=resolve-project-root.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-project-root.js","sourceRoot":"","sources":["../../../src/utils/resolve-project-root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,aAAqB,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE5D,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAE5D,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAChC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAE5C,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"resolve-project-root.js","sourceRoot":"","sources":["../../../src/utils/resolve-project-root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB;IAChC,sEAAsE;IACtE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC1D,gFAAgF;IAChF,OAAO,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAC7C,CAAC"}