@typespec/compiler 0.46.0-dev.9 → 0.47.0-dev.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/config/config-loader.d.ts.map +1 -1
- package/dist/src/config/config-loader.js +1 -0
- package/dist/src/config/config-loader.js.map +1 -1
- package/dist/src/config/config-schema.d.ts.map +1 -1
- package/dist/src/config/config-schema.js +24 -0
- package/dist/src/config/config-schema.js.map +1 -1
- package/dist/src/config/types.d.ts +8 -1
- package/dist/src/config/types.d.ts.map +1 -1
- package/dist/src/core/checker.d.ts.map +1 -1
- package/dist/src/core/checker.js +13 -8
- package/dist/src/core/checker.js.map +1 -1
- package/dist/src/core/cli/args.d.ts.map +1 -1
- package/dist/src/core/cli/args.js +1 -0
- package/dist/src/core/cli/args.js.map +1 -1
- package/dist/src/core/helpers/index.d.ts +1 -0
- package/dist/src/core/helpers/index.d.ts.map +1 -1
- package/dist/src/core/helpers/index.js +1 -0
- package/dist/src/core/helpers/index.js.map +1 -1
- package/dist/src/core/helpers/location-context.d.ts +4 -0
- package/dist/src/core/helpers/location-context.d.ts.map +1 -0
- package/dist/src/core/helpers/location-context.js +9 -0
- package/dist/src/core/helpers/location-context.js.map +1 -0
- package/dist/src/core/helpers/type-name-utils.d.ts.map +1 -1
- package/dist/src/core/helpers/type-name-utils.js +8 -3
- package/dist/src/core/helpers/type-name-utils.js.map +1 -1
- package/dist/src/core/index.d.ts +1 -1
- package/dist/src/core/index.d.ts.map +1 -1
- package/dist/src/core/index.js +1 -1
- package/dist/src/core/index.js.map +1 -1
- package/dist/src/core/library.d.ts +3 -1
- package/dist/src/core/library.d.ts.map +1 -1
- package/dist/src/core/library.js +6 -1
- package/dist/src/core/library.js.map +1 -1
- package/dist/src/core/linter.d.ts +10 -0
- package/dist/src/core/linter.d.ts.map +1 -0
- package/dist/src/core/linter.js +166 -0
- package/dist/src/core/linter.js.map +1 -0
- package/dist/src/core/messages.d.ts +77 -2
- package/dist/src/core/messages.d.ts.map +1 -1
- package/dist/src/core/messages.js +27 -0
- package/dist/src/core/messages.js.map +1 -1
- package/dist/src/core/node-host.d.ts +3 -0
- package/dist/src/core/node-host.d.ts.map +1 -1
- package/dist/src/core/node-host.js +22 -1
- package/dist/src/core/node-host.js.map +1 -1
- package/dist/src/core/options.d.ts +3 -1
- 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 +56 -29
- package/dist/src/core/parser.js.map +1 -1
- package/dist/src/core/program.d.ts +3 -17
- package/dist/src/core/program.d.ts.map +1 -1
- package/dist/src/core/program.js +90 -46
- package/dist/src/core/program.js.map +1 -1
- package/dist/src/core/schema-validator.d.ts +1 -0
- package/dist/src/core/schema-validator.d.ts.map +1 -1
- package/dist/src/core/schema-validator.js +2 -2
- package/dist/src/core/schema-validator.js.map +1 -1
- package/dist/src/core/types.d.ts +110 -11
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/core/types.js.map +1 -1
- package/dist/src/emitter-framework/asset-emitter.d.ts.map +1 -1
- package/dist/src/emitter-framework/asset-emitter.js +89 -45
- package/dist/src/emitter-framework/asset-emitter.js.map +1 -1
- package/dist/src/emitter-framework/type-emitter.d.ts +43 -22
- package/dist/src/emitter-framework/type-emitter.d.ts.map +1 -1
- package/dist/src/emitter-framework/type-emitter.js +90 -23
- package/dist/src/emitter-framework/type-emitter.js.map +1 -1
- package/dist/src/emitter-framework/types.d.ts +14 -4
- package/dist/src/emitter-framework/types.d.ts.map +1 -1
- package/dist/src/emitter-framework/types.js +1 -0
- package/dist/src/emitter-framework/types.js.map +1 -1
- package/dist/src/formatter/parser.d.ts.map +1 -1
- package/dist/src/formatter/parser.js +4 -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 +37 -5
- 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.js +1 -1
- package/dist/src/formatter/print/printer.d.ts +3 -1
- package/dist/src/formatter/print/printer.d.ts.map +1 -1
- package/dist/src/formatter/print/printer.js +118 -32
- package/dist/src/formatter/print/printer.js.map +1 -1
- package/dist/src/init/init-template.d.ts +3 -1
- package/dist/src/init/init-template.d.ts.map +1 -1
- package/dist/src/init/init-template.js +3 -6
- package/dist/src/init/init-template.js.map +1 -1
- package/dist/src/init/init.d.ts.map +1 -1
- package/dist/src/init/init.js +96 -16
- package/dist/src/init/init.js.map +1 -1
- package/dist/src/lib/decorators.d.ts +9 -0
- package/dist/src/lib/decorators.d.ts.map +1 -1
- package/dist/src/lib/decorators.js +9 -0
- package/dist/src/lib/decorators.js.map +1 -1
- package/dist/src/testing/index.d.ts +1 -0
- package/dist/src/testing/index.d.ts.map +1 -1
- package/dist/src/testing/index.js +1 -0
- package/dist/src/testing/index.js.map +1 -1
- package/dist/src/testing/rule-tester.d.ts +12 -0
- package/dist/src/testing/rule-tester.d.ts.map +1 -0
- package/dist/src/testing/rule-tester.js +34 -0
- package/dist/src/testing/rule-tester.js.map +1 -0
- package/entrypoints/cli.js +5 -0
- package/entrypoints/server.js +5 -0
- package/lib/decorators.tsp +8 -0
- package/package.json +12 -9
package/dist/src/core/program.js
CHANGED
|
@@ -6,6 +6,7 @@ import { createChecker } from "./checker.js";
|
|
|
6
6
|
import { compilerAssert, createSourceFile } from "./diagnostics.js";
|
|
7
7
|
import { resolveTypeSpecEntrypoint, resolveTypeSpecEntrypointForDir, } from "./entrypoint-resolution.js";
|
|
8
8
|
import { getLibraryUrlsLoaded } from "./library.js";
|
|
9
|
+
import { createLinter } from "./linter.js";
|
|
9
10
|
import { createLogger } from "./logger/index.js";
|
|
10
11
|
import { createTracer } from "./logger/tracer.js";
|
|
11
12
|
import { createDiagnostic } from "./messages.js";
|
|
@@ -136,6 +137,7 @@ export async function compile(host, mainFile, options = {}, oldProgram // NOTE:
|
|
|
136
137
|
const emitters = [];
|
|
137
138
|
const requireImports = new Map();
|
|
138
139
|
const loadedLibraries = new Map();
|
|
140
|
+
const sourceFileLocationContexts = new WeakMap();
|
|
139
141
|
let error = false;
|
|
140
142
|
const logger = createLogger({ sink: host.logSink });
|
|
141
143
|
const tracer = createTracer(logger, { filter: options.trace });
|
|
@@ -167,6 +169,7 @@ export async function compile(host, mainFile, options = {}, oldProgram // NOTE:
|
|
|
167
169
|
},
|
|
168
170
|
getGlobalNamespaceType,
|
|
169
171
|
resolveTypeReference,
|
|
172
|
+
getSourceFileLocationContext,
|
|
170
173
|
projectRoot: getDirectoryPath((_d = (_c = options.config) !== null && _c !== void 0 ? _c : resolvedMain) !== null && _d !== void 0 ? _d : ""),
|
|
171
174
|
};
|
|
172
175
|
trace("compiler.options", JSON.stringify(options, null, 2));
|
|
@@ -181,22 +184,25 @@ export async function compile(host, mainFile, options = {}, oldProgram // NOTE:
|
|
|
181
184
|
if (resolvedMain && options.additionalImports) {
|
|
182
185
|
const importScript = options.additionalImports.map((i) => `import "${i}";`).join("\n");
|
|
183
186
|
const sourceFile = createSourceFile(importScript, joinPaths(getDirectoryPath(resolvedMain), `__additional_imports`));
|
|
187
|
+
sourceFileLocationContexts.set(sourceFile, { type: "project" });
|
|
184
188
|
await loadTypeSpecScript(sourceFile);
|
|
185
189
|
}
|
|
186
190
|
if (resolvedMain) {
|
|
187
|
-
await loadMain(resolvedMain
|
|
191
|
+
await loadMain(resolvedMain);
|
|
188
192
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
let emitterOptions = options.options;
|
|
192
|
-
/* eslint-disable deprecation/deprecation */
|
|
193
|
-
if (options.emitters) {
|
|
194
|
-
emit !== null && emit !== void 0 ? emit : (emit = Object.keys(options.emitters));
|
|
195
|
-
emitterOptions !== null && emitterOptions !== void 0 ? emitterOptions : (emitterOptions = options.emitters);
|
|
196
|
-
}
|
|
197
|
-
/* eslint-enable deprecation/deprecation */
|
|
198
|
-
await loadEmitters(resolvedMain, emit !== null && emit !== void 0 ? emit : [], emitterOptions !== null && emitterOptions !== void 0 ? emitterOptions : {});
|
|
193
|
+
else {
|
|
194
|
+
return program;
|
|
199
195
|
}
|
|
196
|
+
const basedir = getDirectoryPath(resolvedMain);
|
|
197
|
+
let emit = options.emit;
|
|
198
|
+
let emitterOptions = options.options;
|
|
199
|
+
/* eslint-disable deprecation/deprecation */
|
|
200
|
+
if (options.emitters) {
|
|
201
|
+
emit !== null && emit !== void 0 ? emit : (emit = Object.keys(options.emitters));
|
|
202
|
+
emitterOptions !== null && emitterOptions !== void 0 ? emitterOptions : (emitterOptions = options.emitters);
|
|
203
|
+
}
|
|
204
|
+
/* eslint-enable deprecation/deprecation */
|
|
205
|
+
await loadEmitters(basedir, emit !== null && emit !== void 0 ? emit : [], emitterOptions !== null && emitterOptions !== void 0 ? emitterOptions : {});
|
|
200
206
|
if (oldProgram &&
|
|
201
207
|
mapEquals(oldProgram.sourceFiles, program.sourceFiles) &&
|
|
202
208
|
deepEquals(oldProgram.compilerOptions, program.compilerOptions)) {
|
|
@@ -204,11 +210,16 @@ export async function compile(host, mainFile, options = {}, oldProgram // NOTE:
|
|
|
204
210
|
}
|
|
205
211
|
// let GC reclaim old program, we do not reuse it beyond this point.
|
|
206
212
|
oldProgram = undefined;
|
|
213
|
+
const linter = createLinter(program, (name) => loadLibrary(basedir, name));
|
|
214
|
+
if (options.linterRuleSet) {
|
|
215
|
+
program.reportDiagnostics(await linter.extendRuleSet(options.linterRuleSet));
|
|
216
|
+
}
|
|
207
217
|
program.checker = createChecker(program);
|
|
208
218
|
program.checker.checkProgram();
|
|
209
219
|
if (program.hasError()) {
|
|
210
220
|
return program;
|
|
211
221
|
}
|
|
222
|
+
// onValidate stage
|
|
212
223
|
for (const cb of validateCbs) {
|
|
213
224
|
try {
|
|
214
225
|
await cb(program);
|
|
@@ -239,6 +250,9 @@ export async function compile(host, mainFile, options = {}, oldProgram // NOTE:
|
|
|
239
250
|
if (program.hasError()) {
|
|
240
251
|
return program;
|
|
241
252
|
}
|
|
253
|
+
// Linter stage
|
|
254
|
+
program.reportDiagnostics(linter.lint());
|
|
255
|
+
// Emitter stage
|
|
242
256
|
for (const instance of emitters) {
|
|
243
257
|
await runEmitter(instance);
|
|
244
258
|
}
|
|
@@ -287,16 +301,17 @@ export async function compile(host, mainFile, options = {}, oldProgram // NOTE:
|
|
|
287
301
|
}
|
|
288
302
|
}
|
|
289
303
|
async function loadStandardLibrary(program) {
|
|
304
|
+
const locationContext = { type: "compiler" };
|
|
290
305
|
for (const dir of host.getLibDirs()) {
|
|
291
|
-
await loadDirectory(dir, NoTarget);
|
|
306
|
+
await loadDirectory(dir, locationContext, NoTarget);
|
|
292
307
|
}
|
|
293
308
|
}
|
|
294
|
-
async function loadDirectory(dir, diagnosticTarget) {
|
|
309
|
+
async function loadDirectory(dir, locationContext, diagnosticTarget) {
|
|
295
310
|
const mainFile = await resolveTypeSpecEntrypointForDir(host, dir, reportDiagnostic);
|
|
296
|
-
await loadTypeSpecFile(mainFile, diagnosticTarget);
|
|
311
|
+
await loadTypeSpecFile(mainFile, locationContext, diagnosticTarget);
|
|
297
312
|
return mainFile;
|
|
298
313
|
}
|
|
299
|
-
async function loadTypeSpecFile(path, diagnosticTarget) {
|
|
314
|
+
async function loadTypeSpecFile(path, locationContext, diagnosticTarget) {
|
|
300
315
|
if (seenSourceFiles.has(path)) {
|
|
301
316
|
return;
|
|
302
317
|
}
|
|
@@ -305,15 +320,17 @@ export async function compile(host, mainFile, options = {}, oldProgram // NOTE:
|
|
|
305
320
|
diagnosticTarget,
|
|
306
321
|
});
|
|
307
322
|
if (file) {
|
|
323
|
+
sourceFileLocationContexts.set(file, locationContext);
|
|
308
324
|
await loadTypeSpecScript(file);
|
|
309
325
|
}
|
|
310
326
|
}
|
|
311
|
-
async function loadJsFile(path, diagnosticTarget) {
|
|
327
|
+
async function loadJsFile(path, locationContext, diagnosticTarget) {
|
|
312
328
|
const sourceFile = program.jsSourceFiles.get(path);
|
|
313
329
|
if (sourceFile !== undefined) {
|
|
314
330
|
return sourceFile;
|
|
315
331
|
}
|
|
316
332
|
const file = createSourceFile("", path);
|
|
333
|
+
sourceFileLocationContexts.set(file, locationContext);
|
|
317
334
|
const exports = await doIO(host.getJsImport, path, program.reportDiagnostic, {
|
|
318
335
|
diagnosticTarget,
|
|
319
336
|
jsDiagnosticTarget: { file, pos: 0, end: 0 },
|
|
@@ -343,8 +360,8 @@ export async function compile(host, mainFile, options = {}, oldProgram // NOTE:
|
|
|
343
360
|
/**
|
|
344
361
|
* Import the Javascript files decorator and lifecycle hooks.
|
|
345
362
|
*/
|
|
346
|
-
async function importJsFile(path, diagnosticTarget) {
|
|
347
|
-
const file = await loadJsFile(path, diagnosticTarget);
|
|
363
|
+
async function importJsFile(path, locationContext, diagnosticTarget) {
|
|
364
|
+
const file = await loadJsFile(path, locationContext, diagnosticTarget);
|
|
348
365
|
if (file !== undefined) {
|
|
349
366
|
program.jsSourceFiles.set(path, file);
|
|
350
367
|
binder.bindJsSourceFile(file);
|
|
@@ -376,15 +393,20 @@ export async function compile(host, mainFile, options = {}, oldProgram // NOTE:
|
|
|
376
393
|
async function loadScriptImports(file) {
|
|
377
394
|
// collect imports
|
|
378
395
|
const basedir = getDirectoryPath(file.file.path);
|
|
379
|
-
await loadImports(file.statements.filter(isImportStatement).map((x) => ({ path: x.path.value, target: x })), basedir);
|
|
396
|
+
await loadImports(file.statements.filter(isImportStatement).map((x) => ({ path: x.path.value, target: x })), basedir, getSourceFileLocationContext(file.file));
|
|
397
|
+
}
|
|
398
|
+
function getSourceFileLocationContext(sourcefile) {
|
|
399
|
+
const locationContext = sourceFileLocationContexts.get(sourcefile);
|
|
400
|
+
compilerAssert(locationContext, "SourceFile should have a declaration locationContext.");
|
|
401
|
+
return locationContext;
|
|
380
402
|
}
|
|
381
|
-
async function loadImports(imports, relativeTo) {
|
|
403
|
+
async function loadImports(imports, relativeTo, locationContext) {
|
|
382
404
|
// collect imports
|
|
383
405
|
for (const { path, target } of imports) {
|
|
384
|
-
await loadImport(path, target, relativeTo);
|
|
406
|
+
await loadImport(path, target, relativeTo, locationContext);
|
|
385
407
|
}
|
|
386
408
|
}
|
|
387
|
-
async function loadImport(path, target, relativeTo) {
|
|
409
|
+
async function loadImport(path, target, relativeTo, locationContext) {
|
|
388
410
|
const library = await resolveTypeSpecLibrary(path, relativeTo, target);
|
|
389
411
|
if (library === undefined) {
|
|
390
412
|
return;
|
|
@@ -395,49 +417,68 @@ export async function compile(host, mainFile, options = {}, oldProgram // NOTE:
|
|
|
395
417
|
manifest: library.manifest,
|
|
396
418
|
});
|
|
397
419
|
trace("import-resolution.library", `Loading library "${path}" from "${library.mainFile}"`);
|
|
420
|
+
const metadata = computeModuleMetadata(library);
|
|
421
|
+
locationContext = {
|
|
422
|
+
type: "library",
|
|
423
|
+
metadata,
|
|
424
|
+
};
|
|
398
425
|
}
|
|
399
426
|
const importFilePath = library.type === "module" ? library.mainFile : library.path;
|
|
400
427
|
const isDirectory = (await host.stat(importFilePath)).isDirectory();
|
|
401
428
|
if (isDirectory) {
|
|
402
|
-
return await loadDirectory(importFilePath, target);
|
|
429
|
+
return await loadDirectory(importFilePath, locationContext, target);
|
|
403
430
|
}
|
|
404
431
|
const sourceFileKind = host.getSourceFileKind(importFilePath);
|
|
405
432
|
switch (sourceFileKind) {
|
|
406
433
|
case "js":
|
|
407
|
-
return await importJsFile(importFilePath, target);
|
|
434
|
+
return await importJsFile(importFilePath, locationContext, target);
|
|
408
435
|
case "typespec":
|
|
409
|
-
return await loadTypeSpecFile(importFilePath, target);
|
|
436
|
+
return await loadTypeSpecFile(importFilePath, locationContext, target);
|
|
410
437
|
default:
|
|
411
438
|
program.reportDiagnostic(createDiagnostic({ code: "invalid-import", target }));
|
|
412
439
|
}
|
|
413
440
|
}
|
|
414
|
-
async function loadEmitters(
|
|
441
|
+
async function loadEmitters(basedir, emitterNameOrPaths, emitterOptions) {
|
|
415
442
|
for (const emitterNameOrPath of emitterNameOrPaths) {
|
|
416
|
-
const emitter = await loadEmitter(
|
|
443
|
+
const emitter = await loadEmitter(basedir, emitterNameOrPath, emitterOptions);
|
|
417
444
|
if (emitter) {
|
|
418
445
|
emitters.push(emitter);
|
|
419
446
|
}
|
|
420
447
|
}
|
|
421
448
|
}
|
|
422
|
-
async function resolveEmitterModuleAndEntrypoint(
|
|
423
|
-
const
|
|
449
|
+
async function resolveEmitterModuleAndEntrypoint(basedir, emitterNameOrPath) {
|
|
450
|
+
const locationContext = { type: "project" };
|
|
424
451
|
// attempt to resolve a node module with this name
|
|
425
|
-
const [module, diagnostics] = await resolveJSLibrary(emitterNameOrPath, basedir);
|
|
452
|
+
const [module, diagnostics] = await resolveJSLibrary(emitterNameOrPath, basedir, locationContext);
|
|
426
453
|
if (!module) {
|
|
427
454
|
return [undefined, diagnostics];
|
|
428
455
|
}
|
|
429
456
|
const entrypoint = module.type === "file" ? module.path : module.mainFile;
|
|
430
|
-
const file = await loadJsFile(entrypoint, NoTarget);
|
|
457
|
+
const file = await loadJsFile(entrypoint, locationContext, NoTarget);
|
|
431
458
|
return [{ module, entrypoint: file }, []];
|
|
432
459
|
}
|
|
433
|
-
async function
|
|
434
|
-
|
|
435
|
-
const [resolution, diagnostics] = await resolveEmitterModuleAndEntrypoint(mainFile, emitterNameOrPath);
|
|
460
|
+
async function loadLibrary(basedir, libraryNameOrPath) {
|
|
461
|
+
const [resolution, diagnostics] = await resolveEmitterModuleAndEntrypoint(basedir, libraryNameOrPath);
|
|
436
462
|
if (resolution === undefined) {
|
|
437
463
|
program.reportDiagnostics(diagnostics);
|
|
438
464
|
return undefined;
|
|
439
465
|
}
|
|
440
466
|
const { module, entrypoint } = resolution;
|
|
467
|
+
const libDefinition = entrypoint === null || entrypoint === void 0 ? void 0 : entrypoint.esmExports.$lib;
|
|
468
|
+
const metadata = computeLibraryMetadata(module, libDefinition);
|
|
469
|
+
return {
|
|
470
|
+
...resolution,
|
|
471
|
+
metadata,
|
|
472
|
+
definition: libDefinition,
|
|
473
|
+
};
|
|
474
|
+
}
|
|
475
|
+
async function loadEmitter(basedir, emitterNameOrPath, emittersOptions) {
|
|
476
|
+
var _c, _d, _e, _f;
|
|
477
|
+
const library = await loadLibrary(basedir, emitterNameOrPath);
|
|
478
|
+
if (library === undefined) {
|
|
479
|
+
return undefined;
|
|
480
|
+
}
|
|
481
|
+
const { entrypoint, metadata } = library;
|
|
441
482
|
if (entrypoint === undefined) {
|
|
442
483
|
program.reportDiagnostic(createDiagnostic({
|
|
443
484
|
code: "invalid-emitter",
|
|
@@ -447,8 +488,7 @@ export async function compile(host, mainFile, options = {}, oldProgram // NOTE:
|
|
|
447
488
|
return undefined;
|
|
448
489
|
}
|
|
449
490
|
const emitFunction = entrypoint.esmExports.$onEmit;
|
|
450
|
-
const libDefinition =
|
|
451
|
-
const metadata = computeLibraryMetadata(module, libDefinition);
|
|
491
|
+
const libDefinition = library.definition;
|
|
452
492
|
let { "emitter-output-dir": emitterOutputDir, ...emitterOptions } = (_d = emittersOptions[(_c = metadata.name) !== null && _c !== void 0 ? _c : emitterNameOrPath]) !== null && _d !== void 0 ? _d : {};
|
|
453
493
|
if (emitterOutputDir === undefined) {
|
|
454
494
|
emitterOutputDir = [options.outputDir, metadata.name].filter(isDefined).join("/");
|
|
@@ -484,20 +524,25 @@ export async function compile(host, mainFile, options = {}, oldProgram // NOTE:
|
|
|
484
524
|
}
|
|
485
525
|
}
|
|
486
526
|
function computeLibraryMetadata(module, libDefinition) {
|
|
487
|
-
var _c, _d, _e;
|
|
488
527
|
if (module.type === "file") {
|
|
489
528
|
return {
|
|
529
|
+
type: "file",
|
|
490
530
|
name: libDefinition === null || libDefinition === void 0 ? void 0 : libDefinition.name,
|
|
491
531
|
};
|
|
492
532
|
}
|
|
533
|
+
return computeModuleMetadata(module);
|
|
534
|
+
}
|
|
535
|
+
function computeModuleMetadata(module) {
|
|
536
|
+
var _c, _d;
|
|
493
537
|
const metadata = {
|
|
494
|
-
|
|
538
|
+
type: "module",
|
|
539
|
+
name: module.manifest.name,
|
|
495
540
|
};
|
|
496
541
|
if (module.manifest.homepage) {
|
|
497
542
|
metadata.homepage = module.manifest.homepage;
|
|
498
543
|
}
|
|
499
|
-
if ((
|
|
500
|
-
metadata.bugs = { url: (
|
|
544
|
+
if ((_c = module.manifest.bugs) === null || _c === void 0 ? void 0 : _c.url) {
|
|
545
|
+
metadata.bugs = { url: (_d = module.manifest.bugs) === null || _d === void 0 ? void 0 : _d.url };
|
|
501
546
|
}
|
|
502
547
|
return metadata;
|
|
503
548
|
}
|
|
@@ -578,7 +623,7 @@ export async function compile(host, mainFile, options = {}, oldProgram // NOTE:
|
|
|
578
623
|
* resolves a module specifier like "myLib" to an absolute path where we can find the main of
|
|
579
624
|
* that module, e.g. "/typespec/node_modules/myLib/dist/lib.js".
|
|
580
625
|
*/
|
|
581
|
-
async function resolveJSLibrary(specifier, baseDir) {
|
|
626
|
+
async function resolveJSLibrary(specifier, baseDir, locationContext) {
|
|
582
627
|
try {
|
|
583
628
|
return [await resolveModule(getResolveModuleHost(), specifier, { baseDir }), []];
|
|
584
629
|
}
|
|
@@ -625,17 +670,16 @@ export async function compile(host, mainFile, options = {}, oldProgram // NOTE:
|
|
|
625
670
|
/**
|
|
626
671
|
* Load the main file from the given path
|
|
627
672
|
* @param mainPath Absolute path to the main file.
|
|
628
|
-
* @param options Compiler options.
|
|
629
|
-
* @returns
|
|
630
673
|
*/
|
|
631
|
-
async function loadMain(mainPath
|
|
674
|
+
async function loadMain(mainPath) {
|
|
632
675
|
await checkForCompilerVersionMismatch(mainPath);
|
|
633
676
|
const sourceFileKind = host.getSourceFileKind(mainPath);
|
|
677
|
+
const locationContext = { type: "project" };
|
|
634
678
|
switch (sourceFileKind) {
|
|
635
679
|
case "js":
|
|
636
|
-
return await importJsFile(mainPath, NoTarget);
|
|
680
|
+
return await importJsFile(mainPath, locationContext, NoTarget);
|
|
637
681
|
case "typespec":
|
|
638
|
-
return await loadTypeSpecFile(mainPath, NoTarget);
|
|
682
|
+
return await loadTypeSpecFile(mainPath, locationContext, NoTarget);
|
|
639
683
|
default:
|
|
640
684
|
program.reportDiagnostic(createDiagnostic({ code: "invalid-main", target: NoTarget }));
|
|
641
685
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/core/program.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/core/program.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { JSONSchemaType, JSONSchemaValidator } from "./types.js";
|
|
2
2
|
export interface JSONSchemaValidatorOptions {
|
|
3
3
|
coerceTypes?: boolean;
|
|
4
|
+
strict?: boolean;
|
|
4
5
|
}
|
|
5
6
|
export declare function createJSONSchemaValidator<T>(schema: JSONSchemaType<T>, options?: JSONSchemaValidatorOptions): JSONSchemaValidator;
|
|
6
7
|
//# sourceMappingURL=schema-validator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-validator.d.ts","sourceRoot":"","sources":["../../../src/core/schema-validator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,cAAc,EAAE,mBAAmB,EAAwB,MAAM,YAAY,CAAC;AAEnG,MAAM,WAAW,0BAA0B;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"schema-validator.d.ts","sourceRoot":"","sources":["../../../src/core/schema-validator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,cAAc,EAAE,mBAAmB,EAAwB,MAAM,YAAY,CAAC;AAEnG,MAAM,WAAW,0BAA0B;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,yBAAyB,CAAC,CAAC,EACzC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,OAAO,GAAE,0BAA6C,GACrD,mBAAmB,CAwBrB"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import Ajv from "ajv";
|
|
2
2
|
import { compilerAssert } from "./diagnostics.js";
|
|
3
3
|
import { NoTarget } from "./types.js";
|
|
4
|
-
export function createJSONSchemaValidator(schema, options = {}) {
|
|
4
|
+
export function createJSONSchemaValidator(schema, options = { strict: true }) {
|
|
5
5
|
const ajv = new Ajv({
|
|
6
|
-
strict:
|
|
6
|
+
strict: options.strict,
|
|
7
7
|
coerceTypes: options.coerceTypes,
|
|
8
8
|
});
|
|
9
9
|
return { validate };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-validator.js","sourceRoot":"","sources":["../../../src/core/schema-validator.ts"],"names":[],"mappings":"AAAA,OAAO,GAAoB,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAmD,QAAQ,EAAc,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"schema-validator.js","sourceRoot":"","sources":["../../../src/core/schema-validator.ts"],"names":[],"mappings":"AAAA,OAAO,GAAoB,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAmD,QAAQ,EAAc,MAAM,YAAY,CAAC;AAOnG,MAAM,UAAU,yBAAyB,CACvC,MAAyB,EACzB,UAAsC,EAAE,MAAM,EAAE,IAAI,EAAE;IAEtD,MAAM,GAAG,GAAG,IAAK,GAAW,CAAC;QAC3B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,EAAE,CAAC;IAEpB,SAAS,QAAQ,CAAC,MAAe,EAAE,MAAoC;;QACrE,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,cAAc,CACZ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,EAC1B,6DAA6D,CAC9D,CAAC;QAEF,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,KAAK,IAAI,MAAA,QAAQ,CAAC,MAAM,mCAAI,EAAE,EAAE;YACzC,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACvD,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC9B;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;AACH,CAAC;AAED,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEvD,SAAS,oBAAoB,CAC3B,KAAkB,EAClB,MAAoC;IAEpC,MAAM,YAAY,GAAG,CAAC,qBAAqB,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,YAAY,IAAI,GAAG,GAAG,CAAC,CAAC;IAC3F,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAC7D,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAC1C,EAAE;QACD,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACrF,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,cAAc,EAAE,CAAC,CAAC;KACnD;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,OAAO;QACP,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;KACxE,CAAC;AACJ,CAAC"}
|
package/dist/src/core/types.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { JSONSchemaType as AjvJSONSchemaType } from "ajv";
|
|
2
2
|
import { TypeEmitter } from "../emitter-framework/type-emitter.js";
|
|
3
3
|
import { AssetEmitter } from "../emitter-framework/types.js";
|
|
4
|
+
import { ModuleResolutionResult } from "./module-resolver.js";
|
|
4
5
|
import { Program } from "./program.js";
|
|
5
6
|
export type MarshalledValue<Type> = Type extends StringLiteral ? string : Type extends NumericLiteral ? number : Type extends BooleanLiteral ? boolean : Type;
|
|
6
7
|
/**
|
|
@@ -670,6 +671,8 @@ export interface LineComment extends TextRange {
|
|
|
670
671
|
}
|
|
671
672
|
export interface BlockComment extends TextRange {
|
|
672
673
|
readonly kind: SyntaxKind.BlockComment;
|
|
674
|
+
/** If that comment was parsed as a doc comment. If parserOptions.docs=false this will always be false. */
|
|
675
|
+
readonly parsedAsDocs?: boolean;
|
|
673
676
|
}
|
|
674
677
|
export interface ParseOptions {
|
|
675
678
|
/** When true, collect comment ranges in {@link TypeSpecScriptNode.comments}. */
|
|
@@ -1188,6 +1191,57 @@ export interface SourceFile {
|
|
|
1188
1191
|
*/
|
|
1189
1192
|
getLineAndCharacterOfPosition(position: number): LineAndCharacter;
|
|
1190
1193
|
}
|
|
1194
|
+
/**
|
|
1195
|
+
* Represent a location context in the mind of the compiler. This can be:
|
|
1196
|
+
* - the user project
|
|
1197
|
+
* - a library
|
|
1198
|
+
* - the compiler(standard library)
|
|
1199
|
+
* - virtual
|
|
1200
|
+
*/
|
|
1201
|
+
export type LocationContext = ProjectLocationContext | CompilerLocationContext | SyntheticLocationContext | LibraryLocationContext;
|
|
1202
|
+
/** Defined in the user project. */
|
|
1203
|
+
export interface ProjectLocationContext {
|
|
1204
|
+
type: "project";
|
|
1205
|
+
}
|
|
1206
|
+
/** Built-in */
|
|
1207
|
+
export interface CompilerLocationContext {
|
|
1208
|
+
type: "compiler";
|
|
1209
|
+
}
|
|
1210
|
+
/** Refer to a type that was not declared in a file */
|
|
1211
|
+
export interface SyntheticLocationContext {
|
|
1212
|
+
type: "synthetic";
|
|
1213
|
+
}
|
|
1214
|
+
/** Defined in a library. */
|
|
1215
|
+
export interface LibraryLocationContext {
|
|
1216
|
+
type: "library";
|
|
1217
|
+
metadata: ModuleLibraryMetadata;
|
|
1218
|
+
}
|
|
1219
|
+
export interface LibraryInstance {
|
|
1220
|
+
module: ModuleResolutionResult;
|
|
1221
|
+
entrypoint: JsSourceFileNode | undefined;
|
|
1222
|
+
metadata: LibraryMetadata;
|
|
1223
|
+
definition?: TypeSpecLibrary<any>;
|
|
1224
|
+
}
|
|
1225
|
+
export type LibraryMetadata = FileLibraryMetadata | ModuleLibraryMetadata;
|
|
1226
|
+
interface LibraryMetadataBase {
|
|
1227
|
+
/** Library homepage. */
|
|
1228
|
+
homepage?: string;
|
|
1229
|
+
bugs?: {
|
|
1230
|
+
/** Url where to file bugs for this library. */
|
|
1231
|
+
url?: string;
|
|
1232
|
+
};
|
|
1233
|
+
}
|
|
1234
|
+
export interface FileLibraryMetadata extends LibraryMetadataBase {
|
|
1235
|
+
type: "file";
|
|
1236
|
+
/** Library name as specified in the package.json or in exported $lib. */
|
|
1237
|
+
name?: string;
|
|
1238
|
+
}
|
|
1239
|
+
/** Data for a library. Either loaded via a node_modules package or a standalone js file */
|
|
1240
|
+
export interface ModuleLibraryMetadata extends LibraryMetadataBase {
|
|
1241
|
+
type: "module";
|
|
1242
|
+
/** Library name as specified in the package.json or in exported $lib. */
|
|
1243
|
+
name: string;
|
|
1244
|
+
}
|
|
1191
1245
|
export interface TextRange {
|
|
1192
1246
|
/**
|
|
1193
1247
|
* The starting position of the ranger measured in UTF-16 code units from the
|
|
@@ -1244,7 +1298,9 @@ export interface RmOptions {
|
|
|
1244
1298
|
recursive?: boolean;
|
|
1245
1299
|
}
|
|
1246
1300
|
export interface CompilerHost {
|
|
1301
|
+
/** read a file at the given url. */
|
|
1247
1302
|
readUrl(url: string): Promise<SourceFile>;
|
|
1303
|
+
/** read a utf-8 or utf-8 with bom encoded file */
|
|
1248
1304
|
readFile(path: string): Promise<SourceFile>;
|
|
1249
1305
|
/**
|
|
1250
1306
|
* Optional cache to reuse the results of parsing and binding across programs.
|
|
@@ -1349,6 +1405,17 @@ export interface DiagnosticCreator<T extends {
|
|
|
1349
1405
|
reportDiagnostic<C extends keyof T, M extends keyof T[C] = "default">(program: Program, diag: DiagnosticReport<T, C, M>): void;
|
|
1350
1406
|
}
|
|
1351
1407
|
export type TypeOfDiagnostics<T extends DiagnosticMap<any>> = T extends DiagnosticMap<infer D> ? D : never;
|
|
1408
|
+
export type JSONSchemaType<T> = AjvJSONSchemaType<T>;
|
|
1409
|
+
export interface JSONSchemaValidator {
|
|
1410
|
+
/**
|
|
1411
|
+
* Validate the configuration against its JSON Schema.
|
|
1412
|
+
*
|
|
1413
|
+
* @param config Configuration to validate.
|
|
1414
|
+
* @param target Source file target to use for diagnostics.
|
|
1415
|
+
* @returns Diagnostics produced by schema validation of the configuration.
|
|
1416
|
+
*/
|
|
1417
|
+
validate(config: unknown, target: SourceFile | typeof NoTarget): Diagnostic[];
|
|
1418
|
+
}
|
|
1352
1419
|
/** @deprecated Use TypeSpecLibraryDef */
|
|
1353
1420
|
export type CadlLibraryDef<T extends {
|
|
1354
1421
|
[code: string]: DiagnosticMessages;
|
|
@@ -1378,18 +1445,50 @@ export interface TypeSpecLibraryDef<T extends {
|
|
|
1378
1445
|
readonly emitter?: {
|
|
1379
1446
|
options?: JSONSchemaType<E>;
|
|
1380
1447
|
};
|
|
1381
|
-
}
|
|
1382
|
-
export type JSONSchemaType<T> = AjvJSONSchemaType<T>;
|
|
1383
|
-
export interface JSONSchemaValidator {
|
|
1384
1448
|
/**
|
|
1385
|
-
*
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
}
|
|
1449
|
+
* Configuration if library is providing linting rules/rulesets.
|
|
1450
|
+
*/
|
|
1451
|
+
readonly linter?: LinterDefinition;
|
|
1452
|
+
}
|
|
1453
|
+
export interface LinterDefinition {
|
|
1454
|
+
rules: LinterRuleDefinition<string, DiagnosticMessages>[];
|
|
1455
|
+
ruleSets?: Record<string, LinterRuleSet>;
|
|
1456
|
+
}
|
|
1457
|
+
export interface LinterRuleDefinition<N extends string, DM extends DiagnosticMessages> {
|
|
1458
|
+
name: N;
|
|
1459
|
+
severity: "warning";
|
|
1460
|
+
description: string;
|
|
1461
|
+
messages: DM;
|
|
1462
|
+
create(context: LinterRuleContext<DM>): SemanticNodeListener;
|
|
1463
|
+
}
|
|
1464
|
+
/** Resolved instance of a linter rule that will run. */
|
|
1465
|
+
export interface LinterRule<N extends string, DM extends DiagnosticMessages> extends LinterRuleDefinition<N, DM> {
|
|
1466
|
+
/** Expanded rule id in format `<library-name>:<rule-name>` */
|
|
1467
|
+
id: string;
|
|
1468
|
+
}
|
|
1469
|
+
/** Reference to a rule. In this format `<library name>:<rule/ruleset name>` */
|
|
1470
|
+
export type RuleRef = `${string}/${string}`;
|
|
1471
|
+
export interface LinterRuleSet {
|
|
1472
|
+
/** Other ruleset this ruleset extends */
|
|
1473
|
+
extends?: RuleRef[];
|
|
1474
|
+
/** Rules to enable/configure */
|
|
1475
|
+
enable?: Record<RuleRef, boolean>;
|
|
1476
|
+
/** Rules to disable. A rule CANNOT be in enable and disable map. */
|
|
1477
|
+
disable?: Record<RuleRef, string>;
|
|
1478
|
+
}
|
|
1479
|
+
export interface LinterRuleContext<DM extends DiagnosticMessages> {
|
|
1480
|
+
readonly program: Program;
|
|
1481
|
+
reportDiagnostic<M extends keyof DM>(diag: LinterRuleDiagnosticReport<DM, M>): void;
|
|
1482
|
+
}
|
|
1483
|
+
export type LinterRuleDiagnosticFormat<T extends DiagnosticMessages, M extends keyof T = "default"> = T[M] extends CallableMessage<infer A> ? {
|
|
1484
|
+
format: Record<A[number], string>;
|
|
1485
|
+
} : Record<string, unknown>;
|
|
1486
|
+
export type LinterRuleDiagnosticReportWithoutTarget<T extends DiagnosticMessages, M extends keyof T = "default"> = {
|
|
1487
|
+
messageId?: M;
|
|
1488
|
+
} & LinterRuleDiagnosticFormat<T, M>;
|
|
1489
|
+
export type LinterRuleDiagnosticReport<T extends DiagnosticMessages, M extends keyof T = "default"> = LinterRuleDiagnosticReportWithoutTarget<T, M> & {
|
|
1490
|
+
target: DiagnosticTarget | typeof NoTarget;
|
|
1491
|
+
};
|
|
1393
1492
|
/** @deprecated Use TypeSpecLibrary */
|
|
1394
1493
|
export type CadlLibrary<T extends {
|
|
1395
1494
|
[code: string]: DiagnosticMessages;
|