Get rid of domain module, allow app to override default event type

This commit is contained in:
Jon Staab
2024-08-13 15:45:20 -07:00
parent 5a63273b9d
commit 149c29472c
33 changed files with 201 additions and 285 deletions
+4 -5
View File
@@ -1,12 +1,12 @@
import {hexToBytes} from '@noble/hashes/utils'
import {getPublicKey, finalizeEvent} from 'nostr-tools'
import {now} from '@welshman/lib'
import type {ExtensibleTrustedEvent, EventTemplate, Filter} from '@welshman/util'
import type {CustomEvent, EventTemplate, Filter} from '@welshman/util'
import {subscribe, publish} from '@welshman/net'
export type DVMHandler = {
stop?: () => void
handleEvent: (e: ExtensibleTrustedEvent) => AsyncGenerator<EventTemplate>
handleEvent: (e: CustomEvent) => AsyncGenerator<EventTemplate>
}
export type CreateDVMHandler = (dvm: DVM) => DVMHandler
@@ -49,7 +49,7 @@ export class DVM {
const filters = [filter]
const sub = subscribe({relays, filters})
sub.emitter.on('event', (url: string, e: ExtensibleTrustedEvent) => this.onEvent(e))
sub.emitter.on('event', (url: string, e: CustomEvent) => this.onEvent(e))
sub.emitter.on('complete', () => resolve())
})
}
@@ -63,8 +63,7 @@ export class DVM {
this.active = false
}
async onEvent(request: ExtensibleTrustedEvent) {
console.log(request)
async onEvent(request: CustomEvent) {
const {expireAfter = 60 * 60} = this.opts
if (this.seen.has(request.id)) {
+2 -2
View File
@@ -1,5 +1,5 @@
import {Emitter, now} from '@welshman/lib'
import type {TrustedEvent, SignedEvent} from '@welshman/util'
import type {CustomEvent, SignedEvent} from '@welshman/util'
import {subscribe, publish} from '@welshman/net'
import type {Subscription, Publish} from '@welshman/net'
@@ -32,7 +32,7 @@ export const makeDvmRequest = (request: DVMRequestOptions) => {
const sub = subscribe({relays, timeout, filters})
const pub = publish({event, relays, timeout})
sub.emitter.on('event', (url: string, event: TrustedEvent) => {
sub.emitter.on('event', (url: string, event: CustomEvent) => {
if (event.kind === 7000) {
emitter.emit(DVMEvent.Progress, url, event)
} else {