Skip to content

Welshman Docs / @welshman/domain / EventWriter

Class: abstract EventWriter<Reader>

Defined in: core/EventWriter.ts:36

Extended by

Type Parameters

Reader

Reader extends BaseEventReader

Constructors

Constructor

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

Defined in: core/EventWriter.ts:50

Parameters

kind

number

context

KindContext

reader?

Reader

Returns

EventWriter<Reader>

Properties

content

content: string = ""

Defined in: core/EventWriter.ts:37


context

readonly context: KindContext

Defined in: core/EventWriter.ts:52


expirationTag?

optional expirationTag: string[]

Defined in: core/EventWriter.ts:40


extraTags

extraTags: string[][] = []

Defined in: core/EventWriter.ts:42


forcedRelays?

optional forcedRelays: string[]

Defined in: core/EventWriter.ts:43


identifierTag?

optional identifierTag: string[]

Defined in: core/EventWriter.ts:41


kind

readonly kind: number

Defined in: core/EventWriter.ts:51


pendingResolves

pendingResolves: Promise<unknown>[] = []

Defined in: core/EventWriter.ts:44


protectTag?

optional protectTag: string[]

Defined in: core/EventWriter.ts:39


reader?

readonly optional reader: Reader

Defined in: core/EventWriter.ts:53


requiresRelays

readonly requiresRelays: boolean = false

Defined in: core/EventWriter.ts:48


roomTag?

optional roomTag: string[]

Defined in: core/EventWriter.ts:38

Methods

addEmoji()

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

Defined in: core/EventWriter.ts:187

Parameters

shortcode

string

url

string

address?

string

Returns

EventWriter<Reader>


addMention()

addMention(pubkey): EventWriter<Reader>

Defined in: core/EventWriter.ts:147

Parameters

pubkey

string

Returns

EventWriter<Reader>


addQuote()

addQuote(event): EventWriter<Reader>

Defined in: core/EventWriter.ts:159

Parameters

event

TrustedEvent

Returns

EventWriter<Reader>


addTags()

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

Defined in: core/EventWriter.ts:129

Parameters

tags

...string[][]

Returns

EventWriter<Reader>


addZapSplit()

addZapSplit(pubkey, split): EventWriter<Reader>

Defined in: core/EventWriter.ts:171

Parameters

pubkey

string

split

number = 1

Returns

EventWriter<Reader>


clearExpiration()

clearExpiration(): EventWriter<Reader>

Defined in: core/EventWriter.ts:111

Returns

EventWriter<Reader>


clearForcedRelays()

clearForcedRelays(): EventWriter<Reader>

Defined in: core/EventWriter.ts:93

Returns

EventWriter<Reader>


clearIdentifier()

clearIdentifier(): EventWriter<Reader>

Defined in: core/EventWriter.ts:123

Returns

EventWriter<Reader>


clearRoom()

clearRoom(): EventWriter<Reader>

Defined in: core/EventWriter.ts:80

Returns

EventWriter<Reader>


dropTags()

dropTags(pred): EventWriter<Reader>

Defined in: core/EventWriter.ts:141

Parameters

pred

(tag) => boolean

Returns

EventWriter<Reader>


forceRelays()

forceRelays(...urls): EventWriter<Reader>

Defined in: core/EventWriter.ts:87

Parameters

urls

...string[]

Returns

EventWriter<Reader>


hint()

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

Defined in: core/EventWriter.ts:234

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:135

Parameters

pred

(tag) => boolean

Returns

EventWriter<Reader>


relays()

relays(): Promise<string[]>

Defined in: core/EventWriter.ts:306

Shortcut for getting relays from the router scenario.

Returns

Promise<string[]>


removeEmoji()

removeEmoji(shortcode): EventWriter<Reader>

Defined in: core/EventWriter.ts:193

Parameters

shortcode

string

Returns

EventWriter<Reader>


removeZapSplit()

removeZapSplit(pubkey): EventWriter<Reader>

Defined in: core/EventWriter.ts:183

Parameters

pubkey

string

Returns

EventWriter<Reader>


render()

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

Defined in: core/EventWriter.ts:313

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:241

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

Returns

MaybeAsync<string[][]>


renderContent()

renderContent(): MaybeAsync<string>

Defined in: core/EventWriter.ts:268

Returns the content string as defined by the kind.

Returns

MaybeAsync<string>


renderDomainTags()

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

Defined in: core/EventWriter.ts:248

Returns a list of tags related to the kind.

Returns

MaybeAsync<string[][]>


renderRoutes()

protected renderRoutes(): Promise<RelaySelection[]>

Defined in: core/EventWriter.ts:289

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:255

Returns the complete tag list for publishing.

Returns

Promise<string[][]>


renderTemplate()

renderTemplate(): Promise<EventTemplate>

Defined in: core/EventWriter.ts:275

Validates and renders an event template.

Returns

Promise<EventTemplate>


scenario()

scenario(): Promise<RelayScenario>

Defined in: core/EventWriter.ts:297

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

Returns

Promise<RelayScenario>


setContent()

setContent(content): EventWriter<Reader>

Defined in: core/EventWriter.ts:67

Parameters

content

string

Returns

EventWriter<Reader>


setExpiration()

setExpiration(expiration): EventWriter<Reader>

Defined in: core/EventWriter.ts:105

Parameters

expiration

number

Returns

EventWriter<Reader>


setIdentifier()

setIdentifier(identifier): EventWriter<Reader>

Defined in: core/EventWriter.ts:117

Parameters

identifier

string = ...

Returns

EventWriter<Reader>


setProtected()

setProtected(protect): EventWriter<Reader>

Defined in: core/EventWriter.ts:99

Parameters

protect

boolean

Returns

EventWriter<Reader>


setRoom()

setRoom(url, room): EventWriter<Reader>

Defined in: core/EventWriter.ts:73

Parameters

url

string

room

string

Returns

EventWriter<Reader>


validate()

validate(): void

Defined in: core/EventWriter.ts:200

Validates a domain object, throwing an error if invalid.

Returns

void