From 5b55b5f5d0c11c4dc5f50c0f3fd5f21936970c29 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Mon, 31 Mar 2025 09:44:36 -0700 Subject: [PATCH] Rename request/publish functions --- packages/dvm/src/handler.ts | 10 +++++----- packages/dvm/src/request.ts | 10 +++++----- packages/net/src/Publish.ts | 32 +++++++++++++------------------- packages/net/src/diff.ts | 8 ++++---- packages/net/src/request.ts | 30 ++++++++++++------------------ 5 files changed, 39 insertions(+), 51 deletions(-) diff --git a/packages/dvm/src/handler.ts b/packages/dvm/src/handler.ts index f262d5f..188a9c1 100644 --- a/packages/dvm/src/handler.ts +++ b/packages/dvm/src/handler.ts @@ -2,7 +2,7 @@ import {hexToBytes} from "@noble/hashes/utils" import {getPublicKey, finalizeEvent} from "nostr-tools/pure" import {now} from "@welshman/lib" import {TrustedEvent, StampedEvent, Filter} from "@welshman/util" -import {multireq, multicast, PublishEvent, RequestEvent, AdapterContext} from "@welshman/net" +import {MultiRequest, MultiPublish, PublishEvent, RequestEvent, AdapterContext} from "@welshman/net" export type DVMHandler = { stop?: () => void @@ -47,10 +47,10 @@ export class DVM { filter["#p"] = [getPublicKey(hexToBytes(sk))] } - const sub = multireq({relays, filter, context}) + const req = new MultiRequest({relays, filter, context}) - sub.on(RequestEvent.Event, (e: TrustedEvent, url: string) => this.onEvent(e)) - sub.on(RequestEvent.Close, () => resolve()) + req.on(RequestEvent.Event, (e: TrustedEvent, url: string) => this.onEvent(e)) + req.on(RequestEvent.Close, () => resolve()) }) } } @@ -113,7 +113,7 @@ export class DVM { const event = finalizeEvent(template, hexToBytes(sk)) await new Promise(resolve => { - multicast({event, relays, context}).on(PublishEvent.Complete, resolve) + new MultiPublish({event, relays, context}).on(PublishEvent.Complete, resolve) }) } } diff --git a/packages/dvm/src/request.ts b/packages/dvm/src/request.ts index 64f8501..5479954 100644 --- a/packages/dvm/src/request.ts +++ b/packages/dvm/src/request.ts @@ -1,6 +1,6 @@ import {Emitter, now} from "@welshman/lib" import {TrustedEvent, SignedEvent, Filter} from "@welshman/util" -import {multireq, multicast, Multireq, Multicast, RequestEvent, AdapterContext} from "@welshman/net" +import {MultiRequest, MultiPublish, RequestEvent, AdapterContext} from "@welshman/net" export enum DVMEvent { Progress = "progress", @@ -19,8 +19,8 @@ export type DVMRequestOptions = { export type DVMRequest = { request: DVMRequestOptions emitter: Emitter - sub: Multireq - pub: Multicast + sub: MultiRequest + pub: MultiPublish } export const makeDvmRequest = (request: DVMRequestOptions) => { @@ -37,8 +37,8 @@ export const makeDvmRequest = (request: DVMRequestOptions) => { const kinds = reportProgress ? [kind, 7000] : [kind] const filter: Filter = {kinds, since: now() - 60, "#e": [event.id]} - const sub = multireq({relays, filter, timeout, context}) - const pub = multicast({relays, event, timeout, context}) + const sub = new MultiRequest({relays, filter, timeout, context}) + const pub = new MultiPublish({relays, event, timeout, context}) sub.on(RequestEvent.Event, (event: TrustedEvent, url: string) => { if (event.kind === 7000) { diff --git a/packages/net/src/Publish.ts b/packages/net/src/Publish.ts index 8ee0279..f9f97c3 100644 --- a/packages/net/src/Publish.ts +++ b/packages/net/src/Publish.ts @@ -21,9 +21,9 @@ export enum PublishEvent { Complete = "publish:event:complete", } -// Unicast +// SinglePublish -export type UnicastEvents = { +export type SinglePublishEvents = { [PublishEvent.Success]: (id: string, detail: string) => void [PublishEvent.Failure]: (id: string, detail: string) => void [PublishEvent.Timeout]: () => void @@ -31,26 +31,26 @@ export type UnicastEvents = { [PublishEvent.Complete]: () => void } -export type UnicastOptions = { +export type SinglePublishOptions = { event: SignedEvent relay: string context?: AdapterContext timeout?: number } -export class Unicast extends (EventEmitter as new () => TypedEmitter) { +export class SinglePublish extends (EventEmitter as new () => TypedEmitter) { status = PublishStatus.Pending _unsubscriber: () => void _adapter: AbstractAdapter - constructor(readonly options: UnicastOptions) { + constructor(readonly options: SinglePublishOptions) { super() // Set up our adapter this._adapter = getAdapter(this.options.relay, this.options.context) - // Listen for Unicast result + // Listen for SinglePublish result this._unsubscriber = on( this._adapter, AdapterEvent.Receive, @@ -105,9 +105,9 @@ export class Unicast extends (EventEmitter as new () => TypedEmitter void [PublishEvent.Failure]: (id: string, detail: string, url: string) => void [PublishEvent.Timeout]: (url: string) => void @@ -115,23 +115,23 @@ export type MulticastEvents = { [PublishEvent.Complete]: () => void } -export type MulticastOptions = Omit & { +export type MultiPublishOptions = Omit & { relays: string[] } -export class Multicast extends (EventEmitter as new () => TypedEmitter) { +export class MultiPublish extends (EventEmitter as new () => TypedEmitter) { status: Record - _children: Unicast[] = [] + _children: SinglePublish[] = [] _completed = new Set() - constructor({relays, ...options}: MulticastOptions) { + constructor({relays, ...options}: MultiPublishOptions) { super() this.status = fromPairs(relays.map(relay => [relay, PublishStatus.Pending])) for (const relay of relays) { - const unicast = new Unicast({relay, ...options}) + const unicast = new SinglePublish({relay, ...options}) unicast.on(PublishEvent.Success, (id: string, detail: string) => { this.status[relay] = unicast.status @@ -177,9 +177,3 @@ export class Multicast extends (EventEmitter as new () => TypedEmitter new Unicast(options) - -export const multicast = (options: MulticastOptions) => new Multicast(options) diff --git a/packages/net/src/diff.ts b/packages/net/src/diff.ts index 1af5856..fe665ce 100644 --- a/packages/net/src/diff.ts +++ b/packages/net/src/diff.ts @@ -11,8 +11,8 @@ import { } from "./message.js" import {getAdapter, AdapterContext, AbstractAdapter, AdapterEvent} from "./adapter.js" import {Negentropy, NegentropyStorageVector} from "./negentropy.js" -import {unireq, RequestEvent} from "./request.js" -import {multicast, PublishEvent} from "./publish.js" +import {SingleRequest, RequestEvent} from "./request.js" +import {MultiPublish, PublishEvent} from "./publish.js" export enum DifferenceEvent { Message = "difference:event:message", @@ -204,7 +204,7 @@ export const pull = async ({context, ...options}: PullOptions) => { return Promise.all( chunk(500, allIds).map(ids => { return new Promise(resolve => { - const req = unireq({relay, context, filter: {ids}, autoClose: true}) + const req = new SingleRequest({relay, context, filter: {ids}, autoClose: true}) req.on(RequestEvent.Close, resolve) req.on(RequestEvent.Event, event => result.push(event)) @@ -236,7 +236,7 @@ export const push = async ({context, events, ...options}: PushOptions) => { if (relays) { new Promise(resolve => { - multicast({event, relays, context}).on(PublishEvent.Complete, resolve) + new MultiPublish({event, relays, context}).on(PublishEvent.Complete, resolve) }) } }), diff --git a/packages/net/src/request.ts b/packages/net/src/request.ts index 4b9662e..923e8fe 100644 --- a/packages/net/src/request.ts +++ b/packages/net/src/request.ts @@ -26,9 +26,9 @@ export enum RequestEvent { Invalid = "request:event:invalid", } -// Unireq +// SingleRequest -export type UnireqEvents = { +export type SingleRequestEvents = { [RequestEvent.Event]: (event: SignedEvent) => void [RequestEvent.Invalid]: (event: SignedEvent) => void [RequestEvent.Filtered]: (event: SignedEvent) => void @@ -38,7 +38,7 @@ export type UnireqEvents = { [RequestEvent.Eose]: () => void } -export type UnireqOptions = { +export type SingleRequestOptions = { relay: string filter: Filter context?: AdapterContext @@ -48,13 +48,13 @@ export type UnireqOptions = { verifyEvent?: (event: SignedEvent) => boolean } -export class Unireq extends (EventEmitter as new () => TypedEmitter) { +export class SingleRequest extends (EventEmitter as new () => TypedEmitter) { _id = `REQ-${randomId().slice(0, 8)}` _unsubscribers: Unsubscriber[] = [] _adapter: AbstractAdapter _closed = false - constructor(readonly options: UnireqOptions) { + constructor(readonly options: SingleRequestOptions) { super() const tracker = options.tracker || new Tracker() @@ -135,9 +135,9 @@ export class Unireq extends (EventEmitter as new () => TypedEmitter void [RequestEvent.Invalid]: (event: SignedEvent, url: string) => void [RequestEvent.Filtered]: (event: SignedEvent, url: string) => void @@ -147,21 +147,21 @@ export type MultireqEvents = { [RequestEvent.Close]: () => void } -export type MultireqOptions = Omit & { +export type MultiRequestOptions = Omit & { relays: string[] } -export class Multireq extends (EventEmitter as new () => TypedEmitter) { - _children: Unireq[] = [] +export class MultiRequest extends (EventEmitter as new () => TypedEmitter) { + _children: SingleRequest[] = [] _closed = new Set() - constructor({relays, ...options}: MultireqOptions) { + constructor({relays, ...options}: MultiRequestOptions) { super() const tracker = new Tracker() for (const relay of relays) { - const req = new Unireq({relay, tracker, ...options}) + const req = new SingleRequest({relay, tracker, ...options}) req.on(RequestEvent.Event, (event: SignedEvent) => { this.emit(RequestEvent.Event, event, relay) @@ -205,9 +205,3 @@ export class Multireq extends (EventEmitter as new () => TypedEmitter new Unireq(options) - -export const multireq = (options: MultireqOptions) => new Multireq(options)