@@ -7,10 +7,9 @@ import {
7
7
untracked ,
8
8
WritableSignal ,
9
9
} from '@angular/core' ;
10
- import { SIGNAL } from '@angular/core/primitives/signals' ;
11
10
import { Prettify } from './ts-helpers' ;
12
11
13
- const STATE_WATCHERS = new WeakMap < object , Array < StateWatcher < any > > > ( ) ;
12
+ const STATE_WATCHERS = new WeakMap < Signal < object > , Array < StateWatcher < any > > > ( ) ;
14
13
15
14
export const STATE_SOURCE = Symbol ( 'STATE_SOURCE' ) ;
16
15
@@ -79,7 +78,7 @@ export function watchState<State extends object>(
79
78
function getWatchers < State extends object > (
80
79
stateSource : StateSource < State >
81
80
) : Array < StateWatcher < State > > {
82
- return STATE_WATCHERS . get ( stateSource [ STATE_SOURCE ] [ SIGNAL ] as object ) || [ ] ;
81
+ return STATE_WATCHERS . get ( stateSource [ STATE_SOURCE ] ) || [ ] ;
83
82
}
84
83
85
84
function notifyWatchers < State extends object > (
@@ -98,10 +97,7 @@ function addWatcher<State extends object>(
98
97
watcher : StateWatcher < State >
99
98
) : void {
100
99
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 ] ) ;
105
101
}
106
102
107
103
function removeWatcher < State extends object > (
@@ -110,7 +106,7 @@ function removeWatcher<State extends object>(
110
106
) : void {
111
107
const watchers = getWatchers ( stateSource ) ;
112
108
STATE_WATCHERS . set (
113
- stateSource [ STATE_SOURCE ] [ SIGNAL ] as object ,
109
+ stateSource [ STATE_SOURCE ] ,
114
110
watchers . filter ( ( w ) => w !== watcher )
115
111
) ;
116
112
}
0 commit comments