@typespec/compiler 0.47.0-dev.2 → 0.47.0-dev.20

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 (163) hide show
  1. package/dist/manifest.js +2 -2
  2. package/dist/src/config/config-to-options.d.ts +31 -0
  3. package/dist/src/config/config-to-options.d.ts.map +1 -0
  4. package/dist/src/config/config-to-options.js +54 -0
  5. package/dist/src/config/config-to-options.js.map +1 -0
  6. package/dist/src/config/index.d.ts +1 -0
  7. package/dist/src/config/index.d.ts.map +1 -1
  8. package/dist/src/config/index.js +1 -0
  9. package/dist/src/config/index.js.map +1 -1
  10. package/dist/src/core/checker.d.ts.map +1 -1
  11. package/dist/src/core/checker.js +253 -85
  12. package/dist/src/core/checker.js.map +1 -1
  13. package/dist/src/core/cli/actions/compile/args.d.ts +1 -0
  14. package/dist/src/core/cli/actions/compile/args.d.ts.map +1 -1
  15. package/dist/src/core/cli/actions/compile/args.js +31 -64
  16. package/dist/src/core/cli/actions/compile/args.js.map +1 -1
  17. package/dist/src/core/cli/actions/compile/compile.d.ts +2 -1
  18. package/dist/src/core/cli/actions/compile/compile.d.ts.map +1 -1
  19. package/dist/src/core/cli/actions/compile/compile.js +61 -54
  20. package/dist/src/core/cli/actions/compile/compile.js.map +1 -1
  21. package/dist/src/core/cli/actions/compile/watch.d.ts +15 -0
  22. package/dist/src/core/cli/actions/compile/watch.d.ts.map +1 -0
  23. package/dist/src/core/cli/actions/compile/watch.js +59 -0
  24. package/dist/src/core/cli/actions/compile/watch.js.map +1 -0
  25. package/dist/src/core/cli/actions/format.d.ts +2 -1
  26. package/dist/src/core/cli/actions/format.d.ts.map +1 -1
  27. package/dist/src/core/cli/actions/format.js +1 -1
  28. package/dist/src/core/cli/actions/format.js.map +1 -1
  29. package/dist/src/core/cli/actions/info.d.ts +2 -2
  30. package/dist/src/core/cli/actions/info.d.ts.map +1 -1
  31. package/dist/src/core/cli/actions/info.js +1 -7
  32. package/dist/src/core/cli/actions/info.js.map +1 -1
  33. package/dist/src/core/cli/actions/init.d.ts +3 -2
  34. package/dist/src/core/cli/actions/init.d.ts.map +1 -1
  35. package/dist/src/core/cli/actions/init.js +3 -6
  36. package/dist/src/core/cli/actions/init.js.map +1 -1
  37. package/dist/src/core/cli/actions/vs.d.ts +4 -2
  38. package/dist/src/core/cli/actions/vs.d.ts.map +1 -1
  39. package/dist/src/core/cli/actions/vs.js +38 -19
  40. package/dist/src/core/cli/actions/vs.js.map +1 -1
  41. package/dist/src/core/cli/actions/vscode.d.ts +10 -2
  42. package/dist/src/core/cli/actions/vscode.d.ts.map +1 -1
  43. package/dist/src/core/cli/actions/vscode.js +18 -20
  44. package/dist/src/core/cli/actions/vscode.js.map +1 -1
  45. package/dist/src/core/cli/cli.js +16 -13
  46. package/dist/src/core/cli/cli.js.map +1 -1
  47. package/dist/src/core/cli/install-vsix.d.ts +2 -1
  48. package/dist/src/core/cli/install-vsix.d.ts.map +1 -1
  49. package/dist/src/core/cli/install-vsix.js +5 -4
  50. package/dist/src/core/cli/install-vsix.js.map +1 -1
  51. package/dist/src/core/cli/types.d.ts +6 -0
  52. package/dist/src/core/cli/types.d.ts.map +1 -0
  53. package/dist/src/core/cli/types.js +2 -0
  54. package/dist/src/core/cli/types.js.map +1 -0
  55. package/dist/src/core/cli/utils.d.ts +12 -4
  56. package/dist/src/core/cli/utils.d.ts.map +1 -1
  57. package/dist/src/core/cli/utils.js +27 -6
  58. package/dist/src/core/cli/utils.js.map +1 -1
  59. package/dist/src/core/deprecation.d.ts +31 -0
  60. package/dist/src/core/deprecation.d.ts.map +1 -0
  61. package/dist/src/core/deprecation.js +48 -0
  62. package/dist/src/core/deprecation.js.map +1 -0
  63. package/dist/src/core/formatter-fs.js +4 -4
  64. package/dist/src/core/formatter-fs.js.map +1 -1
  65. package/dist/src/core/formatter.d.ts +3 -3
  66. package/dist/src/core/formatter.d.ts.map +1 -1
  67. package/dist/src/core/formatter.js +4 -4
  68. package/dist/src/core/formatter.js.map +1 -1
  69. package/dist/src/core/index.d.ts +1 -0
  70. package/dist/src/core/index.d.ts.map +1 -1
  71. package/dist/src/core/index.js +1 -0
  72. package/dist/src/core/index.js.map +1 -1
  73. package/dist/src/core/install.d.ts +2 -1
  74. package/dist/src/core/install.d.ts.map +1 -1
  75. package/dist/src/core/install.js +3 -5
  76. package/dist/src/core/install.js.map +1 -1
  77. package/dist/src/core/messages.d.ts +102 -2
  78. package/dist/src/core/messages.d.ts.map +1 -1
  79. package/dist/src/core/messages.js +34 -0
  80. package/dist/src/core/messages.js.map +1 -1
  81. package/dist/src/core/module-resolver.d.ts.map +1 -1
  82. package/dist/src/core/module-resolver.js.map +1 -1
  83. package/dist/src/core/options.d.ts +4 -0
  84. package/dist/src/core/options.d.ts.map +1 -1
  85. package/dist/src/core/parser.d.ts.map +1 -1
  86. package/dist/src/core/parser.js +36 -9
  87. package/dist/src/core/parser.js.map +1 -1
  88. package/dist/src/core/program.d.ts.map +1 -1
  89. package/dist/src/core/program.js +2 -0
  90. package/dist/src/core/program.js.map +1 -1
  91. package/dist/src/core/types.d.ts +10 -2
  92. package/dist/src/core/types.d.ts.map +1 -1
  93. package/dist/src/core/types.js.map +1 -1
  94. package/dist/src/core/util.d.ts +1 -0
  95. package/dist/src/core/util.d.ts.map +1 -1
  96. package/dist/src/core/util.js +1 -0
  97. package/dist/src/core/util.js.map +1 -1
  98. package/dist/src/emitter-framework/asset-emitter.js +2 -2
  99. package/dist/src/emitter-framework/asset-emitter.js.map +1 -1
  100. package/dist/src/emitter-framework/builders/object-builder.d.ts.map +1 -1
  101. package/dist/src/emitter-framework/builders/object-builder.js +1 -0
  102. package/dist/src/emitter-framework/builders/object-builder.js.map +1 -1
  103. package/dist/src/emitter-framework/type-emitter.d.ts +5 -5
  104. package/dist/src/emitter-framework/type-emitter.d.ts.map +1 -1
  105. package/dist/src/emitter-framework/type-emitter.js +13 -13
  106. package/dist/src/emitter-framework/type-emitter.js.map +1 -1
  107. package/dist/src/emitter-framework/types.d.ts +1 -1
  108. package/dist/src/emitter-framework/types.d.ts.map +1 -1
  109. package/dist/src/emitter-framework/types.js.map +1 -1
  110. package/dist/src/formatter/index.d.ts +1 -1
  111. package/dist/src/formatter/index.d.ts.map +1 -1
  112. package/dist/src/formatter/parser.d.ts +2 -6
  113. package/dist/src/formatter/parser.d.ts.map +1 -1
  114. package/dist/src/formatter/parser.js +1 -1
  115. package/dist/src/formatter/parser.js.map +1 -1
  116. package/dist/src/formatter/print/comment-handler.d.ts +1 -1
  117. package/dist/src/formatter/print/comment-handler.d.ts.map +1 -1
  118. package/dist/src/formatter/print/comment-handler.js +1 -2
  119. package/dist/src/formatter/print/comment-handler.js.map +1 -1
  120. package/dist/src/formatter/print/needs-parens.d.ts +1 -1
  121. package/dist/src/formatter/print/needs-parens.d.ts.map +1 -1
  122. package/dist/src/formatter/print/needs-parens.js +1 -0
  123. package/dist/src/formatter/print/needs-parens.js.map +1 -1
  124. package/dist/src/formatter/print/printer.d.ts +41 -40
  125. package/dist/src/formatter/print/printer.d.ts.map +1 -1
  126. package/dist/src/formatter/print/printer.js +6 -4
  127. package/dist/src/formatter/print/printer.js.map +1 -1
  128. package/dist/src/formatter/print/types.d.ts +3 -3
  129. package/dist/src/formatter/print/types.d.ts.map +1 -1
  130. package/dist/src/formatter/print/util.d.ts +3 -0
  131. package/dist/src/formatter/print/util.d.ts.map +1 -0
  132. package/dist/src/formatter/print/util.js +3 -0
  133. package/dist/src/formatter/print/util.js.map +1 -0
  134. package/dist/src/index.d.ts +1 -0
  135. package/dist/src/index.d.ts.map +1 -1
  136. package/dist/src/index.js +1 -0
  137. package/dist/src/index.js.map +1 -1
  138. package/dist/src/init/init-template.d.ts +19 -1
  139. package/dist/src/init/init-template.d.ts.map +1 -1
  140. package/dist/src/init/init-template.js +15 -1
  141. package/dist/src/init/init-template.js.map +1 -1
  142. package/dist/src/init/init.d.ts +4 -4
  143. package/dist/src/init/init.d.ts.map +1 -1
  144. package/dist/src/init/init.js +41 -12
  145. package/dist/src/init/init.js.map +1 -1
  146. package/dist/src/lib/decorators.d.ts +1 -7
  147. package/dist/src/lib/decorators.d.ts.map +1 -1
  148. package/dist/src/lib/decorators.js +4 -11
  149. package/dist/src/lib/decorators.js.map +1 -1
  150. package/dist/src/server/completion.d.ts.map +1 -1
  151. package/dist/src/server/completion.js +9 -5
  152. package/dist/src/server/completion.js.map +1 -1
  153. package/dist/src/server/serverlib.d.ts.map +1 -1
  154. package/dist/src/server/serverlib.js +4 -2
  155. package/dist/src/server/serverlib.js.map +1 -1
  156. package/dist/src/server/symbol-structure.d.ts.map +1 -1
  157. package/dist/src/server/symbol-structure.js +3 -1
  158. package/dist/src/server/symbol-structure.js.map +1 -1
  159. package/dist/src/testing/types.d.ts.map +1 -1
  160. package/dist/src/testing/types.js.map +1 -1
  161. package/lib/decorators.tsp +8 -2
  162. package/lib/lib.tsp +1 -1
  163. package/package.json +2 -4
@@ -1,32 +1,47 @@
1
+ import { createDiagnosticCollector } from "../../diagnostics.js";
2
+ import { createDiagnostic } from "../../messages.js";
1
3
  import { joinPaths } from "../../path-utils.js";
4
+ import { NoTarget } from "../../types.js";
2
5
  import { installVsix } from "../install-vsix.js";
3
6
  import { run } from "../utils.js";
4
7
  const VSIX_ALREADY_INSTALLED = 1001;
5
8
  const VSIX_NOT_INSTALLED = 1002;
6
9
  const VSIX_USER_CANCELED = 2005;
7
10
  const VS_SUPPORTED_VERSION_RANGE = "[17.0,)";
8
- export async function installVSExtension(debug) {
9
- const vsixInstaller = getVsixInstallerPath();
10
- if (!isVSInstalled(VS_SUPPORTED_VERSION_RANGE)) {
11
- // eslint-disable-next-line no-console
12
- console.error("error: No compatible version of Visual Studio found.");
13
- process.exit(1);
11
+ export async function installVSExtension(host) {
12
+ const diagnostics = createDiagnosticCollector();
13
+ const vsixInstaller = diagnostics.pipe(getVsixInstallerPath());
14
+ if (vsixInstaller === undefined) {
15
+ return diagnostics.diagnostics;
14
16
  }
15
- await installVsix("typespec-vs", (vsixPaths) => {
17
+ if (!isVSInstalled(host, VS_SUPPORTED_VERSION_RANGE)) {
18
+ return [
19
+ createDiagnostic({
20
+ code: "no-compatible-vs-installed",
21
+ target: NoTarget,
22
+ }),
23
+ ];
24
+ }
25
+ await installVsix(host, "typespec-vs", (vsixPaths) => {
16
26
  for (const vsix of vsixPaths) {
17
27
  // eslint-disable-next-line no-console
18
28
  console.log(`Installing extension for Visual Studio...`);
19
- run(vsixInstaller, [vsix], {
29
+ run(host, vsixInstaller, [vsix], {
20
30
  allowedExitCodes: [VSIX_ALREADY_INSTALLED, VSIX_USER_CANCELED],
21
31
  });
22
32
  }
23
- }, debug);
33
+ });
34
+ return diagnostics.diagnostics;
24
35
  }
25
- export async function uninstallVSExtension() {
26
- const vsixInstaller = getVsixInstallerPath();
27
- run(vsixInstaller, ["/uninstall:88b9492f-c019-492c-8aeb-f325a7e4cf23"], {
36
+ export async function uninstallVSExtension(host) {
37
+ const [vsixInstaller, diagnostics] = getVsixInstallerPath();
38
+ if (vsixInstaller === undefined) {
39
+ return diagnostics;
40
+ }
41
+ run(host, vsixInstaller, ["/uninstall:88b9492f-c019-492c-8aeb-f325a7e4cf23"], {
28
42
  allowedExitCodes: [VSIX_NOT_INSTALLED, VSIX_USER_CANCELED],
29
43
  });
44
+ return diagnostics;
30
45
  }
31
46
  function getVsixInstallerPath() {
32
47
  return getVSInstallerPath("resources/app/ServiceHub/Services/Microsoft.VisualStudio.Setup.Service/VSIXInstaller.exe");
@@ -37,15 +52,19 @@ function getVSWherePath() {
37
52
  function getVSInstallerPath(relativePath) {
38
53
  var _a;
39
54
  if (process.platform !== "win32") {
40
- // eslint-disable-next-line no-console
41
- console.error("error: Visual Studio extension is not supported on non-Windows.");
42
- process.exit(1);
55
+ return [undefined, [createDiagnostic({ code: "vs-extension-windows-only", target: NoTarget })]];
43
56
  }
44
- return joinPaths((_a = process.env["ProgramFiles(x86)"]) !== null && _a !== void 0 ? _a : "", "Microsoft Visual Studio/Installer", relativePath);
57
+ return [
58
+ joinPaths((_a = process.env["ProgramFiles(x86)"]) !== null && _a !== void 0 ? _a : "", "Microsoft Visual Studio/Installer", relativePath),
59
+ [],
60
+ ];
45
61
  }
46
- function isVSInstalled(versionRange) {
47
- const vswhere = getVSWherePath();
48
- const proc = run(vswhere, ["-property", "instanceid", "-prerelease", "-version", versionRange], {
62
+ function isVSInstalled(host, versionRange) {
63
+ const [vswhere] = getVSWherePath();
64
+ if (vswhere === undefined) {
65
+ return false;
66
+ }
67
+ const proc = run(host, vswhere, ["-property", "instanceid", "-prerelease", "-version", versionRange], {
49
68
  stdio: [null, "pipe", "inherit"],
50
69
  allowNotFound: true,
51
70
  });
@@ -1 +1 @@
1
- {"version":3,"file":"vs.js","sourceRoot":"","sources":["../../../../../src/core/cli/actions/vs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AACpC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,0BAA0B,GAAG,SAAS,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,KAAc;IACrD,MAAM,aAAa,GAAG,oBAAoB,EAAE,CAAC;IAE7C,IAAI,CAAC,aAAa,CAAC,0BAA0B,CAAC,EAAE;QAC9C,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,MAAM,WAAW,CACf,aAAa,EACb,CAAC,SAAS,EAAE,EAAE;QACZ,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;YAC5B,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;YACzD,GAAG,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE;gBACzB,gBAAgB,EAAE,CAAC,sBAAsB,EAAE,kBAAkB,CAAC;aAC/D,CAAC,CAAC;SACJ;IACH,CAAC,EACD,KAAK,CACN,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,aAAa,GAAG,oBAAoB,EAAE,CAAC;IAC7C,GAAG,CAAC,aAAa,EAAE,CAAC,iDAAiD,CAAC,EAAE;QACtE,gBAAgB,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;KAC3D,CAAC,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO,kBAAkB,CACvB,0FAA0F,CAC3F,CAAC;AACJ,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,kBAAkB,CAAC,YAAoB;;IAC9C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QAChC,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,OAAO,SAAS,CACd,MAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,mCAAI,EAAE,EACtC,mCAAmC,EACnC,YAAY,CACb,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,YAAoB;IACzC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE;QAC9F,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC;QAChC,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"vs.js","sourceRoot":"","sources":["../../../../../src/core/cli/actions/vs.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,11 @@
1
- export declare function installVSCodeExtension(insiders: boolean, debug: boolean): Promise<void>;
2
- export declare function uninstallVSCodeExtension(insiders: boolean, debug: boolean): Promise<void>;
1
+ import { Diagnostic } from "../../types.js";
2
+ import { CliCompilerHost } from "../types.js";
3
+ export interface InstallVSCodeExtensionOptions {
4
+ insiders: boolean;
5
+ }
6
+ export declare function installVSCodeExtension(host: CliCompilerHost, options: InstallVSCodeExtensionOptions): Promise<readonly Diagnostic[]>;
7
+ export interface UninstallVSCodeExtensionOptions {
8
+ insiders: boolean;
9
+ }
10
+ export declare function uninstallVSCodeExtension(host: CliCompilerHost, options: UninstallVSCodeExtensionOptions): Promise<readonly Diagnostic[]>;
3
11
  //# sourceMappingURL=vscode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vscode.d.ts","sourceRoot":"","sources":["../../../../../src/core/cli/actions/vscode.ts"],"names":[],"mappings":"AAGA,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,iBAQ7E;AAED,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,iBAE/E"}
1
+ {"version":3,"file":"vscode.d.ts","sourceRoot":"","sources":["../../../../../src/core/cli/actions/vscode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAY,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,OAAO,CAAC;CACnB;AACD,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,6BAA6B,kCAKvC;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,+BAA+B,kCAGzC"}
@@ -1,36 +1,34 @@
1
+ import { createDiagnostic } from "../../messages.js";
2
+ import { NoTarget } from "../../types.js";
1
3
  import { installVsix } from "../install-vsix.js";
2
4
  import { run } from "../utils.js";
3
- export async function installVSCodeExtension(insiders, debug) {
4
- await installVsix("typespec-vscode", (vsixPaths) => {
5
- runCode(["--install-extension", vsixPaths[0]], insiders, debug);
6
- }, debug);
5
+ export async function installVSCodeExtension(host, options) {
6
+ return await installVsix(host, "typespec-vscode", (vsixPaths) => runCode(host, ["--install-extension", vsixPaths[0]], options.insiders));
7
7
  }
8
- export async function uninstallVSCodeExtension(insiders, debug) {
9
- await runCode(["--uninstall-extension", "microsoft.typespec-vscode"], insiders, debug);
8
+ export async function uninstallVSCodeExtension(host, options) {
9
+ return runCode(host, ["--uninstall-extension", "microsoft.typespec-vscode"], options.insiders);
10
10
  }
11
- function runCode(codeArgs, insiders, debug) {
11
+ function runCode(host, codeArgs, insiders) {
12
12
  try {
13
- run(insiders ? "code-insiders" : "code", codeArgs, {
13
+ run(host, insiders ? "code-insiders" : "code", codeArgs, {
14
14
  // VS Code's CLI emits node warnings that we can't do anything about. Suppress them.
15
15
  extraEnv: { NODE_NO_WARNINGS: "1" },
16
- debug,
17
16
  allowNotFound: true,
18
17
  });
18
+ return [];
19
19
  }
20
20
  catch (error) {
21
21
  if (error.code === "ENOENT") {
22
- // eslint-disable-next-line no-console
23
- console.error(`error: Couldn't find VS Code 'code' command in PATH. Make sure you have the VS Code executable added to the system PATH.`);
24
- if (process.platform === "darwin") {
25
- // eslint-disable-next-line no-console
26
- console.log("See instruction for Mac OS here https://code.visualstudio.com/docs/setup/mac");
27
- }
28
- if (debug) {
29
- // eslint-disable-next-line no-console
30
- console.log(error.stack);
31
- }
32
- process.exit(1);
22
+ host.logger.trace(error.stack);
23
+ return [
24
+ createDiagnostic({
25
+ code: "vscode-in-path",
26
+ messageId: process.platform === "darwin" ? "osx" : "default",
27
+ target: NoTarget,
28
+ }),
29
+ ];
33
30
  }
31
+ throw error;
34
32
  }
35
33
  }
36
34
  //# sourceMappingURL=vscode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vscode.js","sourceRoot":"","sources":["../../../../../src/core/cli/actions/vscode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,QAAiB,EAAE,KAAc;IAC5E,MAAM,WAAW,CACf,iBAAiB,EACjB,CAAC,SAAS,EAAE,EAAE;QACZ,OAAO,CAAC,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC,EACD,KAAK,CACN,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,QAAiB,EAAE,KAAc;IAC9E,MAAM,OAAO,CAAC,CAAC,uBAAuB,EAAE,2BAA2B,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,OAAO,CAAC,QAAkB,EAAE,QAAiB,EAAE,KAAc;IACpE,IAAI;QACF,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE;YACjD,oFAAoF;YACpF,QAAQ,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE;YACnC,KAAK;YACL,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;KACJ;IAAC,OAAO,KAAU,EAAE;QACnB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC3B,sCAAsC;YACtC,OAAO,CAAC,KAAK,CACX,0HAA0H,CAC3H,CAAC;YACF,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBACjC,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;aAC7F;YACD,IAAI,KAAK,EAAE;gBACT,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC1B;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;KACF;AACH,CAAC"}
1
+ {"version":3,"file":"vscode.js","sourceRoot":"","sources":["../../../../../src/core/cli/actions/vscode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAc,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAKlC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAqB,EACrB,OAAsC;IAEtC,OAAO,MAAM,WAAW,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAC,SAAS,EAAE,EAAE,CAC9D,OAAO,CAAC,IAAI,EAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CACvE,CAAC;AACJ,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAqB,EACrB,OAAwC;IAExC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,uBAAuB,EAAE,2BAA2B,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,OAAO,CACd,IAAqB,EACrB,QAAkB,EAClB,QAAiB;IAEjB,IAAI;QACF,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE;YACvD,oFAAoF;YACpF,QAAQ,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE;YACnC,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;KACX;IAAC,OAAO,KAAU,EAAE;QACnB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO;gBACL,gBAAgB,CAAC;oBACf,IAAI,EAAE,gBAAgB;oBACtB,SAAS,EAAE,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;oBAC5D,MAAM,EAAE,QAAQ;iBACjB,CAAC;aACH,CAAC;SACH;QACD,MAAM,KAAK,CAAC;KACb;AACH,CAAC"}
@@ -14,8 +14,8 @@ import { formatAction } from "./actions/format.js";
14
14
  import { printInfoAction } from "./actions/info.js";
15
15
  import { initAction } from "./actions/init.js";
16
16
  import { installVSExtension, uninstallVSExtension } from "./actions/vs.js";
17
- import { installVSCodeExtension, uninstallVSCodeExtension } from "./actions/vscode.js";
18
- import { createCLICompilerHost, handleInternalCompilerError } from "./utils.js";
17
+ import { installVSCodeExtension, uninstallVSCodeExtension, } from "./actions/vscode.js";
18
+ import { handleInternalCompilerError, withCliHost, withCliHostAndDiagnostics, } from "./utils.js";
19
19
  async function main() {
20
20
  // eslint-disable-next-line no-console
21
21
  console.log(`TypeSpec compiler v${typespecVersion}\n`);
@@ -90,13 +90,16 @@ async function main() {
90
90
  })
91
91
  .option("warn-as-error", {
92
92
  type: "boolean",
93
- default: false,
94
93
  describe: "Treat warnings as errors and return non-zero exit code if there are any.",
95
94
  })
96
95
  .option("no-emit", {
97
96
  type: "boolean",
98
- default: false,
99
97
  describe: "Run emitters but do not emit any output.",
98
+ })
99
+ .option("ignore-deprecated", {
100
+ type: "boolean",
101
+ default: false,
102
+ describe: "Suppresses all `deprecated` diagnostics.",
100
103
  })
101
104
  .option("arg", {
102
105
  type: "array",
@@ -104,7 +107,7 @@ async function main() {
104
107
  string: true,
105
108
  describe: "Key/value of arguments that are used in the configuration.",
106
109
  });
107
- }, async (args) => compileAction(args))
110
+ }, withCliHost((host, args) => compileAction(host, args)))
108
111
  .command("code", "Manage VS Code Extension.", (cmd) => {
109
112
  return cmd
110
113
  .demandCommand(1, "No command specified.")
@@ -113,14 +116,14 @@ async function main() {
113
116
  description: "Use VS Code Insiders",
114
117
  default: false,
115
118
  })
116
- .command("install", "Install VS Code Extension", () => { }, (args) => installVSCodeExtension(args.insiders, args.debug))
117
- .command("uninstall", "Uninstall VS Code Extension", () => { }, (args) => uninstallVSCodeExtension(args.insiders, args.debug));
119
+ .command("install", "Install VS Code Extension", () => { }, withCliHostAndDiagnostics((host, args) => installVSCodeExtension(host, args)))
120
+ .command("uninstall", "Uninstall VS Code Extension", () => { }, withCliHostAndDiagnostics((host, args) => uninstallVSCodeExtension(host, args)));
118
121
  })
119
122
  .command("vs", "Manage Visual Studio Extension.", (cmd) => {
120
123
  return cmd
121
124
  .demandCommand(1, "No command specified")
122
- .command("install", "Install Visual Studio Extension.", () => { }, (args) => installVSExtension(args.debug))
123
- .command("uninstall", "Uninstall VS Extension", () => { }, () => uninstallVSExtension());
125
+ .command("install", "Install Visual Studio Extension.", () => { }, withCliHostAndDiagnostics((host) => installVSExtension(host)))
126
+ .command("uninstall", "Uninstall VS Extension", () => { }, withCliHostAndDiagnostics((host) => uninstallVSExtension(host)));
124
127
  })
125
128
  .command("format <include...>", "Format given list of TypeSpec files.", (cmd) => {
126
129
  return cmd
@@ -141,13 +144,13 @@ async function main() {
141
144
  type: "boolean",
142
145
  describe: "Verify the files are formatted.",
143
146
  });
144
- }, async (args) => formatAction(args))
147
+ }, withCliHost((host, args) => formatAction(host, args)))
145
148
  .command("init [templatesUrl]", "Create a new TypeSpec project.", (cmd) => cmd.positional("templatesUrl", {
146
149
  description: "Url of the initialization template",
147
150
  type: "string",
148
- }), async (args) => initAction(args))
149
- .command("install", "Install typespec dependencies", () => { }, () => installTypeSpecDependencies(process.cwd()))
150
- .command("info", "Show information about current TypeSpec compiler.", () => { }, (args) => printInfoAction(createCLICompilerHost(args)))
151
+ }), withCliHostAndDiagnostics((host, args) => initAction(host, args)))
152
+ .command("install", "Install typespec dependencies", () => { }, withCliHost((host) => installTypeSpecDependencies(host, process.cwd())))
153
+ .command("info", "Show information about current TypeSpec compiler.", () => { }, withCliHostAndDiagnostics((host) => printInfoAction(host)))
151
154
  .version(typespecVersion)
152
155
  .demandCommand(1, "You must use one of the supported commands.").argv;
153
156
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../src/core/cli/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../src/core/cli/cli.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- export declare function installVsix(pkg: string, install: (vsixPaths: string[]) => void, debug: boolean): Promise<void>;
1
+ import { CliCompilerHost } from "./types.js";
2
+ export declare function installVsix<T = void>(host: CliCompilerHost, pkg: string, install: (vsixPaths: string[]) => T): Promise<T>;
2
3
  //# sourceMappingURL=install-vsix.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"install-vsix.d.ts","sourceRoot":"","sources":["../../../../src/core/cli/install-vsix.ts"],"names":[],"mappings":"AAMA,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI,EACtC,KAAK,EAAE,OAAO,iBA6Cf"}
1
+ {"version":3,"file":"install-vsix.d.ts","sourceRoot":"","sources":["../../../../src/core/cli/install-vsix.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,wBAAsB,WAAW,CAAC,CAAC,GAAG,IAAI,EACxC,IAAI,EAAE,eAAe,EACrB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,CA6CZ"}
@@ -3,13 +3,13 @@ import os from "os";
3
3
  import { compilerAssert } from "../diagnostics.js";
4
4
  import { joinPaths } from "../path-utils.js";
5
5
  import { run } from "./utils.js";
6
- export async function installVsix(pkg, install, debug) {
6
+ export async function installVsix(host, pkg, install) {
7
7
  var _a;
8
8
  // download npm package to temporary directory
9
9
  const temp = await mkdtemp(joinPaths(os.tmpdir(), "typespec"));
10
10
  const npmArgs = ["install"];
11
11
  // hide npm output unless --debug was passed to typespec
12
- if (!debug) {
12
+ if (!host.debug) {
13
13
  npmArgs.push("--silent");
14
14
  }
15
15
  // NOTE: Using cwd=temp with `--prefix .` instead of `--prefix ${temp}` to
@@ -22,7 +22,7 @@ export async function installVsix(pkg, install, debug) {
22
22
  // specify the full path to the packed .tgz using TYPESPEC_DEBUG_VSIX_TGZ
23
23
  // environment variable.
24
24
  npmArgs.push((_a = process.env.TYPESPEC_DEBUG_VSIX_TGZ) !== null && _a !== void 0 ? _a : pkg);
25
- run("npm", npmArgs, { cwd: temp, debug });
25
+ run(host, "npm", npmArgs, { cwd: temp });
26
26
  // locate .vsix
27
27
  const dir = joinPaths(temp, "node_modules", pkg);
28
28
  const files = await readdir(dir);
@@ -34,8 +34,9 @@ export async function installVsix(pkg, install, debug) {
34
34
  }
35
35
  compilerAssert(vsixPaths.length > 0, `Installed ${pkg} from npm, but didn't find any .vsix files in it.`);
36
36
  // install extension
37
- install(vsixPaths);
37
+ const result = install(vsixPaths);
38
38
  // delete temporary directory
39
39
  await rm(temp, { recursive: true });
40
+ return result;
40
41
  }
41
42
  //# sourceMappingURL=install-vsix.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install-vsix.js","sourceRoot":"","sources":["../../../../src/core/cli/install-vsix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEjC,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAW,EACX,OAAsC,EACtC,KAAc;;IAEd,8CAA8C;IAC9C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;IAE5B,wDAAwD;IACxD,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC1B;IAED,0EAA0E;IAC1E,0EAA0E;IAC1E,uEAAuE;IACvE,qEAAqE;IACrE,aAAa;IACb,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAE9B,sEAAsE;IACtE,yEAAyE;IACzE,wBAAwB;IACxB,OAAO,CAAC,IAAI,CAAC,MAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,mCAAI,GAAG,CAAC,CAAC;IAEzD,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAE1C,eAAe;IACf,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC1B,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;SACtC;KACF;IAED,cAAc,CACZ,SAAS,CAAC,MAAM,GAAG,CAAC,EACpB,aAAa,GAAG,mDAAmD,CACpE,CAAC;IAEF,oBAAoB;IACpB,OAAO,CAAC,SAAS,CAAC,CAAC;IAEnB,6BAA6B;IAC7B,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"install-vsix.js","sourceRoot":"","sources":["../../../../src/core/cli/install-vsix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEjC,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAqB,EACrB,GAAW,EACX,OAAmC;;IAEnC,8CAA8C;IAC9C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;IAE5B,wDAAwD;IACxD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;QACf,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC1B;IAED,0EAA0E;IAC1E,0EAA0E;IAC1E,uEAAuE;IACvE,qEAAqE;IACrE,aAAa;IACb,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAE9B,sEAAsE;IACtE,yEAAyE;IACzE,wBAAwB;IACxB,OAAO,CAAC,IAAI,CAAC,MAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,mCAAI,GAAG,CAAC,CAAC;IAEzD,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzC,eAAe;IACf,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC1B,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;SACtC;KACF;IAED,cAAc,CACZ,SAAS,CAAC,MAAM,GAAG,CAAC,EACpB,aAAa,GAAG,mDAAmD,CACpE,CAAC;IAEF,oBAAoB;IACpB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAElC,6BAA6B;IAC7B,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { CompilerHost, Logger } from "../types.js";
2
+ export interface CliCompilerHost extends CompilerHost {
3
+ logger: Logger;
4
+ debug: boolean;
5
+ }
6
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/cli/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/cli/types.ts"],"names":[],"mappings":""}
@@ -1,17 +1,25 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  /// <reference types="node" resolution-mode="require"/>
3
3
  import { SpawnSyncOptionsWithStringEncoding } from "child_process";
4
- import { CompilerHost, Diagnostic } from "../types.js";
4
+ import { Diagnostic } from "../types.js";
5
+ import { CliCompilerHost } from "./types.js";
5
6
  export interface RunOptions extends Partial<SpawnSyncOptionsWithStringEncoding> {
6
7
  readonly debug?: boolean;
7
8
  readonly extraEnv?: NodeJS.ProcessEnv;
8
9
  readonly allowNotFound?: boolean;
9
10
  readonly allowedExitCodes?: number[];
10
11
  }
11
- export declare function createCLICompilerHost(options: {
12
+ export interface CliHostArgs {
12
13
  pretty?: boolean;
13
- }): CompilerHost;
14
- export declare function run(command: string, commandArgs: string[], options?: RunOptions): import("child_process").SpawnSyncReturns<string>;
14
+ debug?: boolean;
15
+ }
16
+ export declare function withCliHost<T extends CliHostArgs>(fn: (host: CliCompilerHost, args: T) => void | Promise<void>): (args: T) => void | Promise<void>;
17
+ /**
18
+ * Resolve Cli host automatically using cli args and handle diagnostics returned by the action.
19
+ */
20
+ export declare function withCliHostAndDiagnostics<T extends CliHostArgs>(fn: (host: CliCompilerHost, args: T) => readonly Diagnostic[] | Promise<readonly Diagnostic[]>): (args: T) => void | Promise<void>;
21
+ export declare function createCLICompilerHost(options: CliHostArgs): CliCompilerHost;
22
+ export declare function run(host: CliCompilerHost, command: string, commandArgs: string[], options?: RunOptions): import("child_process").SpawnSyncReturns<string>;
15
23
  export declare function logDiagnosticCount(diagnostics: readonly Diagnostic[]): void;
16
24
  /**
17
25
  * Handle an internal compiler error.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/core/cli/utils.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,kCAAkC,EAAa,MAAM,eAAe,CAAC;AAM9E,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMvD,MAAM,WAAW,UAAW,SAAQ,OAAO,CAAC,kCAAkC,CAAC;IAC7E,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CACtC;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,YAAY,CAEjF;AAED,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,oDAqD/E;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,QAWpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAcjE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/core/cli/utils.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,kCAAkC,EAAa,MAAM,eAAe,CAAC;AAO9E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAK7C,MAAM,WAAW,UAAW,SAAQ,OAAO,CAAC,kCAAkC,CAAC;IAC7E,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,WAAW,EAC/C,EAAE,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC3D,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAKnC;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,WAAW,EAC7D,EAAE,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,KAAK,SAAS,UAAU,EAAE,GAAG,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,GAC7F,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAUnC;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,eAAe,CAI3E;AAED,wBAAgB,GAAG,CACjB,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,CAAC,EAAE,UAAU,oDAmDrB;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,QAWpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAcjE"}
@@ -1,6 +1,7 @@
1
1
  // NOTE: We could also use { shell: true } to let windows find the .cmd, but that breaks
2
2
  import { spawnSync } from "child_process";
3
3
  import { inspect } from "util";
4
+ import { logDiagnostics } from "../diagnostics.js";
4
5
  import { createConsoleSink } from "../logger/console-sink.js";
5
6
  import { createLogger } from "../logger/logger.js";
6
7
  import { NodeHost } from "../node-host.js";
@@ -8,15 +9,35 @@ import { getBaseFileName } from "../path-utils.js";
8
9
  import { ExternalError } from "../util.js";
9
10
  // ENOENT checking and handles spaces poorly in some cases.
10
11
  const isCmdOnWindows = ["code", "code-insiders", "npm"];
12
+ export function withCliHost(fn) {
13
+ return (args) => {
14
+ const host = createCLICompilerHost(args);
15
+ return fn(host, args);
16
+ };
17
+ }
18
+ /**
19
+ * Resolve Cli host automatically using cli args and handle diagnostics returned by the action.
20
+ */
21
+ export function withCliHostAndDiagnostics(fn) {
22
+ return async (args) => {
23
+ const host = createCLICompilerHost(args);
24
+ const diagnostics = await fn(host, args);
25
+ logDiagnostics(diagnostics, host.logSink);
26
+ logDiagnosticCount(diagnostics);
27
+ if (diagnostics.some((d) => d.severity === "error")) {
28
+ process.exit(1);
29
+ }
30
+ };
31
+ }
11
32
  export function createCLICompilerHost(options) {
12
- return { ...NodeHost, logSink: createConsoleSink({ pretty: options.pretty }) };
33
+ var _a;
34
+ const logSink = createConsoleSink({ pretty: options.pretty });
35
+ const logger = createLogger({ sink: logSink, level: options.debug ? "trace" : "warning" });
36
+ return { ...NodeHost, logSink, logger, debug: (_a = options.debug) !== null && _a !== void 0 ? _a : false };
13
37
  }
14
- export function run(command, commandArgs, options) {
38
+ export function run(host, command, commandArgs, options) {
15
39
  var _a, _b, _c;
16
- const logger = createLogger({
17
- sink: NodeHost.logSink,
18
- level: (options === null || options === void 0 ? void 0 : options.debug) ? "trace" : "warning",
19
- });
40
+ const logger = host.logger;
20
41
  if (options) {
21
42
  logger.trace(inspect(options, { depth: null }));
22
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/core/cli/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/core/cli/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { Program } from "./program.js";
2
+ import { Node, Type } from "./types.js";
3
+ /**
4
+ * Provides details on the deprecation of a given type.
5
+ */
6
+ export interface DeprecationDetails {
7
+ /**
8
+ * The deprecation message to display when the type is used.
9
+ */
10
+ message: string;
11
+ }
12
+ /**
13
+ * Check if the given type is deprecated
14
+ * @param program Program
15
+ * @param type Type
16
+ */
17
+ export declare function isDeprecated(program: Program, type: Type): boolean;
18
+ /**
19
+ * Returns complete deprecation details for the given type or node
20
+ * @param program Program
21
+ * @param typeOrNode A Type or Node to check for deprecation
22
+ */
23
+ export declare function getDeprecationDetails(program: Program, typeOrNode: Type | Node): DeprecationDetails | undefined;
24
+ /**
25
+ * Mark the given type as deprecated with the provided details.
26
+ * @param program Program
27
+ * @param type Type
28
+ * @param details Details of the deprecation
29
+ */
30
+ export declare function markDeprecated(program: Program, type: Type, details: DeprecationDetails): void;
31
+ //# sourceMappingURL=deprecation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deprecation.d.ts","sourceRoot":"","sources":["../../../src/core/deprecation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAY,IAAI,EAAc,IAAI,EAAE,MAAM,YAAY,CAAC;AAQ9D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAElE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,IAAI,GAAG,IAAI,GACtB,kBAAkB,GAAG,SAAS,CAsBhC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAE9F"}
@@ -0,0 +1,48 @@
1
+ import { SyntaxKind } from "./types.js";
2
+ function createStateSymbol(name) {
3
+ return Symbol.for(`TypeSpec.${name}`);
4
+ }
5
+ const deprecatedKey = createStateSymbol("deprecated");
6
+ /**
7
+ * Check if the given type is deprecated
8
+ * @param program Program
9
+ * @param type Type
10
+ */
11
+ export function isDeprecated(program, type) {
12
+ return program.stateMap(deprecatedKey).has(type);
13
+ }
14
+ /**
15
+ * Returns complete deprecation details for the given type or node
16
+ * @param program Program
17
+ * @param typeOrNode A Type or Node to check for deprecation
18
+ */
19
+ export function getDeprecationDetails(program, typeOrNode) {
20
+ var _a;
21
+ function isType(maybeType) {
22
+ return typeof maybeType.kind === "string";
23
+ }
24
+ // If we're looking at a type, pull the deprecation details from the state map
25
+ if (isType(typeOrNode)) {
26
+ return program.stateMap(deprecatedKey).get(typeOrNode);
27
+ }
28
+ else {
29
+ // Look at the node for a deprecation directive
30
+ const deprecatedDirective = ((_a = typeOrNode.directives) !== null && _a !== void 0 ? _a : []).find((directive) => directive.target.sv === "deprecated");
31
+ if ((deprecatedDirective === null || deprecatedDirective === void 0 ? void 0 : deprecatedDirective.arguments[0].kind) === SyntaxKind.StringLiteral) {
32
+ return {
33
+ message: deprecatedDirective.arguments[0].value,
34
+ };
35
+ }
36
+ }
37
+ return undefined;
38
+ }
39
+ /**
40
+ * Mark the given type as deprecated with the provided details.
41
+ * @param program Program
42
+ * @param type Type
43
+ * @param details Details of the deprecation
44
+ */
45
+ export function markDeprecated(program, type, details) {
46
+ program.stateMap(deprecatedKey).set(type, details);
47
+ }
48
+ //# sourceMappingURL=deprecation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deprecation.js","sourceRoot":"","sources":["../../../src/core/deprecation.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,UAAU,EAAQ,MAAM,YAAY,CAAC;AAE9D,SAAS,iBAAiB,CAAC,IAAY;IACrC,OAAO,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,aAAa,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;AAYtD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,IAAU;IACvD,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAgB,EAChB,UAAuB;;IAEvB,SAAS,MAAM,CAAC,SAAsB;QACpC,OAAO,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC;IAC5C,CAAC;IAED,8EAA8E;IAC9E,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE;QACtB,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KACxD;SAAM;QACL,+CAA+C;QAC/C,MAAM,mBAAmB,GAAG,CAAC,MAAC,UAAuB,CAAC,UAAU,mCAAI,EAAE,CAAC,CAAC,IAAI,CAC1E,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,YAAY,CACpD,CAAC;QAEF,IAAI,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,SAAS,CAAC,CAAC,EAAE,IAAI,MAAK,UAAU,CAAC,aAAa,EAAE;YACvE,OAAO;gBACL,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK;aAChD,CAAC;SACH;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,OAAgB,EAAE,IAAU,EAAE,OAA2B;IACtF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { readFile, writeFile } from "fs/promises";
2
2
  import { globby } from "globby";
3
- import prettier from "prettier";
3
+ import { resolveConfig } from "prettier";
4
4
  import { PrettierParserError } from "../formatter/parser.js";
5
5
  import { checkFormatTypeSpec, formatTypeSpec } from "./formatter.js";
6
6
  import { normalizePath } from "./path-utils.js";
@@ -55,8 +55,8 @@ export async function findUnformattedTypeSpecFiles(patterns, { exclude, debug })
55
55
  }
56
56
  export async function formatTypeSpecFile(filename) {
57
57
  const content = await readFile(filename, "utf-8");
58
- const prettierConfig = await prettier.resolveConfig(filename);
59
- const formattedContent = formatTypeSpec(content, prettierConfig !== null && prettierConfig !== void 0 ? prettierConfig : {});
58
+ const prettierConfig = await resolveConfig(filename);
59
+ const formattedContent = await formatTypeSpec(content, prettierConfig !== null && prettierConfig !== void 0 ? prettierConfig : {});
60
60
  await writeFile(filename, formattedContent);
61
61
  }
62
62
  /**
@@ -65,7 +65,7 @@ export async function formatTypeSpecFile(filename) {
65
65
  */
66
66
  export async function checkFormatTypeSpecFile(filename) {
67
67
  const content = await readFile(filename, "utf-8");
68
- const prettierConfig = await prettier.resolveConfig(filename);
68
+ const prettierConfig = await resolveConfig(filename);
69
69
  return await checkFormatTypeSpec(content, prettierConfig !== null && prettierConfig !== void 0 ? prettierConfig : {});
70
70
  }
71
71
  async function findFiles(include, ignore = []) {