@superhero/eventflow-spoke 4.4.9 → 4.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/index.js +1 -3
- package/manager/listeners.js +12 -6
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -147,9 +147,6 @@ export default class Spoke
|
|
|
147
147
|
|
|
148
148
|
// subscribe to all events that are already expected to be subscribed to
|
|
149
149
|
const subscriptions = deepmerge(this.consumers.listeners, this.subscriptions.listeners)
|
|
150
|
-
|
|
151
|
-
this.log.info`subscriptions ${subscriptions}`
|
|
152
|
-
|
|
153
150
|
for(const domain in subscriptions)
|
|
154
151
|
{
|
|
155
152
|
for(const name of subscriptions[domain])
|
|
@@ -216,6 +213,7 @@ export default class Spoke
|
|
|
216
213
|
|
|
217
214
|
async #onHubPublishMessage(_, domain, id, name, pid)
|
|
218
215
|
{
|
|
216
|
+
this.log.info`onHubPublishMessage ${domain} › ${id} › ${name} › ${pid}`
|
|
219
217
|
this.subscriptions[domain].emit(name, { domain, id, name, pid })
|
|
220
218
|
await this.db.updateEventPublishedToConsumedBySpoke(id, this.#spokeID)
|
|
221
219
|
&& this.consumers[domain].emit(name, { domain, id, name, pid })
|
package/manager/listeners.js
CHANGED
|
@@ -40,11 +40,12 @@ export default class ListenersManager
|
|
|
40
40
|
|
|
41
41
|
constructor()
|
|
42
42
|
{
|
|
43
|
-
|
|
43
|
+
const self = this
|
|
44
|
+
return new Proxy(self,
|
|
44
45
|
{
|
|
45
46
|
set: (_, domain, listener) =>
|
|
46
47
|
{
|
|
47
|
-
if(
|
|
48
|
+
if(self.#map.has(domain))
|
|
48
49
|
{
|
|
49
50
|
const error = new Error(`cannot overwrite an existing domain listener: ${domain}`)
|
|
50
51
|
error.code = 'E_EVENTFLOW_LISTENERS_DOMAIN_ALREADY_EXISTS'
|
|
@@ -53,7 +54,7 @@ export default class ListenersManager
|
|
|
53
54
|
|
|
54
55
|
if(listener instanceof Listener)
|
|
55
56
|
{
|
|
56
|
-
|
|
57
|
+
self.#map.set(domain, listener)
|
|
57
58
|
return true
|
|
58
59
|
}
|
|
59
60
|
else
|
|
@@ -63,9 +64,14 @@ export default class ListenersManager
|
|
|
63
64
|
throw error
|
|
64
65
|
}
|
|
65
66
|
},
|
|
66
|
-
|
|
67
|
-
has : (_, domain) =>
|
|
68
|
-
|
|
67
|
+
deleteProperty : (_, domain) => self.#map.delete(domain),
|
|
68
|
+
has : (_, domain) => self.#map.has(domain),
|
|
69
|
+
get : (target, domain) => 'symbol' === typeof domain
|
|
70
|
+
? Reflect.get(target, domain)
|
|
71
|
+
: self.#map.get(domain)
|
|
72
|
+
?? ( domain in target
|
|
73
|
+
? target[domain]
|
|
74
|
+
: target.lazyload(domain))
|
|
69
75
|
})
|
|
70
76
|
}
|
|
71
77
|
|