Skip to content

Commit

Permalink
fix(signals): remove usage of SIGNAL symbol from Angular core primitives
Browse files Browse the repository at this point in the history
  • Loading branch information
brandonroberts committed Sep 23, 2024
1 parent 7ecd063 commit 4cae213
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 8 deletions.
5 changes: 1 addition & 4 deletions modules/signals/src/signal-store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1357,10 +1357,7 @@ export function signalStore(
const { stateSignals, computedSignals, methods, hooks } = innerStore;
const storeMembers = { ...stateSignals, ...computedSignals, ...methods };

(this as any)[STATE_SOURCE] =
config.protectedState === false
? innerStore[STATE_SOURCE]
: innerStore[STATE_SOURCE].asReadonly();
(this as any)[STATE_SOURCE] = innerStore[STATE_SOURCE];

for (const key in storeMembers) {
(this as any)[key] = storeMembers[key];
Expand Down
7 changes: 3 additions & 4 deletions modules/signals/src/state-source.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import {
untracked,
WritableSignal,
} from '@angular/core';
import { SIGNAL } from '@angular/core/primitives/signals';
import { Prettify } from './ts-helpers';

const STATE_WATCHERS = new WeakMap<object, Array<StateWatcher<any>>>();
Expand Down Expand Up @@ -79,7 +78,7 @@ export function watchState<State extends object>(
function getWatchers<State extends object>(
stateSource: StateSource<State>
): Array<StateWatcher<State>> {
return STATE_WATCHERS.get(stateSource[STATE_SOURCE][SIGNAL] as object) || [];
return STATE_WATCHERS.get(stateSource[STATE_SOURCE] as object) || [];
}

function notifyWatchers<State extends object>(
Expand All @@ -98,7 +97,7 @@ function addWatcher<State extends object>(
watcher: StateWatcher<State>
): void {
const watchers = getWatchers(stateSource);
STATE_WATCHERS.set(stateSource[STATE_SOURCE][SIGNAL] as object, [
STATE_WATCHERS.set(stateSource[STATE_SOURCE] as object, [
...watchers,
watcher,
]);
Expand All @@ -110,7 +109,7 @@ function removeWatcher<State extends object>(
): void {
const watchers = getWatchers(stateSource);
STATE_WATCHERS.set(
stateSource[STATE_SOURCE][SIGNAL] as object,
stateSource[STATE_SOURCE] as object,
watchers.filter((w) => w !== watcher)
);
}

0 comments on commit 4cae213

Please sign in to comment.