@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.
- package/dist/manifest.js +2 -2
- package/dist/src/config/config-to-options.d.ts +31 -0
- package/dist/src/config/config-to-options.d.ts.map +1 -0
- package/dist/src/config/config-to-options.js +54 -0
- package/dist/src/config/config-to-options.js.map +1 -0
- package/dist/src/config/index.d.ts +1 -0
- package/dist/src/config/index.d.ts.map +1 -1
- package/dist/src/config/index.js +1 -0
- package/dist/src/config/index.js.map +1 -1
- package/dist/src/core/checker.d.ts.map +1 -1
- package/dist/src/core/checker.js +253 -85
- package/dist/src/core/checker.js.map +1 -1
- package/dist/src/core/cli/actions/compile/args.d.ts +1 -0
- package/dist/src/core/cli/actions/compile/args.d.ts.map +1 -1
- package/dist/src/core/cli/actions/compile/args.js +31 -64
- package/dist/src/core/cli/actions/compile/args.js.map +1 -1
- package/dist/src/core/cli/actions/compile/compile.d.ts +2 -1
- package/dist/src/core/cli/actions/compile/compile.d.ts.map +1 -1
- package/dist/src/core/cli/actions/compile/compile.js +61 -54
- package/dist/src/core/cli/actions/compile/compile.js.map +1 -1
- package/dist/src/core/cli/actions/compile/watch.d.ts +15 -0
- package/dist/src/core/cli/actions/compile/watch.d.ts.map +1 -0
- package/dist/src/core/cli/actions/compile/watch.js +59 -0
- package/dist/src/core/cli/actions/compile/watch.js.map +1 -0
- package/dist/src/core/cli/actions/format.d.ts +2 -1
- package/dist/src/core/cli/actions/format.d.ts.map +1 -1
- package/dist/src/core/cli/actions/format.js +1 -1
- package/dist/src/core/cli/actions/format.js.map +1 -1
- package/dist/src/core/cli/actions/info.d.ts +2 -2
- package/dist/src/core/cli/actions/info.d.ts.map +1 -1
- package/dist/src/core/cli/actions/info.js +1 -7
- package/dist/src/core/cli/actions/info.js.map +1 -1
- package/dist/src/core/cli/actions/init.d.ts +3 -2
- package/dist/src/core/cli/actions/init.d.ts.map +1 -1
- package/dist/src/core/cli/actions/init.js +3 -6
- package/dist/src/core/cli/actions/init.js.map +1 -1
- package/dist/src/core/cli/actions/vs.d.ts +4 -2
- package/dist/src/core/cli/actions/vs.d.ts.map +1 -1
- package/dist/src/core/cli/actions/vs.js +38 -19
- package/dist/src/core/cli/actions/vs.js.map +1 -1
- package/dist/src/core/cli/actions/vscode.d.ts +10 -2
- package/dist/src/core/cli/actions/vscode.d.ts.map +1 -1
- package/dist/src/core/cli/actions/vscode.js +18 -20
- package/dist/src/core/cli/actions/vscode.js.map +1 -1
- package/dist/src/core/cli/cli.js +16 -13
- package/dist/src/core/cli/cli.js.map +1 -1
- package/dist/src/core/cli/install-vsix.d.ts +2 -1
- package/dist/src/core/cli/install-vsix.d.ts.map +1 -1
- package/dist/src/core/cli/install-vsix.js +5 -4
- package/dist/src/core/cli/install-vsix.js.map +1 -1
- package/dist/src/core/cli/types.d.ts +6 -0
- package/dist/src/core/cli/types.d.ts.map +1 -0
- package/dist/src/core/cli/types.js +2 -0
- package/dist/src/core/cli/types.js.map +1 -0
- package/dist/src/core/cli/utils.d.ts +12 -4
- package/dist/src/core/cli/utils.d.ts.map +1 -1
- package/dist/src/core/cli/utils.js +27 -6
- package/dist/src/core/cli/utils.js.map +1 -1
- package/dist/src/core/deprecation.d.ts +31 -0
- package/dist/src/core/deprecation.d.ts.map +1 -0
- package/dist/src/core/deprecation.js +48 -0
- package/dist/src/core/deprecation.js.map +1 -0
- package/dist/src/core/formatter-fs.js +4 -4
- package/dist/src/core/formatter-fs.js.map +1 -1
- package/dist/src/core/formatter.d.ts +3 -3
- package/dist/src/core/formatter.d.ts.map +1 -1
- package/dist/src/core/formatter.js +4 -4
- package/dist/src/core/formatter.js.map +1 -1
- package/dist/src/core/index.d.ts +1 -0
- package/dist/src/core/index.d.ts.map +1 -1
- package/dist/src/core/index.js +1 -0
- package/dist/src/core/index.js.map +1 -1
- package/dist/src/core/install.d.ts +2 -1
- package/dist/src/core/install.d.ts.map +1 -1
- package/dist/src/core/install.js +3 -5
- package/dist/src/core/install.js.map +1 -1
- package/dist/src/core/messages.d.ts +102 -2
- package/dist/src/core/messages.d.ts.map +1 -1
- package/dist/src/core/messages.js +34 -0
- package/dist/src/core/messages.js.map +1 -1
- package/dist/src/core/module-resolver.d.ts.map +1 -1
- package/dist/src/core/module-resolver.js.map +1 -1
- package/dist/src/core/options.d.ts +4 -0
- package/dist/src/core/options.d.ts.map +1 -1
- package/dist/src/core/parser.d.ts.map +1 -1
- package/dist/src/core/parser.js +36 -9
- package/dist/src/core/parser.js.map +1 -1
- package/dist/src/core/program.d.ts.map +1 -1
- package/dist/src/core/program.js +2 -0
- package/dist/src/core/program.js.map +1 -1
- package/dist/src/core/types.d.ts +10 -2
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/core/types.js.map +1 -1
- package/dist/src/core/util.d.ts +1 -0
- package/dist/src/core/util.d.ts.map +1 -1
- package/dist/src/core/util.js +1 -0
- package/dist/src/core/util.js.map +1 -1
- package/dist/src/emitter-framework/asset-emitter.js +2 -2
- package/dist/src/emitter-framework/asset-emitter.js.map +1 -1
- package/dist/src/emitter-framework/builders/object-builder.d.ts.map +1 -1
- package/dist/src/emitter-framework/builders/object-builder.js +1 -0
- package/dist/src/emitter-framework/builders/object-builder.js.map +1 -1
- package/dist/src/emitter-framework/type-emitter.d.ts +5 -5
- package/dist/src/emitter-framework/type-emitter.d.ts.map +1 -1
- package/dist/src/emitter-framework/type-emitter.js +13 -13
- package/dist/src/emitter-framework/type-emitter.js.map +1 -1
- package/dist/src/emitter-framework/types.d.ts +1 -1
- package/dist/src/emitter-framework/types.d.ts.map +1 -1
- package/dist/src/emitter-framework/types.js.map +1 -1
- package/dist/src/formatter/index.d.ts +1 -1
- package/dist/src/formatter/index.d.ts.map +1 -1
- package/dist/src/formatter/parser.d.ts +2 -6
- package/dist/src/formatter/parser.d.ts.map +1 -1
- package/dist/src/formatter/parser.js +1 -1
- package/dist/src/formatter/parser.js.map +1 -1
- package/dist/src/formatter/print/comment-handler.d.ts +1 -1
- package/dist/src/formatter/print/comment-handler.d.ts.map +1 -1
- package/dist/src/formatter/print/comment-handler.js +1 -2
- package/dist/src/formatter/print/comment-handler.js.map +1 -1
- package/dist/src/formatter/print/needs-parens.d.ts +1 -1
- package/dist/src/formatter/print/needs-parens.d.ts.map +1 -1
- package/dist/src/formatter/print/needs-parens.js +1 -0
- package/dist/src/formatter/print/needs-parens.js.map +1 -1
- package/dist/src/formatter/print/printer.d.ts +41 -40
- package/dist/src/formatter/print/printer.d.ts.map +1 -1
- package/dist/src/formatter/print/printer.js +6 -4
- package/dist/src/formatter/print/printer.js.map +1 -1
- package/dist/src/formatter/print/types.d.ts +3 -3
- package/dist/src/formatter/print/types.d.ts.map +1 -1
- package/dist/src/formatter/print/util.d.ts +3 -0
- package/dist/src/formatter/print/util.d.ts.map +1 -0
- package/dist/src/formatter/print/util.js +3 -0
- package/dist/src/formatter/print/util.js.map +1 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/init/init-template.d.ts +19 -1
- package/dist/src/init/init-template.d.ts.map +1 -1
- package/dist/src/init/init-template.js +15 -1
- package/dist/src/init/init-template.js.map +1 -1
- package/dist/src/init/init.d.ts +4 -4
- package/dist/src/init/init.d.ts.map +1 -1
- package/dist/src/init/init.js +41 -12
- package/dist/src/init/init.js.map +1 -1
- package/dist/src/lib/decorators.d.ts +1 -7
- package/dist/src/lib/decorators.d.ts.map +1 -1
- package/dist/src/lib/decorators.js +4 -11
- package/dist/src/lib/decorators.js.map +1 -1
- package/dist/src/server/completion.d.ts.map +1 -1
- package/dist/src/server/completion.js +9 -5
- package/dist/src/server/completion.js.map +1 -1
- package/dist/src/server/serverlib.d.ts.map +1 -1
- package/dist/src/server/serverlib.js +4 -2
- package/dist/src/server/serverlib.js.map +1 -1
- package/dist/src/server/symbol-structure.d.ts.map +1 -1
- package/dist/src/server/symbol-structure.js +3 -1
- package/dist/src/server/symbol-structure.js.map +1 -1
- package/dist/src/testing/types.d.ts.map +1 -1
- package/dist/src/testing/types.js.map +1 -1
- package/lib/decorators.tsp +8 -2
- package/lib/lib.tsp +1 -1
- 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(
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
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
|
-
}
|
|
33
|
+
});
|
|
34
|
+
return diagnostics.diagnostics;
|
|
24
35
|
}
|
|
25
|
-
export async function uninstallVSExtension() {
|
|
26
|
-
const vsixInstaller = getVsixInstallerPath();
|
|
27
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
2
|
-
|
|
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":"
|
|
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(
|
|
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(
|
|
9
|
-
|
|
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
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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;
|
|
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"}
|
package/dist/src/core/cli/cli.js
CHANGED
|
@@ -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 {
|
|
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
|
-
},
|
|
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(
|
|
117
|
-
.command("uninstall", "Uninstall VS Code Extension", () => { }, (args) => uninstallVSCodeExtension(
|
|
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.", () => { }, (
|
|
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
|
-
},
|
|
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
|
-
}),
|
|
149
|
-
.command("install", "Install typespec dependencies", () => { }, () => installTypeSpecDependencies(process.cwd()))
|
|
150
|
-
.command("info", "Show information about current TypeSpec compiler.", () => { }, (
|
|
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":"AAAA,IAAI;IACF,6DAA6D;IAC7D,aAAa;IACb,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;CAChD;AAAC,MAAM;IACN,+BAA+B;CAChC;AAED,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../src/core/cli/cli.ts"],"names":[],"mappings":"AAAA,IAAI;IACF,6DAA6D;IAC7D,aAAa;IACb,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;CAChD;AAAC,MAAM;IACN,+BAA+B;CAChC;AAED,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAGL,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,2BAA2B,EAC3B,WAAW,EACX,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAEpB,KAAK,UAAU,IAAI;IACjB,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,sBAAsB,eAAe,IAAI,CAAC,CAAC;IAEvD,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC/B,UAAU,CAAC,KAAK,CAAC;SACjB,IAAI,EAAE;SACN,MAAM,EAAE;SACR,mBAAmB,CAAC;QACnB,eAAe,EAAE,KAAK;QACtB,kBAAkB,EAAE,KAAK;KAC1B,CAAC;SACD,MAAM,CAAC,OAAO,EAAE;QACf,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,4BAA4B;QACzC,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,IAAI,EAAE,SAAS;QACf,WAAW,EACT,0FAA0F;QAC5F,OAAO,EAAE,IAAI;KACd,CAAC;SACD,OAAO,CACN,gBAAgB,EAChB,0BAA0B,EAC1B,CAAC,GAAG,EAAE,EAAE;QACN,OAAO,GAAG;aACP,UAAU,CAAC,MAAM,EAAE;YAClB,WAAW,EAAE,iEAAiE;YAC9E,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,IAAI;SACnB,CAAC;aACD,MAAM,CAAC,aAAa,EAAE;YACrB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,2BAA2B;YACvC,MAAM,EAAE,IAAI;SACb,CAAC;aACD,MAAM,CAAC,YAAY,EAAE;YACpB,IAAI,EAAE,QAAQ;YACd,QAAQ,EACN,qFAAqF;SACxF,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,IAAI;YACZ,QAAQ,EACN,sKAAsK;SACzK,CAAC;aACD,MAAM,CAAC,UAAU,EAAE;YAClB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,2CAA2C;SACtD,CAAC;aACD,MAAM,CAAC,QAAQ,EAAE;YAChB,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI;YACZ,QAAQ,EACN,gGAAgG;SACnG,CAAC;aACD,MAAM,CAAC,OAAO,EAAE;YACf,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,gDAAgD;SAC3D,CAAC;aACD,MAAM,CAAC,MAAM,EAAE;YACd,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,sBAAsB;SACjC,CAAC;aACD,MAAM,CAAC,OAAO,EAAE;YACf,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,4EAA4E;SACvF,CAAC;aACD,MAAM,CAAC,QAAQ,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,QAAQ,EACN,8KAA8K;SACjL,CAAC;aACD,MAAM,CAAC,eAAe,EAAE;YACvB,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,0EAA0E;SACrF,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,0CAA0C;SACrD,CAAC;aACD,MAAM,CAAC,mBAAmB,EAAE;YAC3B,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,0CAA0C;SACrD,CAAC;aACD,MAAM,CAAC,KAAK,EAAE;YACb,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,4DAA4D;SACvE,CAAC,CAAC;IACP,CAAC,EACD,WAAW,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CACvD;SACA,OAAO,CAAC,MAAM,EAAE,2BAA2B,EAAE,CAAC,GAAG,EAAE,EAAE;QACpD,OAAO,GAAG;aACP,aAAa,CAAC,CAAC,EAAE,uBAAuB,CAAC;aACzC,MAAM,CAAC,UAAU,EAAE;YAClB,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,sBAAsB;YACnC,OAAO,EAAE,KAAK;SACf,CAAC;aACD,OAAO,CACN,SAAS,EACT,2BAA2B,EAC3B,GAAG,EAAE,GAAE,CAAC,EACR,yBAAyB,CAA8C,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CACpF,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CACnC,CACF;aACA,OAAO,CACN,WAAW,EACX,6BAA6B,EAC7B,GAAG,EAAE,GAAE,CAAC,EACR,yBAAyB,CAAgD,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CACtF,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,CACrC,CACF,CAAC;IACN,CAAC,CAAC;SACD,OAAO,CAAC,IAAI,EAAE,iCAAiC,EAAE,CAAC,GAAG,EAAE,EAAE;QACxD,OAAO,GAAG;aACP,aAAa,CAAC,CAAC,EAAE,sBAAsB,CAAC;aACxC,OAAO,CACN,SAAS,EACT,kCAAkC,EAClC,GAAG,EAAE,GAAE,CAAC,EACR,yBAAyB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAC9D;aACA,OAAO,CACN,WAAW,EACX,wBAAwB,EACxB,GAAG,EAAE,GAAE,CAAC,EACR,yBAAyB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAChE,CAAC;IACN,CAAC,CAAC;SACD,OAAO,CACN,qBAAqB,EACrB,sCAAsC,EACtC,CAAC,GAAG,EAAE,EAAE;QACN,OAAO,GAAG;aACP,UAAU,CAAC,SAAS,EAAE;YACrB,WAAW,EAAE,wCAAwC;YACrD,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,IAAI;YACX,YAAY,EAAE,IAAI;SACnB,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,oBAAoB;SAC/B,CAAC;aACD,MAAM,CAAC,OAAO,EAAE;YACf,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,iCAAiC;SAC5C,CAAC,CAAC;IACP,CAAC,EACD,WAAW,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CACtD;SACA,OAAO,CACN,qBAAqB,EACrB,gCAAgC,EAChC,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE;QAC7B,WAAW,EAAE,oCAAoC;QACjD,IAAI,EAAE,QAAQ;KACf,CAAC,EACJ,yBAAyB,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAClE;SACA,OAAO,CACN,SAAS,EACT,+BAA+B,EAC/B,GAAG,EAAE,GAAE,CAAC,EACR,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,2BAA2B,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CACxE;SACA,OAAO,CACN,MAAM,EACN,mDAAmD,EACnD,GAAG,EAAE,GAAE,CAAC,EACR,yBAAyB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAC3D;SACA,OAAO,CAAC,eAAe,CAAC;SACxB,aAAa,CAAC,CAAC,EAAE,6CAA6C,CAAC,CAAC,IAAI,CAAC;AAC1E,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,KAAc,EAAE,EAAE;IAClD,sCAAsC;IACtC,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC9C,2BAA2B,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC;AAEH,IAAI,EAAE,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
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":"
|
|
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
|
|
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
|
|
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;
|
|
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 @@
|
|
|
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 @@
|
|
|
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 {
|
|
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
|
|
12
|
+
export interface CliHostArgs {
|
|
12
13
|
pretty?: boolean;
|
|
13
|
-
|
|
14
|
-
|
|
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;
|
|
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
|
-
|
|
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 =
|
|
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":"AAAA,wFAAwF;AAExF,OAAO,EAAsC,SAAS,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
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
|
|
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
|
|
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
|
|
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 = []) {
|