Skip to content

Commit 3a9a70d

Browse files
AleksanderBodurrikirjs
authored andcommitted
refactor(compiler-cli): implement transform to determine debugName from signal functions (#57348)
Implements a compiler transform that attempts to statically analyze variable names and apply them to usages of signal functions like signal, computed, effect, etc. PR Close #57348
1 parent e5d9ea2 commit 3a9a70d

File tree

14 files changed

+2755
-85
lines changed

14 files changed

+2755
-85
lines changed

.aspect/rules/external_repository_action_cache/npm_translate_lock_MzA5NzUwNzMx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
.pnpmfile.cjs=-2033668682
66
adev/shared-docs/pipeline/api-gen/package.json=939673974
77
modules/package.json=-1315257891
8-
package.json=-1427785430
8+
package.json=288136953
99
packages/animations/package.json=-678724831
1010
packages/bazel/src/ngc-wrapped/package.json=-239561259
1111
packages/common/package.json=1729763064
@@ -21,7 +21,7 @@ packages/platform-browser/package.json=-1163479450
2121
packages/router/package.json=860819913
2222
packages/upgrade/package.json=16347051
2323
packages/zone.js/package.json=-1545343303
24-
pnpm-lock.yaml=1473986573
24+
pnpm-lock.yaml=1973457723
2525
pnpm-workspace.yaml=-474716307
2626
tools/bazel/rules_angular_store/package.json=-239561259
27-
yarn.lock=-792031330
27+
yarn.lock=1099737031

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
"@babel/generator": "7.27.1",
6464
"@bazel/concatjs": "5.8.1",
6565
"@bazel/esbuild": "5.8.1",
66+
"esbuild": "0.21.4",
6667
"@bazel/jasmine": "5.8.1",
6768
"@bazel/protractor": "5.8.1",
6869
"@bazel/rollup": "5.8.1",

packages/compiler-cli/src/ngtsc/core/src/compiler.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ import {
107107
DtsTransformRegistry,
108108
ivyTransformFactory,
109109
TraitCompiler,
110+
signalMetadataTransform,
110111
} from '../../transform';
111112
import {TemplateTypeCheckerImpl} from '../../typecheck';
112113
import {OptimizeFor, TemplateTypeChecker, TypeCheckingConfig} from '../../typecheck/api';
@@ -819,7 +820,7 @@ export class NgCompiler {
819820

820821
const defaultImportTracker = new DefaultImportTracker();
821822

822-
const before = [
823+
const before: ts.TransformerFactory<ts.SourceFile>[] = [
823824
ivyTransformFactory(
824825
compilation.traitCompiler,
825826
compilation.reflector,
@@ -859,7 +860,7 @@ export class NgCompiler {
859860
},
860861
)(ctx);
861862

862-
return (sourceFile) => {
863+
return (sourceFile: ts.SourceFile) => {
863864
if (!sourceFilesWithJit.has(sourceFile.fileName)) {
864865
return sourceFile;
865866
}
@@ -868,6 +869,9 @@ export class NgCompiler {
868869
});
869870
}
870871

872+
// Typescript transformer to add debugName metadata to signal functions.
873+
before.push(signalMetadataTransform(this.inputProgram));
874+
871875
const afterDeclarations: ts.TransformerFactory<ts.SourceFile>[] = [];
872876

873877
// In local compilation mode we don't make use of .d.ts files for Angular compilation, so their

packages/compiler-cli/src/ngtsc/transform/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,4 @@ export {
2323
TraitState,
2424
} from './src/trait';
2525
export {ivyTransformFactory} from './src/transform';
26+
export {signalMetadataTransform} from './src/implicit_signal_debug_name_transform';

0 commit comments

Comments
 (0)