@bodil/signal 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/map.d.ts +0 -1
- package/dist/map.js +2 -6
- package/dist/map.js.map +1 -1
- package/package.json +1 -1
- package/src/map.ts +2 -10
package/dist/map.d.ts
CHANGED
package/dist/map.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { present } from "@bodil/core/assert";
|
|
2
1
|
import { None, Some } from "@bodil/opt";
|
|
3
2
|
import * as Signal from "./signal";
|
|
4
3
|
const instance = Symbol("Signal.Map");
|
|
@@ -29,14 +28,12 @@ export class ReadonlySignalMap {
|
|
|
29
28
|
const self = this[instance];
|
|
30
29
|
const active = self.signals.get(key)?.deref();
|
|
31
30
|
if (active !== undefined) {
|
|
32
|
-
return
|
|
31
|
+
return active.readOnly;
|
|
33
32
|
}
|
|
34
33
|
const sig = new Signal.State(self.map.has(key) ? Some(self.map.get(key)) : None);
|
|
35
34
|
self.registry.register(sig, key);
|
|
36
35
|
self.signals.set(key, new WeakRef(sig));
|
|
37
|
-
|
|
38
|
-
self.readonlySignals.set(sig, roSig);
|
|
39
|
-
return roSig;
|
|
36
|
+
return sig.readOnly;
|
|
40
37
|
}
|
|
41
38
|
/**
|
|
42
39
|
* Get the value associated with the given key in the map.
|
|
@@ -148,7 +145,6 @@ export class SignalMap extends ReadonlySignalMap {
|
|
|
148
145
|
map: new Map(entries),
|
|
149
146
|
signal: new Signal.State(null, { equals: () => false }),
|
|
150
147
|
signals,
|
|
151
|
-
readonlySignals: new WeakMap(),
|
|
152
148
|
registry: new FinalizationRegistry((key) => signals.delete(key)),
|
|
153
149
|
});
|
|
154
150
|
}
|
package/dist/map.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.js","sourceRoot":"","sources":["../src/map.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../src/map.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/map.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { present } from "@bodil/core/assert";
|
|
2
1
|
import type { Equals } from "@bodil/core/types";
|
|
3
2
|
import { None, Some, type Option } from "@bodil/opt";
|
|
4
3
|
|
|
@@ -10,7 +9,6 @@ type InstanceProps<K, V> = {
|
|
|
10
9
|
map: Map<K, V>;
|
|
11
10
|
signal: Signal.State<null>;
|
|
12
11
|
signals: Map<K, WeakRef<Signal.State<Option<V>>>>;
|
|
13
|
-
readonlySignals: WeakMap<Signal.State<Option<V>>, Signal.Computed<Option<V>>>;
|
|
14
12
|
registry: FinalizationRegistry<K>;
|
|
15
13
|
};
|
|
16
14
|
|
|
@@ -46,17 +44,12 @@ export class ReadonlySignalMap<K, V> implements Iterable<[K, V]>, Equals {
|
|
|
46
44
|
const self = this[instance];
|
|
47
45
|
const active = self.signals.get(key)?.deref();
|
|
48
46
|
if (active !== undefined) {
|
|
49
|
-
return
|
|
50
|
-
self.readonlySignals.get(active),
|
|
51
|
-
"Signal.Map.signal(): unexpected absence of readonly signal for a signal which still exists",
|
|
52
|
-
);
|
|
47
|
+
return active.readOnly;
|
|
53
48
|
}
|
|
54
49
|
const sig = new Signal.State(self.map.has(key) ? Some(self.map.get(key)!) : None);
|
|
55
50
|
self.registry.register(sig, key);
|
|
56
51
|
self.signals.set(key, new WeakRef(sig));
|
|
57
|
-
|
|
58
|
-
self.readonlySignals.set(sig, roSig);
|
|
59
|
-
return roSig;
|
|
52
|
+
return sig.readOnly;
|
|
60
53
|
}
|
|
61
54
|
|
|
62
55
|
/**
|
|
@@ -179,7 +172,6 @@ export class SignalMap<K, V> extends ReadonlySignalMap<K, V> {
|
|
|
179
172
|
map: new Map(entries),
|
|
180
173
|
signal: new Signal.State(null, { equals: () => false }),
|
|
181
174
|
signals,
|
|
182
|
-
readonlySignals: new WeakMap(),
|
|
183
175
|
registry: new FinalizationRegistry((key) => signals.delete(key)),
|
|
184
176
|
});
|
|
185
177
|
}
|