Skip to content

Welshman Docs / @welshman/domain / EventWriter

Class: abstract EventWriter<Reader> ​

Defined in: core/EventWriter.ts:37

Extended by ​

Type Parameters ​

Reader ​

Reader extends BaseEventReader

Constructors ​

Constructor ​

new EventWriter<Reader>(kind, context, reader?): EventWriter<Reader>

Defined in: core/EventWriter.ts:53

Parameters ​

kind ​

number

context ​

KindContext

reader? ​

Reader

Returns ​

EventWriter<Reader>

Properties ​

clientTag? ​

optional clientTag: string[]

Defined in: core/EventWriter.ts:43


content ​

content: string = ""

Defined in: core/EventWriter.ts:38


contentWarningTag? ​

optional contentWarningTag: string[]

Defined in: core/EventWriter.ts:42


context ​

readonly context: KindContext

Defined in: core/EventWriter.ts:55


expirationTag? ​

optional expirationTag: string[]

Defined in: core/EventWriter.ts:41


extraTags ​

extraTags: string[][] = []

Defined in: core/EventWriter.ts:45


forcedRoutes? ​

optional forcedRoutes: RelaySelection[]

Defined in: core/EventWriter.ts:46


identifierTag? ​

optional identifierTag: string[]

Defined in: core/EventWriter.ts:44


kind ​

readonly kind: number

Defined in: core/EventWriter.ts:54


pendingResolves ​

pendingResolves: Promise<unknown>[] = []

Defined in: core/EventWriter.ts:47


protectTag? ​

optional protectTag: string[]

Defined in: core/EventWriter.ts:40


reader? ​

readonly optional reader: Reader

Defined in: core/EventWriter.ts:56


requiresRelays ​

readonly requiresRelays: boolean = false

Defined in: core/EventWriter.ts:51


roomTag? ​

optional roomTag: string[]

Defined in: core/EventWriter.ts:39

Methods ​

addEmoji() ​

addEmoji(shortcode, url, address?): EventWriter<Reader>

Defined in: core/EventWriter.ts:235

Parameters ​

shortcode ​

string

url ​

string

address? ​

string

Returns ​

EventWriter<Reader>


addMention() ​

addMention(pubkey): EventWriter<Reader>

Defined in: core/EventWriter.ts:195

Parameters ​

pubkey ​

string

Returns ​

EventWriter<Reader>


addQuote() ​

addQuote(event): EventWriter<Reader>

Defined in: core/EventWriter.ts:207

Parameters ​

event ​

TrustedEvent

Returns ​

EventWriter<Reader>


addTags() ​

addTags(...tags): EventWriter<Reader>

Defined in: core/EventWriter.ts:177

Parameters ​

tags ​

...string[][]

Returns ​

EventWriter<Reader>


addZapSplit() ​

addZapSplit(pubkey, split): EventWriter<Reader>

Defined in: core/EventWriter.ts:219

Parameters ​

pubkey ​

string

split ​

number = 1

Returns ​

EventWriter<Reader>


clearClient() ​

clearClient(): EventWriter<Reader>

Defined in: core/EventWriter.ts:159

Returns ​

EventWriter<Reader>


clearContentWarning() ​

clearContentWarning(): EventWriter<Reader>

Defined in: core/EventWriter.ts:134

Returns ​

EventWriter<Reader>


clearExpiration() ​

clearExpiration(): EventWriter<Reader>

Defined in: core/EventWriter.ts:121

Returns ​

EventWriter<Reader>


clearForcedRoutes() ​

clearForcedRoutes(): EventWriter<Reader>

Defined in: core/EventWriter.ts:103

Returns ​

EventWriter<Reader>


clearIdentifier() ​

clearIdentifier(): EventWriter<Reader>

Defined in: core/EventWriter.ts:171

Returns ​

EventWriter<Reader>


clearRoom() ​

clearRoom(): EventWriter<Reader>

Defined in: core/EventWriter.ts:85

Returns ​

EventWriter<Reader>


dropTags() ​

dropTags(pred): EventWriter<Reader>

Defined in: core/EventWriter.ts:189

Parameters ​

pred ​

(tag) => boolean

Returns ​

EventWriter<Reader>


forceRoutes() ​

forceRoutes(...routes): EventWriter<Reader>

Defined in: core/EventWriter.ts:97

Replaces the rendered routes. These are routes rather than urls, so forceRoutes(userInbox()) pins an event to the user's read relays without resolving them first.

Parameters ​

routes ​

...RelaySelection[]

Returns ​

EventWriter<Reader>


hint() ​

protected hint(...routes): Promise<string>

Defined in: core/EventWriter.ts:282

Resolves one or more relay selections to a single hint url, tracking the in-flight promise so renderTags can wait for it. Callers backfill the resolved url into a tag's hint slot.

Parameters ​

routes ​

...RelaySelection[]

Returns ​

Promise<string>


keepTags() ​

keepTags(pred): EventWriter<Reader>

Defined in: core/EventWriter.ts:183

Parameters ​

pred ​

(tag) => boolean

Returns ​

EventWriter<Reader>


relays() ​

relays(): Promise<string[]>

Defined in: core/EventWriter.ts:361

Shortcut for getting relays from the router scenario.

Returns ​

Promise<string[]>


removeEmoji() ​

removeEmoji(shortcode): EventWriter<Reader>

Defined in: core/EventWriter.ts:241

Parameters ​

shortcode ​

string

Returns ​

EventWriter<Reader>


removeZapSplit() ​

removeZapSplit(pubkey): EventWriter<Reader>

Defined in: core/EventWriter.ts:231

Parameters ​

pubkey ​

string

Returns ​

EventWriter<Reader>


render() ​

render(): Promise<{ event: EventTemplate; relays: string[]; }>

Defined in: core/EventWriter.ts:368

Returns a rendered event template along with its relays.

Returns ​

Promise<{ event: EventTemplate; relays: string[]; }>


renderBehaviorTags() ​

protected renderBehaviorTags(): MaybeAsync<string[][]>

Defined in: core/EventWriter.ts:289

Returns a list of tags that may be attached to any kind.

Returns ​

MaybeAsync<string[][]>


renderContent() ​

renderContent(): MaybeAsync<string>

Defined in: core/EventWriter.ts:323

Returns the content string as defined by the kind.

Returns ​

MaybeAsync<string>


renderDomainTags() ​

protected renderDomainTags(): MaybeAsync<string[][]>

Defined in: core/EventWriter.ts:303

Returns a list of tags related to the kind.

Returns ​

MaybeAsync<string[][]>


renderRoutes() ​

protected renderRoutes(): Promise<RelaySelection[]>

Defined in: core/EventWriter.ts:344

Returns the list of routes this event should be published to. Defaults to the outbox model. Override to implement custom behavior.

Returns ​

Promise<RelaySelection[]>


renderTags() ​

renderTags(): Promise<string[][]>

Defined in: core/EventWriter.ts:310

Returns the complete tag list for publishing.

Returns ​

Promise<string[][]>


renderTemplate() ​

renderTemplate(): Promise<EventTemplate>

Defined in: core/EventWriter.ts:330

Validates and renders an event template.

Returns ​

Promise<EventTemplate>


scenario() ​

scenario(): Promise<RelayScenario>

Defined in: core/EventWriter.ts:352

Returns a router scenario for this event. Publishes to the forced routes (e.g. a NIP-29 room's relay) when set, otherwise to the rendered routes.

Returns ​

Promise<RelayScenario>


setClient() ​

setClient(name, address?): EventWriter<Reader>

Defined in: core/EventWriter.ts:145

Attributes the event to the NIP-89 client that produced it. address is an optional 31990:pubkey:d-tag pointer to the client's handler information event; when given, its author's outbox fills in the tag's relay hint slot.

Parameters ​

name ​

string

address? ​

string

Returns ​

EventWriter<Reader>


setContent() ​

setContent(content): EventWriter<Reader>

Defined in: core/EventWriter.ts:72

Parameters ​

content ​

string

Returns ​

EventWriter<Reader>


setContentWarning() ​

setContentWarning(reason?): EventWriter<Reader>

Defined in: core/EventWriter.ts:128

Parameters ​

reason? ​

string

Returns ​

EventWriter<Reader>


setExpiration() ​

setExpiration(expiration): EventWriter<Reader>

Defined in: core/EventWriter.ts:115

Parameters ​

expiration ​

number

Returns ​

EventWriter<Reader>


setIdentifier() ​

setIdentifier(identifier): EventWriter<Reader>

Defined in: core/EventWriter.ts:165

Parameters ​

identifier ​

string = ...

Returns ​

EventWriter<Reader>


setProtected() ​

setProtected(protect): EventWriter<Reader>

Defined in: core/EventWriter.ts:109

Parameters ​

protect ​

boolean

Returns ​

EventWriter<Reader>


setRoom() ​

setRoom(url, room): EventWriter<Reader>

Defined in: core/EventWriter.ts:78

Parameters ​

url ​

string

room ​

string

Returns ​

EventWriter<Reader>


validate() ​

validate(): void

Defined in: core/EventWriter.ts:248

Validates a domain object, throwing an error if invalid.

Returns ​

void