@@ -28,8 +28,11 @@ import {
2828
2929export interface DebugSignalGraphNode {
3030 kind : string ;
31+ id : string ;
32+ epoch : number ;
3133 label ?: string ;
3234 value ?: unknown ;
35+ debuggableFn ?: ( ) => unknown ;
3336}
3437
3538export interface DebugSignalGraphEdge {
@@ -84,6 +87,9 @@ function getTemplateConsumer(injector: NodeInjector): ReactiveLViewConsumer | nu
8487 return templateLView [ REACTIVE_TEMPLATE_CONSUMER ] ;
8588}
8689
90+ const signalDebugMap = new WeakMap < ReactiveNode , string > ( ) ;
91+ let counter = 0 ;
92+
8793function getNodesAndEdgesFromSignalMap ( signalMap : ReadonlyMap < ReactiveNode , ReactiveNode [ ] > ) : {
8894 nodes : DebugSignalGraphNode [ ] ;
8995 edges : DebugSignalGraphEdge [ ] ;
@@ -95,27 +101,44 @@ function getNodesAndEdgesFromSignalMap(signalMap: ReadonlyMap<ReactiveNode, Reac
95101 for ( const [ consumer , producers ] of signalMap . entries ( ) ) {
96102 const consumerIndex = nodes . indexOf ( consumer ) ;
97103
104+ let id = signalDebugMap . get ( consumer ) ;
105+ if ( ! id ) {
106+ counter ++ ;
107+ id = counter . toString ( ) ;
108+ signalDebugMap . set ( consumer , id ) ;
109+ }
110+
98111 // collect node
99- if ( isComputedNode ( consumer ) || isSignalNode ( consumer ) ) {
112+ if ( isComputedNode ( consumer ) ) {
100113 debugSignalGraphNodes . push ( {
101114 label : consumer . debugName ,
102115 value : consumer . value ,
103116 kind : consumer . kind ,
117+ epoch : consumer . version ,
118+ debuggableFn : consumer . computation ,
119+ id,
104120 } ) ;
105- } else if ( isTemplateEffectNode ( consumer ) ) {
121+ } else if ( isSignalNode ( consumer ) ) {
106122 debugSignalGraphNodes . push ( {
107- label : consumer . debugName ?? consumer . lView ?. [ HOST ] ?. tagName ?. toLowerCase ?.( ) ,
123+ label : consumer . debugName ,
124+ value : consumer . value ,
108125 kind : consumer . kind ,
126+ epoch : consumer . version ,
127+ id,
109128 } ) ;
110- } else if ( isEffectNode ( consumer ) ) {
129+ } else if ( isTemplateEffectNode ( consumer ) ) {
111130 debugSignalGraphNodes . push ( {
112- label : consumer . debugName ,
131+ label : consumer . debugName ?? consumer . lView ?. [ HOST ] ?. tagName ?. toLowerCase ?. ( ) ,
113132 kind : consumer . kind ,
133+ epoch : consumer . version ,
134+ id,
114135 } ) ;
115136 } else {
116137 debugSignalGraphNodes . push ( {
117138 label : consumer . debugName ,
118139 kind : consumer . kind ,
140+ epoch : consumer . version ,
141+ id,
119142 } ) ;
120143 }
121144
0 commit comments