Skip to content

Welshman Docs / @welshman/domain / ArticleWriter

Class: ArticleWriter ​

Defined in: kinds/Article.ts:35

Extends ​

Constructors ​

Constructor ​

new ArticleWriter(kind, context, reader?): ArticleWriter

Defined in: core/EventWriter.ts:53

Parameters ​

kind ​

number

context ​

KindContext

reader? ​

ArticleReader

Returns ​

ArticleWriter

Inherited from ​

EventWriter.constructor

Properties ​

clientTag? ​

optional clientTag: string[]

Defined in: core/EventWriter.ts:43

Inherited from ​

EventWriter.clientTag


content ​

content: string = ""

Defined in: core/EventWriter.ts:38

Inherited from ​

EventWriter.content


contentWarningTag? ​

optional contentWarningTag: string[]

Defined in: core/EventWriter.ts:42

Inherited from ​

EventWriter.contentWarningTag


context ​

readonly context: KindContext

Defined in: core/EventWriter.ts:55

Inherited from ​

EventWriter.context


expirationTag? ​

optional expirationTag: string[]

Defined in: core/EventWriter.ts:41

Inherited from ​

EventWriter.expirationTag


extraTags ​

extraTags: string[][] = []

Defined in: core/EventWriter.ts:45

Inherited from ​

EventWriter.extraTags


forcedRoutes? ​

optional forcedRoutes: RelaySelection[]

Defined in: core/EventWriter.ts:46

Inherited from ​

EventWriter.forcedRoutes


identifierTag? ​

optional identifierTag: string[]

Defined in: core/EventWriter.ts:44

Inherited from ​

EventWriter.identifierTag


kind ​

readonly kind: number

Defined in: core/EventWriter.ts:54

Inherited from ​

EventWriter.kind


pendingResolves ​

pendingResolves: Promise<unknown>[] = []

Defined in: core/EventWriter.ts:47

Inherited from ​

EventWriter.pendingResolves


protectTag? ​

optional protectTag: string[]

Defined in: core/EventWriter.ts:40

Inherited from ​

EventWriter.protectTag


reader? ​

readonly optional reader: ArticleReader

Defined in: core/EventWriter.ts:56

Inherited from ​

EventWriter.reader


requiresRelays ​

readonly requiresRelays: boolean = false

Defined in: core/EventWriter.ts:51

Inherited from ​

EventWriter.requiresRelays


roomTag? ​

optional roomTag: string[]

Defined in: core/EventWriter.ts:39

Inherited from ​

EventWriter.roomTag

Methods ​

addEmoji() ​

addEmoji(shortcode, url, address?): ArticleWriter

Defined in: core/EventWriter.ts:235

Parameters ​

shortcode ​

string

url ​

string

address? ​

string

Returns ​

ArticleWriter

Inherited from ​

EventWriter.addEmoji


addMention() ​

addMention(pubkey): ArticleWriter

Defined in: core/EventWriter.ts:195

Parameters ​

pubkey ​

string

Returns ​

ArticleWriter

Inherited from ​

EventWriter.addMention


addQuote() ​

addQuote(event): ArticleWriter

Defined in: core/EventWriter.ts:207

Parameters ​

event ​

TrustedEvent

Returns ​

ArticleWriter

Inherited from ​

EventWriter.addQuote


addTags() ​

addTags(...tags): ArticleWriter

Defined in: core/EventWriter.ts:177

Parameters ​

tags ​

...string[][]

Returns ​

ArticleWriter

Inherited from ​

EventWriter.addTags


addZapSplit() ​

addZapSplit(pubkey, split): ArticleWriter

Defined in: core/EventWriter.ts:219

Parameters ​

pubkey ​

string

split ​

number = 1

Returns ​

ArticleWriter

Inherited from ​

EventWriter.addZapSplit


clearClient() ​

clearClient(): ArticleWriter

Defined in: core/EventWriter.ts:159

Returns ​

ArticleWriter

Inherited from ​

EventWriter.clearClient


clearContentWarning() ​

clearContentWarning(): ArticleWriter

Defined in: core/EventWriter.ts:134

Returns ​

ArticleWriter

Inherited from ​

EventWriter.clearContentWarning


clearExpiration() ​

clearExpiration(): ArticleWriter

Defined in: core/EventWriter.ts:121

Returns ​

ArticleWriter

Inherited from ​

EventWriter.clearExpiration


clearForcedRoutes() ​

clearForcedRoutes(): ArticleWriter

Defined in: core/EventWriter.ts:103

Returns ​

ArticleWriter

Inherited from ​

EventWriter.clearForcedRoutes


clearIdentifier() ​

clearIdentifier(): ArticleWriter

Defined in: core/EventWriter.ts:171

Returns ​

ArticleWriter

Inherited from ​

EventWriter.clearIdentifier


clearRoom() ​

clearRoom(): ArticleWriter

Defined in: core/EventWriter.ts:85

Returns ​

ArticleWriter

Inherited from ​

EventWriter.clearRoom


dropTags() ​

dropTags(pred): ArticleWriter

Defined in: core/EventWriter.ts:189

Parameters ​

pred ​

(tag) => boolean

Returns ​

ArticleWriter

Inherited from ​

EventWriter.dropTags


forceRoutes() ​

forceRoutes(...routes): ArticleWriter

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 ​

ArticleWriter

Inherited from ​

EventWriter.forceRoutes


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>

Inherited from ​

EventWriter.hint


keepTags() ​

keepTags(pred): ArticleWriter

Defined in: core/EventWriter.ts:183

Parameters ​

pred ​

(tag) => boolean

Returns ​

ArticleWriter

Inherited from ​

EventWriter.keepTags


relays() ​

relays(): Promise<string[]>

Defined in: core/EventWriter.ts:361

Shortcut for getting relays from the router scenario.

Returns ​

Promise<string[]>

Inherited from ​

EventWriter.relays


removeEmoji() ​

removeEmoji(shortcode): ArticleWriter

Defined in: core/EventWriter.ts:241

Parameters ​

shortcode ​

string

Returns ​

ArticleWriter

Inherited from ​

EventWriter.removeEmoji


removeZapSplit() ​

removeZapSplit(pubkey): ArticleWriter

Defined in: core/EventWriter.ts:231

Parameters ​

pubkey ​

string

Returns ​

ArticleWriter

Inherited from ​

EventWriter.removeZapSplit


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[]; }>

Inherited from ​

EventWriter.render


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[][]>

Inherited from ​

EventWriter.renderBehaviorTags


renderContent() ​

renderContent(): MaybeAsync<string>

Defined in: core/EventWriter.ts:323

Returns the content string as defined by the kind.

Returns ​

MaybeAsync<string>

Inherited from ​

EventWriter.renderContent


renderDomainTags() ​

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

Defined in: core/EventWriter.ts:303

Returns a list of tags related to the kind.

Returns ​

MaybeAsync<string[][]>

Inherited from ​

EventWriter.renderDomainTags


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[]>

Inherited from ​

EventWriter.renderRoutes


renderTags() ​

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

Defined in: core/EventWriter.ts:310

Returns the complete tag list for publishing.

Returns ​

Promise<string[][]>

Inherited from ​

EventWriter.renderTags


renderTemplate() ​

renderTemplate(): Promise<EventTemplate>

Defined in: core/EventWriter.ts:330

Validates and renders an event template.

Returns ​

Promise<EventTemplate>

Inherited from ​

EventWriter.renderTemplate


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>

Inherited from ​

EventWriter.scenario


setClient() ​

setClient(name, address?): ArticleWriter

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 ​

ArticleWriter

Inherited from ​

EventWriter.setClient


setContent() ​

setContent(content): ArticleWriter

Defined in: core/EventWriter.ts:72

Parameters ​

content ​

string

Returns ​

ArticleWriter

Inherited from ​

EventWriter.setContent


setContentWarning() ​

setContentWarning(reason?): ArticleWriter

Defined in: core/EventWriter.ts:128

Parameters ​

reason? ​

string

Returns ​

ArticleWriter

Inherited from ​

EventWriter.setContentWarning


setExpiration() ​

setExpiration(expiration): ArticleWriter

Defined in: core/EventWriter.ts:115

Parameters ​

expiration ​

number

Returns ​

ArticleWriter

Inherited from ​

EventWriter.setExpiration


setIdentifier() ​

setIdentifier(identifier): ArticleWriter

Defined in: core/EventWriter.ts:165

Parameters ​

identifier ​

string = ...

Returns ​

ArticleWriter

Inherited from ​

EventWriter.setIdentifier


setImage() ​

setImage(image): ArticleWriter

Defined in: kinds/Article.ts:44

Parameters ​

image ​

string

Returns ​

ArticleWriter


setProtected() ​

setProtected(protect): ArticleWriter

Defined in: core/EventWriter.ts:109

Parameters ​

protect ​

boolean

Returns ​

ArticleWriter

Inherited from ​

EventWriter.setProtected


setPublishedAt() ​

setPublishedAt(publishedAt): ArticleWriter

Defined in: kinds/Article.ts:48

Parameters ​

publishedAt ​

number

Returns ​

ArticleWriter


setRoom() ​

setRoom(url, room): ArticleWriter

Defined in: core/EventWriter.ts:78

Parameters ​

url ​

string

room ​

string

Returns ​

ArticleWriter

Inherited from ​

EventWriter.setRoom


setSummary() ​

setSummary(summary): ArticleWriter

Defined in: kinds/Article.ts:40

Parameters ​

summary ​

string

Returns ​

ArticleWriter


setTitle() ​

setTitle(title): ArticleWriter

Defined in: kinds/Article.ts:36

Parameters ​

title ​

string

Returns ​

ArticleWriter


setTopics() ​

setTopics(topics): ArticleWriter

Defined in: kinds/Article.ts:52

Parameters ​

topics ​

string[]

Returns ​

ArticleWriter


validate() ​

validate(): void

Defined in: core/EventWriter.ts:248

Validates a domain object, throwing an error if invalid.

Returns ​

void

Inherited from ​

EventWriter.validate