Skip to content

Commit ac528d4

Browse files
authored
Merge pull request #4471 from dmichon-msft/heft-typescript-dts-map-fix
[heft-typescript] Fix updateShapeSignature break
2 parents e0bc910 + 4d77148 commit ac528d4

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"changes": [
3+
{
4+
"packageName": "@rushstack/heft-typescript-plugin",
5+
"comment": "Fix break in watch mode during updateShapeSignature call.",
6+
"type": "patch"
7+
}
8+
],
9+
"packageName": "@rushstack/heft-typescript-plugin"
10+
}

heft-plugins/heft-typescript-plugin/src/configureProgramForMultiEmit.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ export function configureProgramForMultiEmit(
5151
// Attach the originals to the Program instance to avoid modifying the same Program twice.
5252
// Don't use WeakMap because this Program could theoretically get a { ... } applied to it.
5353
[INNER_GET_COMPILER_OPTIONS_SYMBOL]?: TTypescript.Program['getCompilerOptions'];
54-
[INNER_EMIT_SYMBOL]?: TTypescript.Program['emit'];
54+
[INNER_EMIT_SYMBOL]?: // https://github.com/microsoft/TypeScript/blob/88cb76d314a93937ce8d9543114ccbad993be6d1/src/compiler/program.ts#L2697-L2698
55+
// There is a "forceDtsEmit" parameter that is not on the published types.
56+
(...args: [...Parameters<TTypescript.Program['emit']>, boolean | undefined]) => TTypescript.EmitResult;
5557
}
5658

5759
const program: IProgramWithMultiEmit = innerProgram;
@@ -118,15 +120,17 @@ export function configureProgramForMultiEmit(
118120
writeFile?: TTypescript.WriteFileCallback,
119121
cancellationToken?: TTypescript.CancellationToken,
120122
emitOnlyDtsFiles?: boolean,
121-
customTransformers?: TTypescript.CustomTransformers
123+
customTransformers?: TTypescript.CustomTransformers,
124+
forceDtsEmit?: boolean
122125
) => {
123126
if (emitOnlyDtsFiles) {
124127
return program[INNER_EMIT_SYMBOL]!(
125128
targetSourceFile,
126129
writeFile,
127130
cancellationToken,
128131
emitOnlyDtsFiles,
129-
customTransformers
132+
customTransformers,
133+
forceDtsEmit
130134
);
131135
}
132136

@@ -151,7 +155,8 @@ export function configureProgramForMultiEmit(
151155
writeFile && wrapWriteFile(writeFile, moduleKindToEmit.jsExtensionOverride),
152156
cancellationToken,
153157
emitOnlyDtsFiles,
154-
customTransformers
158+
customTransformers,
159+
forceDtsEmit
155160
);
156161

157162
emitSkipped = emitSkipped || flavorResult.emitSkipped;

0 commit comments

Comments
 (0)