Skip to content

Commit 0bca422

Browse files
committed
test(typescript): close bundle in new watch-mode transformer test; refactor customTransformers for clearer lazy initialization
1 parent b12548f commit 0bca422

File tree

2 files changed

+17
-16
lines changed

2 files changed

+17
-16
lines changed

packages/typescript/src/customTransformers.ts

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,19 @@ export function mergeTransformers(
3535

3636
if ('type' in transformer) {
3737
if (typeof transformer.factory === 'function') {
38-
// Allow custom factories to grab the extra information required
39-
program = program || builder.getProgram();
40-
4138
let factory: ReturnType<typeof transformer.factory>;
4239

4340
if (transformer.type === 'program') {
44-
program = program || builder.getProgram();
45-
41+
const currentProgram = program ?? builder.getProgram();
4642
// Pass a getter so transformers can access the latest Program in watch mode
47-
factory = transformer.factory(program, () => builder.getProgram());
43+
factory = transformer.factory(currentProgram, () => builder.getProgram());
44+
program = currentProgram;
4845
} else {
49-
program = program || builder.getProgram();
50-
typeChecker = typeChecker || program.getTypeChecker();
51-
52-
factory = transformer.factory(typeChecker);
46+
const currentProgram = program ?? builder.getProgram();
47+
const currentTypeChecker = typeChecker ?? currentProgram.getTypeChecker();
48+
factory = transformer.factory(currentTypeChecker);
49+
program = currentProgram;
50+
typeChecker = currentTypeChecker;
5351
}
5452

5553
// Forward the requested reference to the custom transformer factory

packages/typescript/test/test.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1764,11 +1764,14 @@ test.serial(
17641764
onwarn
17651765
});
17661766

1767-
await getCode(bundle, { format: 'esm', dir: dirName }, true);
1768-
1769-
t.deepEqual(observations, [
1770-
{ p: 'one', gp: 'one' },
1771-
{ p: 'two', gp: 'two' }
1772-
]);
1767+
try {
1768+
await getCode(bundle, { format: 'esm', dir: dirName }, true);
1769+
t.deepEqual(observations, [
1770+
{ p: 'one', gp: 'one' },
1771+
{ p: 'two', gp: 'two' }
1772+
]);
1773+
} finally {
1774+
await bundle.close();
1775+
}
17731776
}
17741777
);

0 commit comments

Comments
 (0)