Simplify
This commit is contained in:
parent
4c0e2b448e
commit
5d49794d88
18
main.ts
18
main.ts
|
@ -17,19 +17,11 @@ const Observe = Record.makeConstructor<Ref<Entity>>('Observe', ['label', 'observ
|
|||
function makeDataspace(): Entity {
|
||||
const handleMap: IdentityMap<Handle, Assertion> = new IdentityMap();
|
||||
const assertions = new Bag<Ref<Entity>>();
|
||||
const subscriptions: Dictionary<Dictionary<Dictionary<Handle>>> = new Dictionary();
|
||||
const subscriptions: Dictionary<Map<Ref<Entity>, Dictionary<Handle>>> = new Dictionary();
|
||||
|
||||
function forEachSubscription(assertion: Assertion, f: (handleMap: Dictionary<Handle>, peer: Ref<Entity>) => void): void {
|
||||
if (Record.isRecord(assertion)) {
|
||||
const peerMap = subscriptions.get(assertion.label);
|
||||
if (Dictionary.isDictionary(peerMap)) {
|
||||
peerMap.forEach((handleMap, peer) => {
|
||||
if (peer instanceof Ref) {
|
||||
f(handleMap, peer);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
if (!Record.isRecord(assertion)) return;
|
||||
subscriptions.get(assertion.label)?.forEach(f);
|
||||
}
|
||||
|
||||
return {
|
||||
|
@ -42,7 +34,7 @@ function makeDataspace(): Entity {
|
|||
const observer = Observe._.observer(assertion) as Ref<Entity>;
|
||||
let peerMap = subscriptions.get(observedLabel);
|
||||
if (peerMap === void 0) {
|
||||
peerMap = new Dictionary();
|
||||
peerMap = new Map();
|
||||
subscriptions.set(observedLabel, peerMap);
|
||||
}
|
||||
const handleMap: Dictionary<Handle> = new Dictionary();
|
||||
|
@ -78,7 +70,7 @@ function makeDataspace(): Entity {
|
|||
});
|
||||
if (Observe.isClassOf(assertion)) {
|
||||
let peerMap = subscriptions.get(Observe._.label(assertion)!)!;
|
||||
peerMap.delete(Observe._.observer(assertion)!);
|
||||
peerMap.delete(Observe._.observer(assertion)! as Ref<Entity>);
|
||||
if (peerMap.size === 0) subscriptions.delete(Observe._.label(assertion)!);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue