Don't report ok to global onEvent when ok is false
This commit is contained in:
@@ -68,10 +68,13 @@ export class Executor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
publish(event: SignedEvent, {verb = 'EVENT', onOk, onError}: PublishOpts = {}) {
|
publish(event: SignedEvent, {verb = 'EVENT', onOk, onError}: PublishOpts = {}) {
|
||||||
const okListener = (url: string, id: string, ...payload: any[]) => {
|
const okListener = (url: string, id: string, ok: boolean, message: string) => {
|
||||||
if (id === event.id) {
|
if (id === event.id) {
|
||||||
ctx.net.onEvent(url, event)
|
if (ok) {
|
||||||
onOk?.(url, id, ...payload)
|
ctx.net.onEvent(url, event)
|
||||||
|
}
|
||||||
|
|
||||||
|
onOk?.(url, id, ok, message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,8 +17,18 @@ export class Tracker extends Emitter {
|
|||||||
hasRelay = (eventId: string, relay: string) => this.relaysById.get(eventId)?.has(relay)
|
hasRelay = (eventId: string, relay: string) => this.relaysById.get(eventId)?.has(relay)
|
||||||
|
|
||||||
addRelay = (eventId: string, relay: string) => {
|
addRelay = (eventId: string, relay: string) => {
|
||||||
const relays = this.relaysById.get(eventId) || new Set()
|
let relays = this.relaysById.get(eventId)
|
||||||
const ids = this.idsByRelay.get(relay) || new Set()
|
let ids = this.idsByRelay.get(relay)
|
||||||
|
|
||||||
|
if (relays?.has(relay) && ids?.has(eventId)) return
|
||||||
|
|
||||||
|
if (!relays) {
|
||||||
|
relays = new Set()
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!ids) {
|
||||||
|
ids = new Set()
|
||||||
|
}
|
||||||
|
|
||||||
relays.add(relay)
|
relays.add(relay)
|
||||||
ids.add(eventId)
|
ids.add(eventId)
|
||||||
@@ -30,8 +40,10 @@ export class Tracker extends Emitter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
removeRelay = (eventId: string, relay: string) => {
|
removeRelay = (eventId: string, relay: string) => {
|
||||||
this.relaysById.get(eventId)?.delete(relay)
|
const didDeleteRelay = this.relaysById.get(eventId)?.delete(relay)
|
||||||
this.idsByRelay.get(relay)?.delete(eventId)
|
const didDeleteId = this.idsByRelay.get(relay)?.delete(eventId)
|
||||||
|
|
||||||
|
if (!didDeleteRelay && !didDeleteId) return
|
||||||
|
|
||||||
this.emit('update')
|
this.emit('update')
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user