@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
|
@@ -13,6 +13,7 @@ export interface CompileCliArgs {
|
|
|
13
13
|
config?: string;
|
|
14
14
|
"warn-as-error"?: boolean;
|
|
15
15
|
"no-emit"?: boolean;
|
|
16
|
+
"ignore-deprecated"?: boolean;
|
|
16
17
|
args?: string[];
|
|
17
18
|
}
|
|
18
19
|
export declare function getCompilerOptions(host: CompilerHost, entrypoint: string, cwd: string, args: CompileCliArgs, env: Record<string, string | undefined>): Promise<[CompilerOptions | undefined, readonly Diagnostic[]]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../../../../../src/core/cli/actions/compile/args.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../../../../../src/core/cli/actions/compile/args.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG7D,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,YAAY,EAClB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,cAAc,EACpB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GACtC,OAAO,CAAC,CAAC,eAAe,GAAG,SAAS,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC,CAkC/D"}
|
|
@@ -1,56 +1,36 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { deepClone, omitUndefined } from "../../../util.js";
|
|
1
|
+
import { resolveCompilerOptions } from "../../../../config/config-to-options.js";
|
|
2
|
+
import { createDiagnosticCollector } from "../../../diagnostics.js";
|
|
3
|
+
import { resolvePath } from "../../../path-utils.js";
|
|
4
|
+
import { omitUndefined } from "../../../util.js";
|
|
6
5
|
export async function getCompilerOptions(host, entrypoint, cwd, args, env) {
|
|
7
|
-
var _a
|
|
8
|
-
cwd = normalizePath(cwd);
|
|
6
|
+
var _a;
|
|
9
7
|
const diagnostics = createDiagnosticCollector();
|
|
10
8
|
const pathArg = (_a = args["output-dir"]) !== null && _a !== void 0 ? _a : args["output-path"];
|
|
11
|
-
const
|
|
12
|
-
?
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if (config.diagnostics.some((d) => d.severity === "error")) {
|
|
17
|
-
return [undefined, config.diagnostics];
|
|
18
|
-
}
|
|
19
|
-
config.diagnostics.forEach((x) => diagnostics.add(x));
|
|
20
|
-
}
|
|
9
|
+
const cliOutputDir = pathArg
|
|
10
|
+
? pathArg.startsWith("{")
|
|
11
|
+
? pathArg
|
|
12
|
+
: resolvePath(cwd, pathArg)
|
|
13
|
+
: undefined;
|
|
21
14
|
const cliOptions = resolveCliOptions(args);
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
warnAsError: (_c = args["warn-as-error"]) !== null && _c !== void 0 ? _c : config.warnAsError,
|
|
27
|
-
trace: (_d = args.trace) !== null && _d !== void 0 ? _d : config.trace,
|
|
28
|
-
emit: (_e = args.emit) !== null && _e !== void 0 ? _e : config.emit,
|
|
29
|
-
options: resolveEmitterOptions(config, cliOptions),
|
|
30
|
-
};
|
|
31
|
-
const cliOutputDir = pathArg ? resolvePath(cwd, pathArg) : undefined;
|
|
32
|
-
const expandedConfig = diagnostics.pipe(expandConfigVariables(configWithCliArgs, {
|
|
33
|
-
cwd: cwd,
|
|
34
|
-
outputDir: cliOutputDir,
|
|
35
|
-
env,
|
|
15
|
+
const resolvedOptions = diagnostics.pipe(await resolveCompilerOptions(host, {
|
|
16
|
+
entrypoint,
|
|
17
|
+
configPath: args["config"] && resolvePath(cwd, args["config"]),
|
|
18
|
+
cwd,
|
|
36
19
|
args: resolveConfigArgs(args),
|
|
20
|
+
env,
|
|
21
|
+
overrides: omitUndefined({
|
|
22
|
+
outputDir: cliOutputDir,
|
|
23
|
+
imports: args["import"],
|
|
24
|
+
warnAsError: args["warn-as-error"],
|
|
25
|
+
trace: args.trace,
|
|
26
|
+
emit: args.emit,
|
|
27
|
+
options: cliOptions.options,
|
|
28
|
+
}),
|
|
37
29
|
}));
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
nostdlib: args["nostdlib"],
|
|
41
|
-
watchForChanges: args["watch"],
|
|
42
|
-
noEmit: args["no-emit"],
|
|
30
|
+
return diagnostics.wrap(omitUndefined({
|
|
31
|
+
...resolvedOptions,
|
|
43
32
|
miscOptions: cliOptions.miscOptions,
|
|
44
|
-
|
|
45
|
-
config: config.filename,
|
|
46
|
-
additionalImports: expandedConfig["imports"],
|
|
47
|
-
warningAsError: expandedConfig.warnAsError,
|
|
48
|
-
trace: expandedConfig.trace,
|
|
49
|
-
emit: expandedConfig.emit,
|
|
50
|
-
options: expandedConfig.options,
|
|
51
|
-
linterRuleSet: expandedConfig.linter,
|
|
52
|
-
});
|
|
53
|
-
return diagnostics.wrap(options);
|
|
33
|
+
}));
|
|
54
34
|
}
|
|
55
35
|
function resolveConfigArgs(args) {
|
|
56
36
|
var _a;
|
|
@@ -66,6 +46,7 @@ function resolveConfigArgs(args) {
|
|
|
66
46
|
}
|
|
67
47
|
function resolveCliOptions(args) {
|
|
68
48
|
var _a;
|
|
49
|
+
let miscOptions;
|
|
69
50
|
const options = {};
|
|
70
51
|
for (const option of (_a = args.options) !== null && _a !== void 0 ? _a : []) {
|
|
71
52
|
const optionParts = option.split("=");
|
|
@@ -75,10 +56,10 @@ function resolveCliOptions(args) {
|
|
|
75
56
|
let optionKeyParts = optionParts[0].split(".");
|
|
76
57
|
if (optionKeyParts.length === 1) {
|
|
77
58
|
const key = optionKeyParts[0];
|
|
78
|
-
if (
|
|
79
|
-
|
|
59
|
+
if (miscOptions === undefined) {
|
|
60
|
+
miscOptions = {};
|
|
80
61
|
}
|
|
81
|
-
|
|
62
|
+
miscOptions[key] = optionParts[1];
|
|
82
63
|
continue;
|
|
83
64
|
}
|
|
84
65
|
else if (optionKeyParts.length > 2) {
|
|
@@ -95,20 +76,6 @@ function resolveCliOptions(args) {
|
|
|
95
76
|
}
|
|
96
77
|
options[emitterName][key] = optionParts[1];
|
|
97
78
|
}
|
|
98
|
-
return options;
|
|
99
|
-
}
|
|
100
|
-
function resolveEmitterOptions(config, cliOptions) {
|
|
101
|
-
var _a, _b;
|
|
102
|
-
const configuredEmitters = deepClone((_a = config.options) !== null && _a !== void 0 ? _a : {});
|
|
103
|
-
for (const [emitterName, cliOptionOverride] of Object.entries(cliOptions)) {
|
|
104
|
-
if (emitterName === "miscOptions") {
|
|
105
|
-
continue;
|
|
106
|
-
}
|
|
107
|
-
configuredEmitters[emitterName] = {
|
|
108
|
-
...((_b = configuredEmitters[emitterName]) !== null && _b !== void 0 ? _b : {}),
|
|
109
|
-
...cliOptionOverride,
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
return configuredEmitters;
|
|
79
|
+
return { options, miscOptions };
|
|
113
80
|
}
|
|
114
81
|
//# sourceMappingURL=args.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../../../../../src/core/cli/actions/compile/args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../../../../../src/core/cli/actions/compile/args.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { CliCompilerHost } from "../../types.js";
|
|
1
2
|
import { CompileCliArgs } from "./args.js";
|
|
2
|
-
export declare function compileAction(args: CompileCliArgs & {
|
|
3
|
+
export declare function compileAction(host: CliCompilerHost, args: CompileCliArgs & {
|
|
3
4
|
path: string;
|
|
4
5
|
pretty?: boolean;
|
|
5
6
|
}): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../../../../../src/core/cli/actions/compile/compile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../../../../../src/core/cli/actions/compile/compile.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAsB,MAAM,WAAW,CAAC;AAG/D,wBAAsB,aAAa,CACjC,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,iBAmB1D"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import watch from "node-watch";
|
|
2
1
|
import { resolve } from "path";
|
|
3
2
|
import { logDiagnostics } from "../../../diagnostics.js";
|
|
4
3
|
import { resolveTypeSpecEntrypoint } from "../../../entrypoint-resolution.js";
|
|
5
|
-
import {
|
|
4
|
+
import { resolvePath } from "../../../path-utils.js";
|
|
6
5
|
import { compile as compileProgram } from "../../../program.js";
|
|
7
|
-
import {
|
|
6
|
+
import { handleInternalCompilerError, logDiagnosticCount } from "../../utils.js";
|
|
8
7
|
import { getCompilerOptions } from "./args.js";
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
import { createWatchHost, createWatcher } from "./watch.js";
|
|
9
|
+
export async function compileAction(host, args) {
|
|
11
10
|
const diagnostics = [];
|
|
12
11
|
const entrypoint = await resolveTypeSpecEntrypoint(host, resolvePath(process.cwd(), args.path), (diag) => diagnostics.push(diag));
|
|
13
12
|
if (entrypoint === undefined || diagnostics.length > 0) {
|
|
@@ -15,13 +14,11 @@ export async function compileAction(args) {
|
|
|
15
14
|
process.exit(1);
|
|
16
15
|
}
|
|
17
16
|
const cliOptions = await getCompilerOptionsOrExit(host, entrypoint, args);
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
process.exit(1);
|
|
17
|
+
if (cliOptions.watchForChanges) {
|
|
18
|
+
await compileWatch(host, entrypoint, cliOptions);
|
|
21
19
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
console.log("No emitter was configured, no output was generated. Use `--emit <emitterName>` to pick emitter or specify it in the typespec config.");
|
|
20
|
+
else {
|
|
21
|
+
await compileOnce(host, entrypoint, cliOptions);
|
|
25
22
|
}
|
|
26
23
|
}
|
|
27
24
|
async function getCompilerOptionsOrExit(host, entrypoint, args) {
|
|
@@ -35,22 +32,28 @@ async function getCompilerOptionsOrExit(host, entrypoint, args) {
|
|
|
35
32
|
}
|
|
36
33
|
return options;
|
|
37
34
|
}
|
|
38
|
-
function
|
|
35
|
+
async function compileOnce(host, path, compilerOptions) {
|
|
36
|
+
try {
|
|
37
|
+
const program = await compileProgram(host, resolve(path), compilerOptions);
|
|
38
|
+
logProgramResult(host, program);
|
|
39
|
+
if (program.hasError()) {
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
handleInternalCompilerError(e);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function compileWatch(host, path, compilerOptions) {
|
|
39
48
|
let compileRequested = false;
|
|
40
49
|
let currentCompilePromise = undefined;
|
|
41
|
-
const log = (message, ...optionalParams) => {
|
|
42
|
-
const prefix = compilerOptions.watchForChanges ? `[${new Date().toLocaleTimeString()}] ` : "";
|
|
43
|
-
// eslint-disable-next-line no-console
|
|
44
|
-
console.log(`${prefix}${message}`, ...optionalParams);
|
|
45
|
-
};
|
|
46
50
|
const runCompilePromise = () => {
|
|
47
51
|
// Don't run the compiler if it's already running
|
|
48
|
-
if (
|
|
52
|
+
if (currentCompilePromise === undefined) {
|
|
49
53
|
// Clear the console before compiling in watch mode
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
+
// eslint-disable-next-line no-console
|
|
55
|
+
console.clear();
|
|
56
|
+
watchHost === null || watchHost === void 0 ? void 0 : watchHost.forceJSReload();
|
|
54
57
|
currentCompilePromise = compileProgram(host, resolve(path), compilerOptions)
|
|
55
58
|
.then(onCompileFinished)
|
|
56
59
|
.catch(handleInternalCompilerError);
|
|
@@ -60,47 +63,51 @@ function compileInput(host, path, compilerOptions, printSuccess = true) {
|
|
|
60
63
|
}
|
|
61
64
|
return currentCompilePromise;
|
|
62
65
|
};
|
|
63
|
-
const
|
|
66
|
+
const scheduleCompile = () => void runCompilePromise();
|
|
67
|
+
const watcher = createWatcher((_name) => {
|
|
68
|
+
scheduleCompile();
|
|
69
|
+
});
|
|
70
|
+
const watchHost = (host = createWatchHost());
|
|
64
71
|
const onCompileFinished = (program) => {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
logDiagnostics(program.diagnostics, host.logSink);
|
|
68
|
-
logDiagnosticCount(program.diagnostics);
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
if (printSuccess) {
|
|
72
|
-
log("Compilation completed successfully.");
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
// eslint-disable-next-line no-console
|
|
76
|
-
console.log(); // Insert a newline
|
|
72
|
+
watcher === null || watcher === void 0 ? void 0 : watcher.updateWatchedFiles([...program.sourceFiles.keys(), ...program.jsSourceFiles.keys()]);
|
|
73
|
+
logProgramResult(host, program, { showTimestamp: true });
|
|
77
74
|
currentCompilePromise = undefined;
|
|
78
|
-
if (
|
|
75
|
+
if (compileRequested) {
|
|
79
76
|
compileRequested = false;
|
|
80
|
-
|
|
77
|
+
scheduleCompile();
|
|
81
78
|
}
|
|
82
79
|
return program;
|
|
83
80
|
};
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
runCompile();
|
|
93
|
-
});
|
|
94
|
-
// Handle Ctrl+C for termination
|
|
95
|
-
process.on("SIGINT", () => {
|
|
96
|
-
watcher.close();
|
|
97
|
-
// eslint-disable-next-line no-console
|
|
98
|
-
console.info("Terminating watcher...\n");
|
|
99
|
-
});
|
|
81
|
+
scheduleCompile();
|
|
82
|
+
return new Promise((resolve, reject) => {
|
|
83
|
+
// Handle Ctrl+C for termination
|
|
84
|
+
process.on("SIGINT", () => {
|
|
85
|
+
watcher.close();
|
|
86
|
+
// eslint-disable-next-line no-console
|
|
87
|
+
console.info("Terminating watcher...\n");
|
|
88
|
+
resolve();
|
|
100
89
|
});
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
function logProgramResult(host, program, { showTimestamp } = {}) {
|
|
93
|
+
const log = (message, ...optionalParams) => {
|
|
94
|
+
const timestamp = showTimestamp ? `[${new Date().toLocaleTimeString()}] ` : "";
|
|
95
|
+
// eslint-disable-next-line no-console
|
|
96
|
+
console.log(`${timestamp}${message}`, ...optionalParams);
|
|
97
|
+
};
|
|
98
|
+
if (program.diagnostics.length > 0) {
|
|
99
|
+
log("Diagnostics were reported during compilation:\n");
|
|
100
|
+
logDiagnostics(program.diagnostics, host.logSink);
|
|
101
|
+
logDiagnosticCount(program.diagnostics);
|
|
101
102
|
}
|
|
102
103
|
else {
|
|
103
|
-
|
|
104
|
+
log("Compilation completed successfully.");
|
|
105
|
+
}
|
|
106
|
+
// eslint-disable-next-line no-console
|
|
107
|
+
console.log(); // Insert a newline
|
|
108
|
+
if (program.emitters.length === 0 && !program.compilerOptions.noEmit) {
|
|
109
|
+
// eslint-disable-next-line no-console
|
|
110
|
+
log("No emitter was configured, no output was generated. Use `--emit <emitterName>` to pick emitter or specify it in the typespec config.");
|
|
104
111
|
}
|
|
105
112
|
}
|
|
106
113
|
//# sourceMappingURL=compile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../../../../src/core/cli/actions/compile/compile.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../../../../src/core/cli/actions/compile/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAW,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGzE,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAkB,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAA6B,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEvF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAqB,EACrB,IAAyD;IAEzD,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,MAAM,yBAAyB,CAChD,IAAI,EACJ,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EACrC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CACjC,CAAC;IACF,IAAI,UAAU,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;QACtD,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IACD,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAE1E,IAAI,UAAU,CAAC,eAAe,EAAE;QAC9B,MAAM,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;KAClD;SAAM;QACL,MAAM,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;KACjD;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,IAAkB,EAClB,UAAkB,EAClB,IAAoB;IAEpB,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,MAAM,kBAAkB,CACrD,IAAI,EACJ,UAAU,EACV,OAAO,CAAC,GAAG,EAAE,EACb,IAAI,EACJ,OAAO,CAAC,GAAG,CACZ,CAAC;IACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;QAC1B,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KAC3C;IACD,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,IAAkB,EAClB,IAAY,EACZ,eAAgC;IAEhC,IAAI;QACF,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC;QAC3E,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE;YACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;KACF;IAAC,OAAO,CAAC,EAAE;QACV,2BAA2B,CAAC,CAAC,CAAC,CAAC;KAChC;AACH,CAAC;AAED,SAAS,YAAY,CACnB,IAAkB,EAClB,IAAY,EACZ,eAAgC;IAEhC,IAAI,gBAAgB,GAAY,KAAK,CAAC;IACtC,IAAI,qBAAqB,GAAiC,SAAS,CAAC;IAEpE,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC7B,iDAAiD;QACjD,IAAI,qBAAqB,KAAK,SAAS,EAAE;YACvC,mDAAmD;YACnD,sCAAsC;YACtC,OAAO,CAAC,KAAK,EAAE,CAAC;YAEhB,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,aAAa,EAAE,CAAC;YAC3B,qBAAqB,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC;iBACzE,IAAI,CAAC,iBAAiB,CAAC;iBACvB,KAAK,CAAC,2BAA2B,CAAC,CAAC;SACvC;aAAM;YACL,gBAAgB,GAAG,IAAI,CAAC;SACzB;QAED,OAAO,qBAAqB,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,KAAK,iBAAiB,EAAE,CAAC;IAEvD,MAAM,OAAO,GAAmB,aAAa,CAAC,CAAC,KAAa,EAAE,EAAE;QAC9D,eAAe,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAc,CAAC,IAAI,GAAG,eAAe,EAAE,CAAC,CAAC;IAExD,MAAM,iBAAiB,GAAG,CAAC,OAAgB,EAAE,EAAE;QAC7C,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9F,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEzD,qBAAqB,GAAG,SAAS,CAAC;QAClC,IAAI,gBAAgB,EAAE;YACpB,gBAAgB,GAAG,KAAK,CAAC;YACzB,eAAe,EAAE,CAAC;SACnB;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,eAAe,EAAE,CAAC;IAClB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,gCAAgC;QAChC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,sCAAsC;YACtC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACzC,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CACvB,IAAkB,EAClB,OAAgB,EAChB,EAAE,aAAa,KAAkC,EAAE;IAEnD,MAAM,GAAG,GAAG,CAAC,OAAa,EAAE,GAAG,cAAqB,EAAE,EAAE;QACtD,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,OAAO,EAAE,EAAE,GAAG,cAAc,CAAC,CAAC;IAC3D,CAAC,CAAC;IAEF,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;QAClC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QACvD,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAClD,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;KACzC;SAAM;QACL,GAAG,CAAC,qCAAqC,CAAC,CAAC;KAC5C;IACD,sCAAsC;IACtC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,mBAAmB;IAElC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE;QACpE,sCAAsC;QACtC,GAAG,CACD,sIAAsI,CACvI,CAAC;KACH;AACH,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { WatchEventType } from "fs";
|
|
3
|
+
import { CompilerHost } from "../../../types.js";
|
|
4
|
+
export interface ProjectWatcher {
|
|
5
|
+
/** Set the files to watch. */
|
|
6
|
+
readonly updateWatchedFiles: (files: string[]) => void;
|
|
7
|
+
/** Close the watcher. */
|
|
8
|
+
readonly close: () => void;
|
|
9
|
+
}
|
|
10
|
+
export interface WatchHost extends CompilerHost {
|
|
11
|
+
forceJSReload(): void;
|
|
12
|
+
}
|
|
13
|
+
export declare function createWatcher(onFileChanged: (event: WatchEventType, name: string) => void): ProjectWatcher;
|
|
14
|
+
export declare function createWatchHost(): WatchHost;
|
|
15
|
+
//# sourceMappingURL=watch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../../../../src/core/cli/actions/compile/watch.ts"],"names":[],"mappings":";AAAA,OAAO,EAAa,cAAc,EAAS,MAAM,IAAI,CAAC;AAGtD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,QAAQ,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAEvD,yBAAyB;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,SAAU,SAAQ,YAAY;IAC7C,aAAa,IAAI,IAAI,CAAC;CACvB;AAED,wBAAgB,aAAa,CAC3B,aAAa,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAC3D,cAAc,CAmChB;AAED,wBAAgB,eAAe,IAAI,SAAS,CAU3C"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { watch } from "fs";
|
|
2
|
+
import { pathToFileURL } from "url";
|
|
3
|
+
import { NodeHost } from "../../../node-host.js";
|
|
4
|
+
export function createWatcher(onFileChanged) {
|
|
5
|
+
const current = new Map();
|
|
6
|
+
const dupFilter = createDupsFilter();
|
|
7
|
+
return { updateWatchedFiles, close };
|
|
8
|
+
function watchFile(file) {
|
|
9
|
+
const watcher = watch(file, dupFilter((event, _name) => {
|
|
10
|
+
onFileChanged(event, file);
|
|
11
|
+
}));
|
|
12
|
+
return watcher;
|
|
13
|
+
}
|
|
14
|
+
function close() {
|
|
15
|
+
for (const watcher of current.values()) {
|
|
16
|
+
watcher.close();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function updateWatchedFiles(files) {
|
|
20
|
+
var _a;
|
|
21
|
+
const cleanup = new Set(current.keys());
|
|
22
|
+
for (const file of files) {
|
|
23
|
+
if (!current.has(file)) {
|
|
24
|
+
current.set(file, watchFile(file));
|
|
25
|
+
}
|
|
26
|
+
cleanup.delete(file);
|
|
27
|
+
}
|
|
28
|
+
for (const file of cleanup) {
|
|
29
|
+
(_a = current.get(file)) === null || _a === void 0 ? void 0 : _a.close();
|
|
30
|
+
current.delete(file);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export function createWatchHost() {
|
|
35
|
+
let count = 0;
|
|
36
|
+
return {
|
|
37
|
+
...NodeHost,
|
|
38
|
+
forceJSReload,
|
|
39
|
+
getJsImport: (path) => import(pathToFileURL(path).href + `?=${count}`),
|
|
40
|
+
};
|
|
41
|
+
function forceJSReload() {
|
|
42
|
+
count++;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function createDupsFilter() {
|
|
46
|
+
let memo = {};
|
|
47
|
+
return function (fn) {
|
|
48
|
+
return function (event, name) {
|
|
49
|
+
memo[name] = [event, name];
|
|
50
|
+
setTimeout(function () {
|
|
51
|
+
Object.values(memo).forEach((args) => {
|
|
52
|
+
fn(...args);
|
|
53
|
+
});
|
|
54
|
+
memo = {};
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=watch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../../../../src/core/cli/actions/compile/watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,EAAE,MAAM,IAAI,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAejD,MAAM,UAAU,aAAa,CAC3B,aAA4D;IAE5D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC7C,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IACrC,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;IAErC,SAAS,SAAS,CAAC,IAAY;QAC7B,MAAM,OAAO,GAAG,KAAK,CACnB,IAAI,EACJ,SAAS,CAAC,CAAC,KAAqB,EAAE,KAAa,EAAE,EAAE;YACjD,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CACH,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,SAAS,KAAK;QACZ,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE;YACtC,OAAO,CAAC,KAAK,EAAE,CAAC;SACjB;IACH,CAAC;IAED,SAAS,kBAAkB,CAAC,KAAe;;QACzC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACtB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;aACpC;YACD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACtB;QAED,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;YAC1B,MAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,0CAAE,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACtB;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO;QACL,GAAG,QAAQ;QACX,aAAa;QACb,WAAW,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;KAC/E,CAAC;IACF,SAAS,aAAa;QACpB,KAAK,EAAE,CAAC;IACV,CAAC;AACH,CAAC;AACD,SAAS,gBAAgB;IACvB,IAAI,IAAI,GAA6C,EAAE,CAAC;IACxD,OAAO,UAAU,EAA6C;QAC5D,OAAO,UAAU,KAAqB,EAAE,IAAY;YAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC3B,UAAU,CAAC;gBACT,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACnC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;gBACd,CAAC,CAAC,CAAC;gBACH,IAAI,GAAG,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { CliCompilerHost } from "../types.js";
|
|
1
2
|
export interface FormatArgs {
|
|
2
3
|
include: string[];
|
|
3
4
|
exclude?: string[];
|
|
4
5
|
debug?: boolean;
|
|
5
6
|
check?: boolean;
|
|
6
7
|
}
|
|
7
|
-
export declare function formatAction(args: FormatArgs): Promise<void>;
|
|
8
|
+
export declare function formatAction(host: CliCompilerHost, args: FormatArgs): Promise<void>;
|
|
8
9
|
//# sourceMappingURL=format.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../../src/core/cli/actions/format.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../../src/core/cli/actions/format.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AACD,wBAAsB,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,iBAqBzE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { findUnformattedTypeSpecFiles, formatTypeSpecFiles } from "../../formatter-fs.js";
|
|
2
|
-
export async function formatAction(args) {
|
|
2
|
+
export async function formatAction(host, args) {
|
|
3
3
|
if (args["check"]) {
|
|
4
4
|
const unformatted = await findUnformattedTypeSpecFiles(args["include"], {
|
|
5
5
|
exclude: args["exclude"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../../../src/core/cli/actions/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../../../src/core/cli/actions/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAS1F,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAqB,EAAE,IAAgB;IACxE,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE;QACjB,MAAM,WAAW,GAAG,MAAM,4BAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACtE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;YACxB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QACH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,SAAS,WAAW,CAAC,MAAM,qBAAqB,CAAC,CAAC;YAC9D,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;gBAC9B,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;aAC3B;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;KACF;SAAM;QACL,MAAM,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACzC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;YACxB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;KACJ;AACH,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { CompilerHost } from "../../types.js";
|
|
1
|
+
import { CompilerHost, Diagnostic } from "../../types.js";
|
|
2
2
|
/**
|
|
3
3
|
* Print the resolved TypeSpec configuration.
|
|
4
4
|
*/
|
|
5
|
-
export declare function printInfoAction(host: CompilerHost): Promise<
|
|
5
|
+
export declare function printInfoAction(host: CompilerHost): Promise<readonly Diagnostic[]>;
|
|
6
6
|
//# sourceMappingURL=info.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../../../src/core/cli/actions/info.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../../../src/core/cli/actions/info.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE1D;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAexF"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/* eslint-disable no-console */
|
|
2
2
|
import { fileURLToPath } from "url";
|
|
3
3
|
import { loadTypeSpecConfigForPath } from "../../../config/config-loader.js";
|
|
4
|
-
import { logDiagnostics } from "../../diagnostics.js";
|
|
5
|
-
import { logDiagnosticCount } from "../utils.js";
|
|
6
4
|
/**
|
|
7
5
|
* Print the resolved TypeSpec configuration.
|
|
8
6
|
*/
|
|
@@ -18,10 +16,6 @@ export async function printInfoAction(host) {
|
|
|
18
16
|
console.log("-----------");
|
|
19
17
|
console.log(jsyaml.dump(config, { replacer }));
|
|
20
18
|
console.log("-----------");
|
|
21
|
-
|
|
22
|
-
logDiagnosticCount(config.diagnostics);
|
|
23
|
-
if (config.diagnostics.some((d) => d.severity === "error")) {
|
|
24
|
-
process.exit(1);
|
|
25
|
-
}
|
|
19
|
+
return config.diagnostics;
|
|
26
20
|
}
|
|
27
21
|
//# sourceMappingURL=info.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../../../src/core/cli/actions/info.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../../../src/core/cli/actions/info.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAG7E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAkB;;IACtD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,WAAW,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,KAAU,EAAE,EAAE,CAC/C,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IAEjD,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAA,MAAM,CAAC,QAAQ,mCAAI,sBAAsB,EAAE,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,WAAW,CAAC;AAC5B,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { Diagnostic } from "../../types.js";
|
|
2
|
+
import { CliCompilerHost } from "../types.js";
|
|
1
3
|
export interface InitArgs {
|
|
2
4
|
templatesUrl?: string;
|
|
3
|
-
pretty?: boolean;
|
|
4
5
|
}
|
|
5
|
-
export declare function initAction(args: InitArgs): Promise<
|
|
6
|
+
export declare function initAction(host: CliCompilerHost, args: InitArgs): Promise<readonly Diagnostic[]>;
|
|
6
7
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../../src/core/cli/actions/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../../src/core/cli/actions/init.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,QAAQ;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAUhC"}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import { InitTemplateError, initTypeSpecProject } from "../../../init/init.js";
|
|
2
|
-
|
|
3
|
-
import { createCLICompilerHost } from "../utils.js";
|
|
4
|
-
export async function initAction(args) {
|
|
5
|
-
const host = createCLICompilerHost(args);
|
|
2
|
+
export async function initAction(host, args) {
|
|
6
3
|
try {
|
|
7
4
|
await initTypeSpecProject(host, process.cwd(), args.templatesUrl);
|
|
5
|
+
return [];
|
|
8
6
|
}
|
|
9
7
|
catch (e) {
|
|
10
8
|
if (e instanceof InitTemplateError) {
|
|
11
|
-
|
|
12
|
-
process.exit(1);
|
|
9
|
+
return e.diagnostics;
|
|
13
10
|
}
|
|
14
11
|
throw e;
|
|
15
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../src/core/cli/actions/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../src/core/cli/actions/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAQ/E,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAqB,EACrB,IAAc;IAEd,IAAI;QACF,MAAM,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAClE,OAAO,EAAE,CAAC;KACX;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,YAAY,iBAAiB,EAAE;YAClC,OAAO,CAAC,CAAC,WAAW,CAAC;SACtB;QACD,MAAM,CAAC,CAAC;KACT;AACH,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { Diagnostic } from "../../types.js";
|
|
2
|
+
import { CliCompilerHost } from "../types.js";
|
|
3
|
+
export declare function installVSExtension(host: CliCompilerHost): Promise<readonly Diagnostic[]>;
|
|
4
|
+
export declare function uninstallVSExtension(host: CliCompilerHost): Promise<readonly Diagnostic[]>;
|
|
3
5
|
//# sourceMappingURL=vs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vs.d.ts","sourceRoot":"","sources":["../../../../../src/core/cli/actions/vs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vs.d.ts","sourceRoot":"","sources":["../../../../../src/core/cli/actions/vs.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAY,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAQ9C,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CA2B9F;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAShG"}
|