Adjust signal again

This commit is contained in:
Schluffe
2026-08-28 10:31:39 +02:00
parent 7b3c9865fe
commit 51c1fc249d
2 changed files with 12 additions and 13 deletions
+4 -9
View File
@@ -4,22 +4,17 @@ let current: Current = null;
export function createSignal<T>(value: T): [() => T, (value: T) => void] {
let innerValue = value;
const observers: Array<Current> = [];
const indices = new Map<Current, number>();
const observers = new Set<() => void>();
const getter = () => {
if (current !== null && !indices.has(current)) {
observers.push(current);
indices.set(current, observers.length);
}
current !== null && observers.add(current);
return innerValue;
};
const setter = (value: T) => {
innerValue = value;
for (let i = 0; i < observers.length; i++) {
observers[i]!();
for (const observer of observers) {
observer();
}
};