@@ -7,10 +7,9 @@ import {
77 untracked ,
88 WritableSignal ,
99} from '@angular/core' ;
10- import { SIGNAL } from '@angular/core/primitives/signals' ;
1110import { Prettify } from './ts-helpers' ;
1211
13- const STATE_WATCHERS = new WeakMap < object , Array < StateWatcher < any > > > ( ) ;
12+ const STATE_WATCHERS = new WeakMap < Signal < object > , Array < StateWatcher < any > > > ( ) ;
1413
1514export const STATE_SOURCE = Symbol ( 'STATE_SOURCE' ) ;
1615
@@ -79,7 +78,7 @@ export function watchState<State extends object>(
7978function getWatchers < State extends object > (
8079 stateSource : StateSource < State >
8180) : Array < StateWatcher < State > > {
82- return STATE_WATCHERS . get ( stateSource [ STATE_SOURCE ] [ SIGNAL ] as object ) || [ ] ;
81+ return STATE_WATCHERS . get ( stateSource [ STATE_SOURCE ] ) || [ ] ;
8382}
8483
8584function notifyWatchers < State extends object > (
@@ -98,10 +97,7 @@ function addWatcher<State extends object>(
9897 watcher : StateWatcher < State >
9998) : void {
10099 const watchers = getWatchers ( stateSource ) ;
101- STATE_WATCHERS . set ( stateSource [ STATE_SOURCE ] [ SIGNAL ] as object , [
102- ...watchers ,
103- watcher ,
104- ] ) ;
100+ STATE_WATCHERS . set ( stateSource [ STATE_SOURCE ] , [ ...watchers , watcher ] ) ;
105101}
106102
107103function removeWatcher < State extends object > (
@@ -110,7 +106,7 @@ function removeWatcher<State extends object>(
110106) : void {
111107 const watchers = getWatchers ( stateSource ) ;
112108 STATE_WATCHERS . set (
113- stateSource [ STATE_SOURCE ] [ SIGNAL ] as object ,
109+ stateSource [ STATE_SOURCE ] ,
114110 watchers . filter ( ( w ) => w !== watcher )
115111 ) ;
116112}
0 commit comments