@typespec/compiler 1.10.0-dev.8 → 1.10.0
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/core/cli/actions/info/emitter-options.d.ts +40 -0
- package/dist/src/core/cli/actions/info/emitter-options.d.ts.map +1 -0
- package/dist/src/core/cli/actions/info/emitter-options.js +345 -0
- package/dist/src/core/cli/actions/info/emitter-options.js.map +1 -0
- package/dist/src/core/cli/actions/info.d.ts +5 -2
- package/dist/src/core/cli/actions/info.d.ts.map +1 -1
- package/dist/src/core/cli/actions/info.js +6 -2
- package/dist/src/core/cli/actions/info.js.map +1 -1
- package/dist/src/core/cli/cli.js +43 -4
- package/dist/src/core/cli/cli.js.map +1 -1
- package/dist/src/core/module-host.d.ts +5 -0
- package/dist/src/core/module-host.d.ts.map +1 -0
- package/dist/src/core/module-host.js +12 -0
- package/dist/src/core/module-host.js.map +1 -0
- package/dist/src/core/program.d.ts.map +1 -1
- package/dist/src/core/program.js +5 -11
- package/dist/src/core/program.js.map +1 -1
- package/dist/src/core/scanner.js +2 -2
- package/dist/src/core/scanner.js.map +1 -1
- package/dist/src/core/source-loader.d.ts.map +1 -1
- package/dist/src/core/source-loader.js +2 -11
- package/dist/src/core/source-loader.js.map +1 -1
- package/dist/src/experimental/mutators.js +3 -3
- package/dist/src/experimental/mutators.js.map +1 -1
- package/dist/src/lib/decorators.d.ts.map +1 -1
- package/dist/src/lib/decorators.js +8 -3
- package/dist/src/lib/decorators.js.map +1 -1
- package/dist/src/lib/examples.js +1 -1
- package/dist/src/lib/examples.js.map +1 -1
- package/dist/src/package-manger/npm-registry-utils.d.ts.map +1 -1
- package/dist/src/package-manger/npm-registry-utils.js +10 -2
- package/dist/src/package-manger/npm-registry-utils.js.map +1 -1
- package/dist/src/server/server-compile-manager.js +1 -1
- package/dist/src/server/server-compile-manager.js.map +1 -1
- package/dist/src/testing/index.d.ts +1 -1
- package/dist/src/testing/index.d.ts.map +1 -1
- package/dist/src/testing/index.js.map +1 -1
- package/dist/src/utils/fs-utils.d.ts.map +1 -1
- package/dist/src/utils/fs-utils.js +1 -1
- package/dist/src/utils/fs-utils.js.map +1 -1
- package/package.json +5 -5
- package/templates/scaffolding.json +3 -3
package/dist/manifest.js
CHANGED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { PackageJson } from "../../../../types/package-json.js";
|
|
2
|
+
import { CompilerHost, Diagnostic } from "../../../types.js";
|
|
3
|
+
interface EmitterOptionVariant {
|
|
4
|
+
type: string;
|
|
5
|
+
allowedValues?: string[];
|
|
6
|
+
default?: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
nestedOptions?: EmitterOptionInfo[];
|
|
9
|
+
}
|
|
10
|
+
interface EmitterOptionInfo {
|
|
11
|
+
name: string;
|
|
12
|
+
type: string;
|
|
13
|
+
allowedValues?: string[];
|
|
14
|
+
default?: string;
|
|
15
|
+
description?: string;
|
|
16
|
+
nestedOptions?: EmitterOptionInfo[];
|
|
17
|
+
/** When present, this option is a union of multiple variants */
|
|
18
|
+
variants?: EmitterOptionVariant[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Extract option information from a JSON Schema properties object.
|
|
22
|
+
* This is a pure function that can be tested independently.
|
|
23
|
+
*/
|
|
24
|
+
export declare function extractEmitterOptionsInfo(schema: any): EmitterOptionInfo[];
|
|
25
|
+
/**
|
|
26
|
+
* Format library metadata (name, version, description, homepage) as colorized key-value lines
|
|
27
|
+
* under a section title.
|
|
28
|
+
*/
|
|
29
|
+
export declare function formatLibraryInfo(manifest: PackageJson | undefined): string[];
|
|
30
|
+
/**
|
|
31
|
+
* Format emitter options as a colorized string for terminal display.
|
|
32
|
+
* Returns lines of formatted output.
|
|
33
|
+
*/
|
|
34
|
+
export declare function formatEmitterOptions(schema: any): string[];
|
|
35
|
+
/**
|
|
36
|
+
* Resolve a library and print its info and emitter options.
|
|
37
|
+
*/
|
|
38
|
+
export declare function printEmitterOptionsAction(host: CompilerHost, emitterName: string): Promise<readonly Diagnostic[]>;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=emitter-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emitter-options.d.ts","sourceRoot":"","sources":["../../../../../../src/core/cli/actions/info/emitter-options.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAGrE,OAAO,EAAE,YAAY,EAAE,UAAU,EAA6B,MAAM,mBAAmB,CAAC;AAkDxF,UAAU,oBAAoB;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACrC;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACpC,gEAAgE;IAChE,QAAQ,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACnC;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,GAAG,GAAG,iBAAiB,EAAE,CAY1E;AAgHD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,EAAE,CAsB7E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,EAAE,CAkB1D;AA4JD;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,YAAY,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CA4BhC"}
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
import pc from "picocolors";
|
|
3
|
+
import { ResolveModuleError, resolveModule } from "../../../../module-resolver/index.js";
|
|
4
|
+
import { createResolveModuleHost } from "../../../module-host.js";
|
|
5
|
+
import { loadJsFile } from "../../../source-loader.js";
|
|
6
|
+
import { NoTarget } from "../../../types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Resolve an emitter package and return its library definition and package manifest.
|
|
9
|
+
*/
|
|
10
|
+
async function resolveEmitterLibrary(host, emitterName, baseDir) {
|
|
11
|
+
try {
|
|
12
|
+
const module = await resolveModule(createResolveModuleHost(host), emitterName, {
|
|
13
|
+
baseDir,
|
|
14
|
+
conditions: ["import"],
|
|
15
|
+
});
|
|
16
|
+
const manifest = module.type === "module" ? module.manifest : undefined;
|
|
17
|
+
const entrypoint = module.type === "file" ? module.path : module.mainFile;
|
|
18
|
+
const [file, jsDiagnostics] = await loadJsFile(host, entrypoint, NoTarget);
|
|
19
|
+
if (!file) {
|
|
20
|
+
return { library: undefined, manifest, diagnostics: jsDiagnostics };
|
|
21
|
+
}
|
|
22
|
+
const libDefinition = file.esmExports.$lib;
|
|
23
|
+
return { library: libDefinition, manifest, diagnostics: jsDiagnostics };
|
|
24
|
+
}
|
|
25
|
+
catch (e) {
|
|
26
|
+
if (e instanceof ResolveModuleError) {
|
|
27
|
+
return {
|
|
28
|
+
library: undefined,
|
|
29
|
+
manifest: undefined,
|
|
30
|
+
diagnostics: [
|
|
31
|
+
{
|
|
32
|
+
code: "emitter-not-found",
|
|
33
|
+
severity: "error",
|
|
34
|
+
message: `Could not resolve emitter "${emitterName}". Make sure it is installed.\n ${e.message}`,
|
|
35
|
+
target: NoTarget,
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
throw e;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Extract option information from a JSON Schema properties object.
|
|
45
|
+
* This is a pure function that can be tested independently.
|
|
46
|
+
*/
|
|
47
|
+
export function extractEmitterOptionsInfo(schema) {
|
|
48
|
+
if (!schema || !schema.properties) {
|
|
49
|
+
return [];
|
|
50
|
+
}
|
|
51
|
+
const options = [];
|
|
52
|
+
for (const [name, prop] of Object.entries(schema.properties)) {
|
|
53
|
+
options.push(extractOptionInfo(name, prop));
|
|
54
|
+
}
|
|
55
|
+
return options;
|
|
56
|
+
}
|
|
57
|
+
function extractOptionInfo(name, prop) {
|
|
58
|
+
// Handle oneOf: extract variants, rendering object variants as nested
|
|
59
|
+
if (prop.oneOf) {
|
|
60
|
+
return extractOneOfOption(name, prop);
|
|
61
|
+
}
|
|
62
|
+
const info = {
|
|
63
|
+
name,
|
|
64
|
+
type: resolveType(prop),
|
|
65
|
+
};
|
|
66
|
+
if (prop.enum) {
|
|
67
|
+
info.allowedValues = prop.enum;
|
|
68
|
+
}
|
|
69
|
+
else if (prop.type === "array" && prop.items?.enum) {
|
|
70
|
+
info.allowedValues = prop.items.enum;
|
|
71
|
+
}
|
|
72
|
+
if (prop.default !== undefined) {
|
|
73
|
+
info.default = JSON.stringify(prop.default);
|
|
74
|
+
}
|
|
75
|
+
if (prop.description) {
|
|
76
|
+
info.description = Array.isArray(prop.description)
|
|
77
|
+
? prop.description.join("\n")
|
|
78
|
+
: prop.description;
|
|
79
|
+
}
|
|
80
|
+
// Nested object properties
|
|
81
|
+
if (prop.type === "object" && prop.properties) {
|
|
82
|
+
info.nestedOptions = [];
|
|
83
|
+
for (const [subName, subProp] of Object.entries(prop.properties)) {
|
|
84
|
+
info.nestedOptions.push(extractOptionInfo(subName, subProp));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return info;
|
|
88
|
+
}
|
|
89
|
+
function extractOneOfOption(name, prop) {
|
|
90
|
+
const rawVariants = prop.oneOf;
|
|
91
|
+
const info = {
|
|
92
|
+
name,
|
|
93
|
+
type: "",
|
|
94
|
+
variants: [],
|
|
95
|
+
};
|
|
96
|
+
if (prop.description) {
|
|
97
|
+
info.description = Array.isArray(prop.description)
|
|
98
|
+
? prop.description.join("\n")
|
|
99
|
+
: prop.description;
|
|
100
|
+
}
|
|
101
|
+
if (prop.default !== undefined) {
|
|
102
|
+
info.default = JSON.stringify(prop.default);
|
|
103
|
+
}
|
|
104
|
+
for (const variant of rawVariants) {
|
|
105
|
+
const v = {
|
|
106
|
+
type: variant.type ?? "unknown",
|
|
107
|
+
};
|
|
108
|
+
if (variant.enum) {
|
|
109
|
+
v.allowedValues = variant.enum;
|
|
110
|
+
}
|
|
111
|
+
if (variant.default !== undefined) {
|
|
112
|
+
v.default = JSON.stringify(variant.default);
|
|
113
|
+
}
|
|
114
|
+
if (variant.description) {
|
|
115
|
+
v.description = Array.isArray(variant.description)
|
|
116
|
+
? variant.description.join("\n")
|
|
117
|
+
: variant.description;
|
|
118
|
+
}
|
|
119
|
+
if (variant.type === "object" && variant.properties) {
|
|
120
|
+
v.nestedOptions = [];
|
|
121
|
+
for (const [subName, subProp] of Object.entries(variant.properties)) {
|
|
122
|
+
v.nestedOptions.push(extractOptionInfo(subName, subProp));
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
info.variants.push(v);
|
|
126
|
+
}
|
|
127
|
+
return info;
|
|
128
|
+
}
|
|
129
|
+
function resolveType(prop) {
|
|
130
|
+
if (prop.oneOf) {
|
|
131
|
+
return prop.oneOf.map((s) => resolveType(s)).join(" | ");
|
|
132
|
+
}
|
|
133
|
+
if (prop.type === "array") {
|
|
134
|
+
if (prop.items) {
|
|
135
|
+
const itemType = prop.items.type ?? "unknown";
|
|
136
|
+
return `${itemType}[]`;
|
|
137
|
+
}
|
|
138
|
+
return "array";
|
|
139
|
+
}
|
|
140
|
+
if (prop.type === "object" && prop.properties) {
|
|
141
|
+
const keys = Object.keys(prop.properties);
|
|
142
|
+
return `object { ${keys.join(", ")} }`;
|
|
143
|
+
}
|
|
144
|
+
return prop.type ?? "unknown";
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Format library metadata (name, version, description, homepage) as colorized key-value lines
|
|
148
|
+
* under a section title.
|
|
149
|
+
*/
|
|
150
|
+
export function formatLibraryInfo(manifest) {
|
|
151
|
+
const lines = [];
|
|
152
|
+
lines.push(pc.bold("Library"));
|
|
153
|
+
lines.push("");
|
|
154
|
+
const name = manifest?.name ?? "unknown";
|
|
155
|
+
lines.push(` ${pc.gray("Name:")} ${pc.cyan(name)}`);
|
|
156
|
+
if (manifest?.version) {
|
|
157
|
+
lines.push(` ${pc.gray("Version:")} ${pc.yellow(manifest.version)}`);
|
|
158
|
+
}
|
|
159
|
+
if (manifest?.description) {
|
|
160
|
+
lines.push(` ${pc.gray("Description:")} ${manifest.description}`);
|
|
161
|
+
}
|
|
162
|
+
if (manifest?.homepage) {
|
|
163
|
+
lines.push(` ${pc.gray("Homepage:")} ${pc.underline(pc.blue(manifest.homepage))}`);
|
|
164
|
+
}
|
|
165
|
+
return lines;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Format emitter options as a colorized string for terminal display.
|
|
169
|
+
* Returns lines of formatted output.
|
|
170
|
+
*/
|
|
171
|
+
export function formatEmitterOptions(schema) {
|
|
172
|
+
const lines = [];
|
|
173
|
+
lines.push(pc.bold("Emitter Options"));
|
|
174
|
+
lines.push("");
|
|
175
|
+
const options = extractEmitterOptionsInfo(schema);
|
|
176
|
+
if (options.length === 0) {
|
|
177
|
+
lines.push(pc.gray(" This emitter does not define any options."));
|
|
178
|
+
return lines;
|
|
179
|
+
}
|
|
180
|
+
for (const opt of options) {
|
|
181
|
+
formatOption(lines, opt, 1);
|
|
182
|
+
}
|
|
183
|
+
return lines;
|
|
184
|
+
}
|
|
185
|
+
function formatOption(lines, opt, depth) {
|
|
186
|
+
const indent = " ".repeat(depth);
|
|
187
|
+
const descIndent = " ".repeat(depth + 1);
|
|
188
|
+
// Union with variants: render each variant separately
|
|
189
|
+
if (opt.variants && opt.variants.length > 0) {
|
|
190
|
+
lines.push(`${indent}${pc.bold(pc.cyan(opt.name))}:`);
|
|
191
|
+
if (opt.description) {
|
|
192
|
+
for (const descLine of opt.description.split("\n")) {
|
|
193
|
+
lines.push(`${descIndent}${renderMarkdownLine(descLine)}`);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
for (const variant of opt.variants) {
|
|
197
|
+
formatVariant(lines, variant, depth + 1);
|
|
198
|
+
}
|
|
199
|
+
lines.push("");
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
// Simple option: name: type/enum (default: value)
|
|
203
|
+
const parts = [`${pc.bold(pc.cyan(opt.name))}:`];
|
|
204
|
+
if (opt.allowedValues) {
|
|
205
|
+
const valuesStr = opt.allowedValues.map((v) => pc.green(`"${v}"`)).join(" | ");
|
|
206
|
+
if (opt.type.endsWith("[]")) {
|
|
207
|
+
parts.push(`(${valuesStr})${pc.yellow("[]")}`);
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
parts.push(valuesStr);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
else if (opt.type) {
|
|
214
|
+
parts.push(pc.yellow(opt.type));
|
|
215
|
+
}
|
|
216
|
+
if (opt.default !== undefined) {
|
|
217
|
+
parts.push(pc.gray(`(default: ${colorizeDefault(opt.default, opt.type)})`));
|
|
218
|
+
}
|
|
219
|
+
lines.push(`${indent}${parts.join(" ")}`);
|
|
220
|
+
if (opt.description) {
|
|
221
|
+
for (const descLine of opt.description.split("\n")) {
|
|
222
|
+
lines.push(`${descIndent}${renderMarkdownLine(descLine)}`);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
if (opt.nestedOptions && opt.nestedOptions.length > 0) {
|
|
226
|
+
for (const sub of opt.nestedOptions) {
|
|
227
|
+
formatOption(lines, sub, depth + 1);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
lines.push("");
|
|
231
|
+
}
|
|
232
|
+
function formatVariant(lines, variant, depth) {
|
|
233
|
+
const indent = " ".repeat(depth);
|
|
234
|
+
// Build variant header line
|
|
235
|
+
const parts = [`${pc.gray("-")}`];
|
|
236
|
+
if (variant.allowedValues) {
|
|
237
|
+
const valuesStr = variant.allowedValues.map((v) => pc.green(`"${v}"`)).join(" | ");
|
|
238
|
+
if (variant.type.endsWith("[]")) {
|
|
239
|
+
parts.push(`(${valuesStr})${pc.yellow("[]")}`);
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
parts.push(valuesStr);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
parts.push(pc.yellow(variant.type));
|
|
247
|
+
}
|
|
248
|
+
if (variant.default !== undefined) {
|
|
249
|
+
parts.push(pc.gray(`(default: ${colorizeDefault(variant.default, variant.type)})`));
|
|
250
|
+
}
|
|
251
|
+
lines.push(`${indent}${parts.join(" ")}`);
|
|
252
|
+
if (variant.description) {
|
|
253
|
+
for (const descLine of variant.description.split("\n")) {
|
|
254
|
+
lines.push(`${indent} ${renderMarkdownLine(descLine)}`);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
if (variant.nestedOptions && variant.nestedOptions.length > 0) {
|
|
258
|
+
for (const sub of variant.nestedOptions) {
|
|
259
|
+
formatOption(lines, sub, depth + 1);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
function colorizeDefault(value, type) {
|
|
264
|
+
if (type.includes("string")) {
|
|
265
|
+
return pc.green(value);
|
|
266
|
+
}
|
|
267
|
+
if (type.includes("boolean") || type.includes("number") || type.includes("int")) {
|
|
268
|
+
return pc.yellow(value);
|
|
269
|
+
}
|
|
270
|
+
return pc.yellow(value);
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Render basic markdown inline formatting for terminal display.
|
|
274
|
+
* Handles: `code`, **bold**, *italic*, and [links](url).
|
|
275
|
+
* Plain text is rendered in gray, formatted tokens get their own colors.
|
|
276
|
+
*/
|
|
277
|
+
function renderMarkdownLine(line) {
|
|
278
|
+
// Tokenize: split into plain text and markdown tokens
|
|
279
|
+
// Process in order: links, code, bold, italic
|
|
280
|
+
const segments = [];
|
|
281
|
+
const remaining = line;
|
|
282
|
+
// Regex that matches any markdown token we handle
|
|
283
|
+
const mdRegex = /`([^`]+)`|\*\*([^*]+)\*\*|\[([^\]]+)\]\(([^)]+)\)/g;
|
|
284
|
+
let lastIndex = 0;
|
|
285
|
+
let match;
|
|
286
|
+
while ((match = mdRegex.exec(remaining)) !== null) {
|
|
287
|
+
// Add plain text before this match
|
|
288
|
+
if (match.index > lastIndex) {
|
|
289
|
+
segments.push({ text: remaining.slice(lastIndex, match.index), formatted: false });
|
|
290
|
+
}
|
|
291
|
+
if (match[1] !== undefined) {
|
|
292
|
+
// Inline code: `code`
|
|
293
|
+
segments.push({ text: pc.bold(pc.white(match[1])), formatted: true });
|
|
294
|
+
}
|
|
295
|
+
else if (match[2] !== undefined) {
|
|
296
|
+
// Bold: **text**
|
|
297
|
+
segments.push({ text: pc.bold(match[2]), formatted: true });
|
|
298
|
+
}
|
|
299
|
+
else if (match[3] !== undefined && match[4] !== undefined) {
|
|
300
|
+
// Link: [text](url)
|
|
301
|
+
segments.push({
|
|
302
|
+
text: `${match[3]} ${pc.underline(pc.blue(match[4]))}`,
|
|
303
|
+
formatted: true,
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
lastIndex = match.index + match[0].length;
|
|
307
|
+
}
|
|
308
|
+
// Add trailing plain text
|
|
309
|
+
if (lastIndex < remaining.length) {
|
|
310
|
+
segments.push({ text: remaining.slice(lastIndex), formatted: false });
|
|
311
|
+
}
|
|
312
|
+
// If no markdown was found, just return gray
|
|
313
|
+
if (segments.length === 0) {
|
|
314
|
+
return pc.gray(line);
|
|
315
|
+
}
|
|
316
|
+
return segments.map((s) => (s.formatted ? s.text : pc.gray(s.text))).join("");
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Resolve a library and print its info and emitter options.
|
|
320
|
+
*/
|
|
321
|
+
export async function printEmitterOptionsAction(host, emitterName) {
|
|
322
|
+
const cwd = process.cwd();
|
|
323
|
+
const { library, manifest, diagnostics } = await resolveEmitterLibrary(host, emitterName, cwd);
|
|
324
|
+
if (diagnostics.length > 0) {
|
|
325
|
+
return diagnostics;
|
|
326
|
+
}
|
|
327
|
+
// Library info header
|
|
328
|
+
const infoLines = formatLibraryInfo(manifest);
|
|
329
|
+
for (const line of infoLines) {
|
|
330
|
+
console.log(line);
|
|
331
|
+
}
|
|
332
|
+
console.log("");
|
|
333
|
+
// Emitter options
|
|
334
|
+
if (!library) {
|
|
335
|
+
console.log(pc.yellow(`Could not load library definition for "${emitterName}".`));
|
|
336
|
+
return [];
|
|
337
|
+
}
|
|
338
|
+
const schema = library.emitter?.options;
|
|
339
|
+
const optionLines = formatEmitterOptions(schema);
|
|
340
|
+
for (const line of optionLines) {
|
|
341
|
+
console.log(line);
|
|
342
|
+
}
|
|
343
|
+
return [];
|
|
344
|
+
}
|
|
345
|
+
//# sourceMappingURL=emitter-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emitter-options.js","sourceRoot":"","sources":["../../../../../../src/core/cli/actions/info/emitter-options.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAEzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAA4B,QAAQ,EAAmB,MAAM,mBAAmB,CAAC;AAQxF;;GAEG;AACH,KAAK,UAAU,qBAAqB,CAClC,IAAkB,EAClB,WAAmB,EACnB,OAAe;IAEf,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE;YAC7E,OAAO;YACP,UAAU,EAAE,CAAC,QAAQ,CAAC;SACvB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC1E,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;QACtE,CAAC;QAED,MAAM,aAAa,GAAqC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAC7E,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;IAC1E,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,IAAI,CAAC,YAAY,kBAAkB,EAAE,CAAC;YACpC,OAAO;gBACL,OAAO,EAAE,SAAS;gBAClB,QAAQ,EAAE,SAAS;gBACnB,WAAW,EAAE;oBACX;wBACE,IAAI,EAAE,mBAAmB;wBACzB,QAAQ,EAAE,OAAO;wBACjB,OAAO,EAAE,8BAA8B,WAAW,oCAAoC,CAAC,CAAC,OAAO,EAAE;wBACjG,MAAM,EAAE,QAAQ;qBACjB;iBACF;aACF,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAqBD;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAW;IACnD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAwB,EAAE,CAAC;IAExC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAM,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,IAAS;IAChD,sEAAsE;IACtE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,IAAI,GAAsB;QAC9B,IAAI;QACJ,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;KACxB,CAAC;IAEF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC;IACjC,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACvC,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7B,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IACvB,CAAC;IAED,2BAA2B;IAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,IAAS;IACjD,MAAM,WAAW,GAAU,IAAI,CAAC,KAAK,CAAC;IAEtC,MAAM,IAAI,GAAsB;QAC9B,IAAI;QACJ,IAAI,EAAE,EAAE;QACR,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7B,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IACvB,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,CAAC,GAAyB;YAC9B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,SAAS;SAChC,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,CAAC,CAAC,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;gBAChD,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;QAC1B,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACpD,CAAC,CAAC,aAAa,GAAG,EAAE,CAAC;YACrB,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAM,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBACzE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,IAAS;IAC5B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;YAC9C,OAAO,GAAG,QAAQ,IAAI,CAAC;QACzB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,OAAO,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAiC;IACjE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,IAAI,SAAS,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAErD,IAAI,QAAQ,EAAE,OAAO,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,QAAQ,EAAE,WAAW,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAW;IAC9C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,MAAM,OAAO,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAElD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,KAAe,EAAE,GAAsB,EAAE,KAAa;IAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAE1C,sDAAsD;IACtD,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAEtD,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnD,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACnC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,OAAO;IACT,CAAC;IAED,kDAAkD;IAClD,MAAM,KAAK,GAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAE3D,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvF,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;SAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAE1C,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;YACpC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,KAAe,EAAE,OAA6B,EAAE,KAAa;IAClF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAElC,4BAA4B;IAC5B,MAAM,KAAK,GAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5C,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3F,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAE1C,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,KAAK,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9D,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YACxC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAa,EAAE,IAAY;IAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAChF,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,IAAY;IACtC,sDAAsD;IACtD,8CAA8C;IAC9C,MAAM,QAAQ,GAA2C,EAAE,CAAC;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC;IAEvB,kDAAkD;IAClD,MAAM,OAAO,GAAG,oDAAoD,CAAC;IAErE,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAClD,mCAAmC;QACnC,IAAI,KAAK,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACrF,CAAC;QAED,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3B,sBAAsB;YACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;aAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAClC,iBAAiB;YACjB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;aAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5D,oBAAoB;YACpB,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBACtD,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;QACL,CAAC;QAED,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5C,CAAC;IAED,0BAA0B;IAC1B,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,6CAA6C;IAC7C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAkB,EAClB,WAAmB;IAEnB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;IAE/F,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,sBAAsB;IACtB,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC9C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,kBAAkB;IAClB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,0CAA0C,WAAW,IAAI,CAAC,CAAC,CAAC;QAClF,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;IACxC,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACjD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { CompilerHost, Diagnostic } from "../../types.js";
|
|
2
|
+
export interface InfoCliArgs {
|
|
3
|
+
emitter?: string;
|
|
4
|
+
}
|
|
2
5
|
/**
|
|
3
|
-
* Print the resolved TypeSpec configuration.
|
|
6
|
+
* Print the resolved TypeSpec configuration, or emitter options if an emitter is specified.
|
|
4
7
|
*/
|
|
5
|
-
export declare function printInfoAction(host: CompilerHost): Promise<readonly Diagnostic[]>;
|
|
8
|
+
export declare function printInfoAction(host: CompilerHost, args: InfoCliArgs): Promise<readonly Diagnostic[]>;
|
|
6
9
|
//# sourceMappingURL=info.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../../../src/core/cli/actions/info.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../../../src/core/cli/actions/info.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG1D,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAgBhC"}
|
|
@@ -2,10 +2,14 @@
|
|
|
2
2
|
import { fileURLToPath } from "url";
|
|
3
3
|
import { stringify } from "yaml";
|
|
4
4
|
import { loadTypeSpecConfigForPath } from "../../../config/config-loader.js";
|
|
5
|
+
import { printEmitterOptionsAction } from "./info/emitter-options.js";
|
|
5
6
|
/**
|
|
6
|
-
* Print the resolved TypeSpec configuration.
|
|
7
|
+
* Print the resolved TypeSpec configuration, or emitter options if an emitter is specified.
|
|
7
8
|
*/
|
|
8
|
-
export async function printInfoAction(host) {
|
|
9
|
+
export async function printInfoAction(host, args) {
|
|
10
|
+
if (args.emitter) {
|
|
11
|
+
return printEmitterOptionsAction(host, args.emitter);
|
|
12
|
+
}
|
|
9
13
|
const cwd = process.cwd();
|
|
10
14
|
console.log(`Module: ${fileURLToPath(import.meta.url)}`);
|
|
11
15
|
const config = await loadTypeSpecConfigForPath(host, cwd, true, true);
|
|
@@ -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,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,
|
|
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,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAMtE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAkB,EAClB,IAAiB;IAEjB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,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,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC;IAEhE,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,IAAI,sBAAsB,EAAE,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,WAAW,CAAC;AAC5B,CAAC"}
|
package/dist/src/core/cli/cli.js
CHANGED
|
@@ -9,16 +9,50 @@ catch {
|
|
|
9
9
|
import yargs from "yargs";
|
|
10
10
|
import { installTypeSpecDependencies } from "../../install/install.js";
|
|
11
11
|
import { typespecVersion } from "../../manifest.js";
|
|
12
|
+
import { logDiagnostics } from "../diagnostics.js";
|
|
12
13
|
import { getTypeSpecEngine } from "../engine.js";
|
|
13
14
|
import { compileAction } from "./actions/compile/compile.js";
|
|
14
15
|
import { formatAction } from "./actions/format.js";
|
|
15
16
|
import { printInfoAction } from "./actions/info.js";
|
|
17
|
+
import { printEmitterOptionsAction } from "./actions/info/emitter-options.js";
|
|
16
18
|
import { initAction } from "./actions/init.js";
|
|
17
19
|
import { installVSExtension, uninstallVSExtension } from "./actions/vs.js";
|
|
18
20
|
import { installVSCodeExtension, uninstallVSCodeExtension, } from "./actions/vscode.js";
|
|
19
|
-
import { handleInternalCompilerError, withCliHost, withCliHostAndDiagnostics, } from "./utils.js";
|
|
21
|
+
import { createCLICompilerHost, handleInternalCompilerError, logDiagnosticCount, withCliHost, withCliHostAndDiagnostics, } from "./utils.js";
|
|
22
|
+
/**
|
|
23
|
+
* Intercept `tsp compile --emit <emitter> --help` to display emitter options.
|
|
24
|
+
* Returns true if the interception was handled.
|
|
25
|
+
*/
|
|
26
|
+
async function handleCompileEmitHelp(argv) {
|
|
27
|
+
if (argv[0] !== "compile" || !argv.includes("--help")) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
const emitIdx = argv.indexOf("--emit");
|
|
31
|
+
if (emitIdx === -1 || emitIdx + 1 >= argv.length) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
const emitterName = argv[emitIdx + 1];
|
|
35
|
+
if (!emitterName || emitterName.startsWith("-")) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
const host = createCLICompilerHost({ pretty: true });
|
|
39
|
+
const diagnostics = await printEmitterOptionsAction(host, emitterName);
|
|
40
|
+
if (diagnostics.length > 0) {
|
|
41
|
+
logDiagnostics(diagnostics, host.logSink);
|
|
42
|
+
logDiagnosticCount(diagnostics);
|
|
43
|
+
}
|
|
44
|
+
if (diagnostics.some((d) => d.severity === "error")) {
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
20
49
|
async function main() {
|
|
21
|
-
|
|
50
|
+
const argv = process.argv.slice(2);
|
|
51
|
+
// Handle `tsp compile --emit <emitter> --help` early before yargs intercepts --help
|
|
52
|
+
if (await handleCompileEmitHelp(argv)) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
await yargs(argv)
|
|
22
56
|
.scriptName("tsp")
|
|
23
57
|
.help()
|
|
24
58
|
.strict()
|
|
@@ -81,7 +115,7 @@ async function main() {
|
|
|
81
115
|
.option("emit", {
|
|
82
116
|
type: "array",
|
|
83
117
|
string: true,
|
|
84
|
-
describe: "Name of the emitters",
|
|
118
|
+
describe: "Name of the emitters. Use `tsp info <emitter>` to see available emitter options.",
|
|
85
119
|
})
|
|
86
120
|
.option("list-files", {
|
|
87
121
|
type: "boolean",
|
|
@@ -198,7 +232,12 @@ async function main() {
|
|
|
198
232
|
directory: process.cwd(),
|
|
199
233
|
savePackageManager: args["save-package-manager"],
|
|
200
234
|
})))
|
|
201
|
-
.command("info", "Show information about the current TypeSpec compiler
|
|
235
|
+
.command("info [emitter]", "Show information about the current TypeSpec compiler, or about a specific emitter.", (cmd) => {
|
|
236
|
+
return cmd.positional("emitter", {
|
|
237
|
+
description: "The emitter package name to show options for.",
|
|
238
|
+
type: "string",
|
|
239
|
+
});
|
|
240
|
+
}, withCliHostAndDiagnostics((host, args) => printInfoAction(host, { emitter: args.emitter })))
|
|
202
241
|
.version(getTypeSpecEngine() === "tsp" ? `${typespecVersion} standalone` : typespecVersion)
|
|
203
242
|
.demandCommand(1, "You must use one of the supported commands.").argv;
|
|
204
243
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../src/core/cli/cli.ts"],"names":[],"mappings":"AAAA,IAAI,CAAC;IACH,6DAA6D;IAC7D,aAAa;IACb,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;AACjD,CAAC;AAAC,MAAM,CAAC;IACP,+BAA+B;AACjC,CAAC;AAED,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,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;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../src/core/cli/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ResolveModuleHost } from "../module-resolver/index.js";
|
|
2
|
+
import type { SystemHost } from "./types.js";
|
|
3
|
+
/** Create a {@link ResolveModuleHost} from a {@link SystemHost}. */
|
|
4
|
+
export declare function createResolveModuleHost(host: SystemHost): ResolveModuleHost;
|
|
5
|
+
//# sourceMappingURL=module-host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-host.d.ts","sourceRoot":"","sources":["../../../src/core/module-host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,oEAAoE;AACpE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,UAAU,GAAG,iBAAiB,CAS3E"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Create a {@link ResolveModuleHost} from a {@link SystemHost}. */
|
|
2
|
+
export function createResolveModuleHost(host) {
|
|
3
|
+
return {
|
|
4
|
+
realpath: host.realpath,
|
|
5
|
+
stat: host.stat,
|
|
6
|
+
readFile: async (path) => {
|
|
7
|
+
const file = await host.readFile(path);
|
|
8
|
+
return file.text;
|
|
9
|
+
},
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=module-host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-host.js","sourceRoot":"","sources":["../../../src/core/module-host.ts"],"names":[],"mappings":"AAGA,oEAAoE;AACpE,MAAM,UAAU,uBAAuB,CAAC,IAAgB;IACtD,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACvC,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../../src/core/program.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../../src/core/program.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAiB,MAAM,cAAc,CAAC;AAmBtD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAa/C,OAAO,EACL,YAAY,EACZ,UAAU,EAIV,WAAW,EAEX,gBAAgB,EAChB,eAAe,EACf,eAAe,EAEf,eAAe,EAGf,SAAS,EAIT,UAAU,EAMV,MAAM,EACN,IAAI,EAEJ,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,OAAO;IACtB,eAAe,EAAE,eAAe,CAAC;IAGjC,iEAAiE;IACjE,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC7C,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAI7C,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IAIjB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAU5C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IAGjC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAKtC,QAAQ,IAAI,OAAO,CAAC;IACpB,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/C,iBAAiB,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,GAAG,IAAI,CAAC;IAK5D,sBAAsB,IAAI,SAAS,CAAC;IAEpC,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,IAAI,GAAG,SAAS,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC;IAKnF,wDAAwD;IACxD,4BAA4B,CAAC,UAAU,EAAE,UAAU,GAAG,eAAe,CAAC;IAEtE;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,UAAU,UAAU;IAClB,YAAY,EAAE,WAAW,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,eAAe,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;CACnC;AAcD,wBAAsB,OAAO,CAC3B,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,eAAoB,EAC7B,UAAU,CAAC,EAAE,OAAO,oBAyCrB"}
|
package/dist/src/core/program.js
CHANGED
|
@@ -17,6 +17,7 @@ import { builtInLinterLibraryName, createBuiltInLinterLibrary, createLinter, res
|
|
|
17
17
|
import { createLogger } from "./logger/index.js";
|
|
18
18
|
import { createTracer } from "./logger/tracer.js";
|
|
19
19
|
import { createDiagnostic } from "./messages.js";
|
|
20
|
+
import { createResolveModuleHost } from "./module-host.js";
|
|
20
21
|
import { createResolver } from "./name-resolver.js";
|
|
21
22
|
import { parse, parseStandaloneTypeReference } from "./parser.js";
|
|
22
23
|
import { getDirectoryPath, joinPaths, resolvePath } from "./path-utils.js";
|
|
@@ -443,7 +444,10 @@ async function createProgram(host, mainFile, options = {}, oldProgram) {
|
|
|
443
444
|
async function resolveJSLibrary(specifier, baseDir, locationContext) {
|
|
444
445
|
try {
|
|
445
446
|
return [
|
|
446
|
-
await resolveModule(
|
|
447
|
+
await resolveModule(createResolveModuleHost(host), specifier, {
|
|
448
|
+
baseDir,
|
|
449
|
+
conditions: ["import"],
|
|
450
|
+
}),
|
|
447
451
|
[],
|
|
448
452
|
];
|
|
449
453
|
}
|
|
@@ -456,16 +460,6 @@ async function createProgram(host, mainFile, options = {}, oldProgram) {
|
|
|
456
460
|
}
|
|
457
461
|
}
|
|
458
462
|
}
|
|
459
|
-
function getResolveModuleHost() {
|
|
460
|
-
return {
|
|
461
|
-
realpath: host.realpath,
|
|
462
|
-
stat: host.stat,
|
|
463
|
-
readFile: async (path) => {
|
|
464
|
-
const file = await host.readFile(path);
|
|
465
|
-
return file.text;
|
|
466
|
-
},
|
|
467
|
-
};
|
|
468
|
-
}
|
|
469
463
|
// It's important that we use the compiler version that resolves locally
|
|
470
464
|
// from the input TypeSpec source location. Otherwise, there will be undefined
|
|
471
465
|
// runtime behavior when decorators and handlers expect a
|