Skip to content

Commit 88d9938

Browse files
committed
fixup! perf(@angular/build): cache pre-declaration transformed SourceFiles during AoT emit
1 parent 9eaaae0 commit 88d9938

1 file changed

Lines changed: 19 additions & 12 deletions

File tree

‎packages/angular/build/src/tools/angular/compilation/aot-compilation.ts‎

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -665,6 +665,20 @@ export function ensurePreDeclarationTransformers(transformers: ts.CustomTransfor
665665
const beforeTransformers = transformers.before as ts.TransformerFactory<ts.SourceFile>[];
666666
const seenSourceFiles = new Set<ts.SourceFile>();
667667
const preTransformedSourceFiles = new Map<ts.SourceFile, ts.SourceFile>();
668+
const runBefore = (
669+
beforeTransforms: ts.Transformer<ts.SourceFile>[],
670+
sourceFile: ts.SourceFile,
671+
originalSourceFile: ts.SourceFile,
672+
): ts.SourceFile => {
673+
seenSourceFiles.add(originalSourceFile);
674+
let current = sourceFile;
675+
for (const transform of beforeTransforms) {
676+
current = transform(current);
677+
}
678+
679+
return current;
680+
};
681+
668682
transformers.before = [
669683
(context) => {
670684
let beforeTransforms: ts.Transformer<ts.SourceFile>[] | undefined;
@@ -678,14 +692,9 @@ export function ensurePreDeclarationTransformers(transformers: ts.CustomTransfor
678692
return preTransformed;
679693
}
680694

681-
seenSourceFiles.add(originalSourceFile);
682695
beforeTransforms ??= beforeTransformers.map((factory) => factory(context));
683-
let current = sourceFile;
684-
for (const transform of beforeTransforms) {
685-
current = transform(current);
686-
}
687696

688-
return current;
697+
return runBefore(beforeTransforms, sourceFile, originalSourceFile);
689698
};
690699
},
691700
];
@@ -697,13 +706,11 @@ export function ensurePreDeclarationTransformers(transformers: ts.CustomTransfor
697706
if (!ts.isBundle(fileOrBundle)) {
698707
const originalSourceFile = ts.getOriginalNode(fileOrBundle, ts.isSourceFile);
699708
if (!seenSourceFiles.has(originalSourceFile)) {
700-
seenSourceFiles.add(originalSourceFile);
701709
beforeTransforms ??= beforeTransformers.map((factory) => factory(context));
702-
let current = originalSourceFile;
703-
for (const transform of beforeTransforms) {
704-
current = transform(current);
705-
}
706-
preTransformedSourceFiles.set(originalSourceFile, current);
710+
preTransformedSourceFiles.set(
711+
originalSourceFile,
712+
runBefore(beforeTransforms, originalSourceFile, originalSourceFile),
713+
);
707714
}
708715
}
709716

0 commit comments

Comments
 (0)