Skip to content

Commit c7b5005

Browse files
committed
Handle noEmit on semantic builder's emit as well
1 parent ca35546 commit c7b5005

File tree

1 file changed

+24
-24
lines changed

1 file changed

+24
-24
lines changed

src/compiler/builder.ts

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1019,31 +1019,31 @@ namespace ts {
10191019
* in that order would be used to write the files
10201020
*/
10211021
function emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): EmitResult {
1022-
if (kind === BuilderProgramKind.EmitAndSemanticDiagnosticsBuilderProgram) {
1023-
assertSourceFileOkWithoutNextAffectedCall(state, targetSourceFile);
1024-
const result = handleNoEmitOptions(builderProgram, targetSourceFile, writeFile, cancellationToken);
1025-
if (result) return result;
1026-
if (!targetSourceFile) {
1027-
// Emit and report any errors we ran into.
1028-
let sourceMaps: SourceMapEmitResult[] = [];
1029-
let emitSkipped = false;
1030-
let diagnostics: Diagnostic[] | undefined;
1031-
let emittedFiles: string[] = [];
1032-
1033-
let affectedEmitResult: AffectedFileResult<EmitResult>;
1034-
while (affectedEmitResult = emitNextAffectedFile(writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers)) {
1035-
emitSkipped = emitSkipped || affectedEmitResult.result.emitSkipped;
1036-
diagnostics = addRange(diagnostics, affectedEmitResult.result.diagnostics);
1037-
emittedFiles = addRange(emittedFiles, affectedEmitResult.result.emittedFiles);
1038-
sourceMaps = addRange(sourceMaps, affectedEmitResult.result.sourceMaps);
1039-
}
1040-
return {
1041-
emitSkipped,
1042-
diagnostics: diagnostics || emptyArray,
1043-
emittedFiles,
1044-
sourceMaps
1045-
};
1022+
if (kind === BuilderProgramKind.EmitAndSemanticDiagnosticsBuilderProgram) assertSourceFileOkWithoutNextAffectedCall(state, targetSourceFile);
1023+
const result = handleNoEmitOptions(builderProgram, targetSourceFile, writeFile, cancellationToken);
1024+
if (result) return result;
1025+
1026+
// Emit only affected files if using builder for emit
1027+
if (!targetSourceFile && kind === BuilderProgramKind.EmitAndSemanticDiagnosticsBuilderProgram) {
1028+
// Emit and report any errors we ran into.
1029+
let sourceMaps: SourceMapEmitResult[] = [];
1030+
let emitSkipped = false;
1031+
let diagnostics: Diagnostic[] | undefined;
1032+
let emittedFiles: string[] = [];
1033+
1034+
let affectedEmitResult: AffectedFileResult<EmitResult>;
1035+
while (affectedEmitResult = emitNextAffectedFile(writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers)) {
1036+
emitSkipped = emitSkipped || affectedEmitResult.result.emitSkipped;
1037+
diagnostics = addRange(diagnostics, affectedEmitResult.result.diagnostics);
1038+
emittedFiles = addRange(emittedFiles, affectedEmitResult.result.emittedFiles);
1039+
sourceMaps = addRange(sourceMaps, affectedEmitResult.result.sourceMaps);
10461040
}
1041+
return {
1042+
emitSkipped,
1043+
diagnostics: diagnostics || emptyArray,
1044+
emittedFiles,
1045+
sourceMaps
1046+
};
10471047
}
10481048
return Debug.checkDefined(state.program).emit(targetSourceFile, writeFile || maybeBind(host, host.writeFile), cancellationToken, emitOnlyDtsFiles, customTransformers);
10491049
}

0 commit comments

Comments
 (0)