Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions packages/dts-generator/api-report/dts-generator.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@
```ts

import type { FunctionType } from './ast.d.ts';
import ts from 'typescript';
import { ModuleKind } from 'typescript/sync';
import { ModuleResolutionKind } from 'typescript/sync';
import { RawCompilerOptions } from 'typescript/sync';
import { ScriptTarget } from 'typescript/ast';
import type { TypeReference } from './ast.d.ts';

// @public
Expand All @@ -23,7 +26,7 @@ export interface CheckCompileConfig {
dependencyFiles: string[];
errorOutputFile?: string;
mainFile?: string;
tsOptions: ts.BuildOptions;
tsOptions: RawCompilerOptions;
}

// @public
Expand Down Expand Up @@ -112,14 +115,11 @@ export interface GenerateFromPathsConfig {
verbose?: boolean;
}

// @public (undocumented)
export const ModuleKind: typeof ts.ModuleKind;
export { ModuleKind }

// @public (undocumented)
export const ModuleResolutionKind: typeof ts.ModuleResolutionKind;
export { ModuleResolutionKind }

// @public (undocumented)
export const ScriptTarget: typeof ts.ScriptTarget;
export { ScriptTarget }

// Warnings were encountered during analysis:
//
Expand Down
2 changes: 1 addition & 1 deletion packages/dts-generator/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
"sanitize-html": "2.18.0",
"semver": "7.8.5",
"strip-json-comments": "5.0.3",
"typescript": "6.0.3"
"typescript": "7.1.0-beta"
},
"devDependencies": {
"@microsoft/api-extractor": "7.59.4",
Expand Down
53 changes: 22 additions & 31 deletions packages/dts-generator/src/checkCompile/check-compile.ts
Original file line number Diff line number Diff line change
@@ -1,28 +1,17 @@
import { getLogger } from "@ui5/logger";
import { analyzeError, ErrorObject } from "./diagnostic-analysis.js";
import ts from "typescript";
import {
API,
type Diagnostic,
type RawCompilerOptions,
ModuleKind,
ModuleResolutionKind,
} from "typescript/sync";
import { ScriptTarget } from "typescript/ast";
import { writeFileSafe } from "../utils/file-utils.js";

const log = getLogger("@ui5/dts-generator/checkCompile");

/**
* @see ts.ScriptTarget
* @public
*/
const ScriptTarget = ts.ScriptTarget;

/**
* @see ts.ModuleKind
* @public
*/
const ModuleKind = ts.ModuleKind;

/**
* @see ts.ModuleResolutionKind
* @public
*/
const ModuleResolutionKind = ts.ModuleResolutionKind;

export { ScriptTarget, ModuleKind, ModuleResolutionKind };

/**
Expand All @@ -45,9 +34,9 @@ export interface CheckCompileConfig {
dependencyFiles: string[];

/**
* The options for the TypeScript compiler, a map with properties like "strict", "noEmit", "moduleResolution" etc. (note that enums are given like ts.ModuleResolutionKind.Node16)
* The options for the TypeScript compiler, a map with properties like "strict", "noEmit", "moduleResolution" etc.
*/
tsOptions: ts.BuildOptions;
tsOptions: RawCompilerOptions;

/**
* Optional path+name of a file into which any test compilation errors should be written
Expand All @@ -67,12 +56,16 @@ export interface CheckCompileConfig {
*/
export default function checkCompile(options: CheckCompileConfig) {
const files = [options.mainFile, ...options.dependencyFiles].filter(Boolean);
const program = ts.createProgram(files, options.tsOptions);
const emitResult = program.emit();

const allDiagnostics = ts
.getPreEmitDiagnostics(program)
.concat(emitResult.diagnostics);
using api = new API();
using program = api.createProgram(files, options.tsOptions);

const allDiagnostics: readonly Diagnostic[] = [
...program.getSyntacticDiagnostics(),
...program.getSemanticDiagnostics(),
...program.getProgramDiagnostics(),
...program.getGlobalDiagnostics(),
];

log.info(`TypeScript compilation results:\n`);
let ignoredMessagesWithoutFile = 0;
Expand All @@ -83,10 +76,10 @@ export default function checkCompile(options: CheckCompileConfig) {
errors: string[] = [],
warnings: string[] = [];
allDiagnostics.forEach((diagnostic, index) => {
if (diagnostic.file) {
if (diagnostic.fileName) {
if (
options.mainFile == null ||
diagnostic.file.fileName === options.mainFile ||
diagnostic.fileName === options.mainFile ||
options.dependencyFiles == null ||
options.dependencyFiles.length === 0
) {
Expand All @@ -108,9 +101,7 @@ export default function checkCompile(options: CheckCompileConfig) {
ignoredMessagesWithoutFile++;
}
} else {
log.error(
" " + ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n "),
);
log.error(" " + diagnostic.text);
}
});

Expand Down
Loading
Loading