Add abort signal support to diff
This commit is contained in:
@@ -29,6 +29,7 @@ export type DifferenceOptions = {
|
|||||||
relay: string
|
relay: string
|
||||||
filter: Filter
|
filter: Filter
|
||||||
events: SignedEvent[]
|
events: SignedEvent[]
|
||||||
|
signal?: AbortSignal
|
||||||
context?: AdapterContext
|
context?: AdapterContext
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,6 +45,9 @@ export class Difference extends EventEmitter {
|
|||||||
constructor(readonly options: DifferenceOptions) {
|
constructor(readonly options: DifferenceOptions) {
|
||||||
super()
|
super()
|
||||||
|
|
||||||
|
// Listen for abort
|
||||||
|
options.signal?.addEventListener("abort", () => this.close())
|
||||||
|
|
||||||
// Set up our adapter
|
// Set up our adapter
|
||||||
this._adapter = getAdapter(this.options.relay, this.options.context)
|
this._adapter = getAdapter(this.options.relay, this.options.context)
|
||||||
|
|
||||||
@@ -120,6 +124,7 @@ export type DiffOptions = {
|
|||||||
relays: string[]
|
relays: string[]
|
||||||
filters: Filter[]
|
filters: Filter[]
|
||||||
events: SignedEvent[]
|
events: SignedEvent[]
|
||||||
|
signal?: AbortSignal
|
||||||
context?: AdapterContext
|
context?: AdapterContext
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -208,6 +213,7 @@ export const pull = async ({context, ...options}: PullOptions) => {
|
|||||||
relay,
|
relay,
|
||||||
context,
|
context,
|
||||||
filters: [{ids}],
|
filters: [{ids}],
|
||||||
|
signal: options.signal,
|
||||||
autoClose: true,
|
autoClose: true,
|
||||||
onClose: resolve,
|
onClose: resolve,
|
||||||
onEvent: event => result.push(event as SignedEvent),
|
onEvent: event => result.push(event as SignedEvent),
|
||||||
@@ -239,7 +245,7 @@ export const push = async ({context, events, ...options}: PushOptions) => {
|
|||||||
const relays = relaysById.get(event.id)
|
const relays = relaysById.get(event.id)
|
||||||
|
|
||||||
if (relays) {
|
if (relays) {
|
||||||
await publish({event, relays, context})
|
await publish({event, relays, context, signal: options.signal})
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user