Skip to content

Commit e77e37b

Browse files
authored
fix(dts): get pre-emit diagnostics before emit (#1116)
1 parent 4d95a86 commit e77e37b

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

packages/plugin-dts/src/tsc.ts

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -216,14 +216,14 @@ export async function emitDts(
216216
ts.getConfigFileParsingDiagnostics(tsConfigResult),
217217
});
218218

219+
const preEmitDiagnostics = ts.getPreEmitDiagnostics(program);
219220
const emitResult = program.emit();
220-
221-
const allDiagnostics = ts
222-
.getPreEmitDiagnostics(program)
223-
.concat(emitResult.diagnostics);
221+
const allDiagnostics = preEmitDiagnostics.concat(emitResult.diagnostics);
222+
const sortAndDeduplicateDiagnostics =
223+
ts.sortAndDeduplicateDiagnostics(allDiagnostics);
224224

225225
await handleDiagnosticsAndProcessFiles(
226-
allDiagnostics,
226+
sortAndDeduplicateDiagnostics,
227227
configPath,
228228
bundle,
229229
declarationDir,
@@ -267,18 +267,24 @@ export async function emitDts(
267267
createProgram,
268268
});
269269

270-
const emitResult = program.emit();
271-
const allDiagnostics = [
270+
const allDiagnostics: ts.Diagnostic[] = [];
271+
allDiagnostics.push(
272272
...program.getConfigFileParsingDiagnostics(),
273-
...program.getOptionsDiagnostics(),
274273
...program.getSyntacticDiagnostics(),
274+
...program.getOptionsDiagnostics(),
275+
...program.getGlobalDiagnostics(),
275276
...program.getSemanticDiagnostics(),
276277
...program.getDeclarationDiagnostics(),
277-
...emitResult.diagnostics,
278-
];
278+
);
279+
280+
const emitResult = program.emit();
281+
allDiagnostics.push(...emitResult.diagnostics);
282+
283+
const sortAndDeduplicateDiagnostics =
284+
ts.sortAndDeduplicateDiagnostics(allDiagnostics);
279285

280286
await handleDiagnosticsAndProcessFiles(
281-
allDiagnostics,
287+
sortAndDeduplicateDiagnostics,
282288
configPath,
283289
bundle,
284290
declarationDir,

0 commit comments

Comments
 (0)