@@ -28,8 +28,11 @@ import {
28
28
29
29
export interface DebugSignalGraphNode {
30
30
kind : string ;
31
+ id : string ;
32
+ epoch : number ;
31
33
label ?: string ;
32
34
value ?: unknown ;
35
+ debuggableFn ?: ( ) => unknown ;
33
36
}
34
37
35
38
export interface DebugSignalGraphEdge {
@@ -84,6 +87,9 @@ function getTemplateConsumer(injector: NodeInjector): ReactiveLViewConsumer | nu
84
87
return templateLView [ REACTIVE_TEMPLATE_CONSUMER ] ;
85
88
}
86
89
90
+ const signalDebugMap = new WeakMap < ReactiveNode , string > ( ) ;
91
+ let counter = 0 ;
92
+
87
93
function getNodesAndEdgesFromSignalMap ( signalMap : ReadonlyMap < ReactiveNode , ReactiveNode [ ] > ) : {
88
94
nodes : DebugSignalGraphNode [ ] ;
89
95
edges : DebugSignalGraphEdge [ ] ;
@@ -95,27 +101,44 @@ function getNodesAndEdgesFromSignalMap(signalMap: ReadonlyMap<ReactiveNode, Reac
95
101
for ( const [ consumer , producers ] of signalMap . entries ( ) ) {
96
102
const consumerIndex = nodes . indexOf ( consumer ) ;
97
103
104
+ let id = signalDebugMap . get ( consumer ) ;
105
+ if ( ! id ) {
106
+ counter ++ ;
107
+ id = `${ consumer . debugName } -${ counter } ` ;
108
+ signalDebugMap . set ( consumer , id ) ;
109
+ }
110
+
98
111
// collect node
99
- if ( isComputedNode ( consumer ) || isSignalNode ( consumer ) ) {
112
+ if ( isComputedNode ( consumer ) ) {
100
113
debugSignalGraphNodes . push ( {
101
114
label : consumer . debugName ,
102
115
value : consumer . value ,
103
116
kind : consumer . kind ,
117
+ epoch : consumer . version ,
118
+ debuggableFn : consumer . computation ,
119
+ id,
104
120
} ) ;
105
- } else if ( isTemplateEffectNode ( consumer ) ) {
121
+ } else if ( isSignalNode ( consumer ) ) {
106
122
debugSignalGraphNodes . push ( {
107
- label : consumer . debugName ?? consumer . lView ?. [ HOST ] ?. tagName ?. toLowerCase ?.( ) ,
123
+ label : consumer . debugName ,
124
+ value : consumer . value ,
108
125
kind : consumer . kind ,
126
+ epoch : consumer . version ,
127
+ id,
109
128
} ) ;
110
- } else if ( isEffectNode ( consumer ) ) {
129
+ } else if ( isTemplateEffectNode ( consumer ) ) {
111
130
debugSignalGraphNodes . push ( {
112
- label : consumer . debugName ,
131
+ label : consumer . debugName ?? consumer . lView ?. [ HOST ] ?. tagName ?. toLowerCase ?. ( ) ,
113
132
kind : consumer . kind ,
133
+ epoch : consumer . version ,
134
+ id,
114
135
} ) ;
115
136
} else {
116
137
debugSignalGraphNodes . push ( {
117
138
label : consumer . debugName ,
118
139
kind : consumer . kind ,
140
+ epoch : consumer . version ,
141
+ id,
119
142
} ) ;
120
143
}
121
144
0 commit comments