Skip to content

Welshman Docs / @welshman/domain / EventQuery

Class: abstract EventQuery ​

Defined in: core/EventQuery.ts:25

The read-side counterpart to EventWriter: a chainable builder for the filters that fetch a kind's events, plus the relays to request them from. The kind comes from the factory; each subclass implements renderRoutes to say where its events live, and adds any domain-specific methods (e.g. CommentQuery.forRoot).

Extended by ​

Constructors ​

Constructor ​

new EventQuery(kind, context): EventQuery

Defined in: core/EventQuery.ts:36

Parameters ​

kind ​

number

context ​

KindContext

Returns ​

EventQuery

Properties ​

authors? ​

optional authors: string[]

Defined in: core/EventQuery.ts:27


context ​

readonly context: KindContext

Defined in: core/EventQuery.ts:38


extraRoutes ​

extraRoutes: RelaySelection[] = []

Defined in: core/EventQuery.ts:34


forcedRoutes? ​

optional forcedRoutes: RelaySelection[]

Defined in: core/EventQuery.ts:33


ids? ​

optional ids: string[]

Defined in: core/EventQuery.ts:26


kind ​

readonly kind: number

Defined in: core/EventQuery.ts:37


limit? ​

optional limit: number

Defined in: core/EventQuery.ts:30


optional search: string

Defined in: core/EventQuery.ts:31


since? ​

optional since: number

Defined in: core/EventQuery.ts:28


tagValues ​

tagValues: Map<string, string[]>

Defined in: core/EventQuery.ts:32


until? ​

optional until: number

Defined in: core/EventQuery.ts:29

Methods ​

addAuthors() ​

addAuthors(authors): EventQuery

Defined in: core/EventQuery.ts:71

Parameters ​

authors ​

string[]

Returns ​

EventQuery


addIds() ​

addIds(ids): EventQuery

Defined in: core/EventQuery.ts:47

Parameters ​

ids ​

string[]

Returns ​

EventQuery


addRoutes() ​

addRoutes(routes): EventQuery

Defined in: core/EventQuery.ts:204

Adds routes alongside the rendered ones.

Parameters ​

routes ​

RelaySelection[]

Returns ​

EventQuery


addTag() ​

addTag(key, values): EventQuery

Defined in: core/EventQuery.ts:95

Parameters ​

key ​

string

values ​

string[]

Returns ​

EventQuery


authorRoutes() ​

protected authorRoutes(weight): RelaySelection[]

Defined in: core/EventQuery.ts:258

Returns the outboxes of the authors being queried.

Parameters ​

weight ​

number = 1

Returns ​

RelaySelection[]


clearAuthors() ​

clearAuthors(): EventQuery

Defined in: core/EventQuery.ts:83

Returns ​

EventQuery


clearIds() ​

clearIds(): EventQuery

Defined in: core/EventQuery.ts:59

Returns ​

EventQuery


clearLimit() ​

clearLimit(): EventQuery

Defined in: core/EventQuery.ts:159

Returns ​

EventQuery


clearRoom() ​

clearRoom(): EventQuery

Defined in: core/EventQuery.ts:184

Returns ​

EventQuery


clearRoutes() ​

clearRoutes(): EventQuery

Defined in: core/EventQuery.ts:210

Returns ​

EventQuery


clearSearch() ​

clearSearch(): EventQuery

Defined in: core/EventQuery.ts:171

Returns ​

EventQuery


clearSince() ​

clearSince(): EventQuery

Defined in: core/EventQuery.ts:135

Returns ​

EventQuery


clearTag() ​

clearTag(key): EventQuery

Defined in: core/EventQuery.ts:117

Parameters ​

key ​

string

Returns ​

EventQuery


clearTags() ​

clearTags(): EventQuery

Defined in: core/EventQuery.ts:123

Returns ​

EventQuery


clearUntil() ​

clearUntil(): EventQuery

Defined in: core/EventQuery.ts:147

Returns ​

EventQuery


mentionRoutes() ​

protected mentionRoutes(weight): RelaySelection[]

Defined in: core/EventQuery.ts:266

Returns the inboxes of the pubkeys this query filters on by p tag — where events addressed to them are delivered.

Parameters ​

weight ​

number = 0.5

Returns ​

RelaySelection[]


relays() ​

relays(): Promise<string[]>

Defined in: core/EventQuery.ts:290

Shortcut for getting relays from the router scenario.

Returns ​

Promise<string[]>


removeAuthors() ​

removeAuthors(authors): EventQuery

Defined in: core/EventQuery.ts:77

Parameters ​

authors ​

string[]

Returns ​

EventQuery


removeIds() ​

removeIds(ids): EventQuery

Defined in: core/EventQuery.ts:53

Parameters ​

ids ​

string[]

Returns ​

EventQuery


removeTag() ​

removeTag(key, values): EventQuery

Defined in: core/EventQuery.ts:106

Parameters ​

key ​

string

values ​

string[]

Returns ​

EventQuery


render() ​

render(): Promise<{ filters: Filter[]; relays: string[]; }>

Defined in: core/EventQuery.ts:297

Returns rendered filters along with the relays to request them from.

Returns ​

Promise<{ filters: Filter[]; relays: string[]; }>


renderBaseFilter() ​

protected renderBaseFilter(): MaybeAsync<Filter>

Defined in: core/EventQuery.ts:220

Returns the filter fields that may be set on any kind.

Returns ​

MaybeAsync<Filter>


renderDomainFilters() ​

protected renderDomainFilters(): MaybeAsync<Filter[]>

Defined in: core/EventQuery.ts:241

Returns one filter per kind-specific variant. A relay ANDs a filter's fields together, so alternative references go in separate filters.

Returns ​

MaybeAsync<Filter[]>


renderFilters() ​

renderFilters(): Promise<Filter[]>

Defined in: core/EventQuery.ts:248

Returns the complete filter list for requesting.

Returns ​

Promise<Filter[]>


renderRoutes() ​

abstract protected renderRoutes(): MaybeAsync<RelaySelection[]>

Defined in: core/EventQuery.ts:274

Returns the list of routes this query should be sent to. Every kind implements this itself; there is no default.

Returns ​

MaybeAsync<RelaySelection[]>


scenario() ​

scenario(): Promise<RelayScenario>

Defined in: core/EventQuery.ts:281

Returns a router scenario for this query. Requests the routes given to setRoutes when set, otherwise the rendered ones; either way addRoutes contributes on top.

Returns ​

Promise<RelayScenario>


setAuthors() ​

setAuthors(authors): EventQuery

Defined in: core/EventQuery.ts:65

Parameters ​

authors ​

string[]

Returns ​

EventQuery


setIds() ​

setIds(ids): EventQuery

Defined in: core/EventQuery.ts:41

Parameters ​

ids ​

string[]

Returns ​

EventQuery


setLimit() ​

setLimit(limit): EventQuery

Defined in: core/EventQuery.ts:153

Parameters ​

limit ​

number

Returns ​

EventQuery


setRoom() ​

setRoom(url, room): EventQuery

Defined in: core/EventQuery.ts:178

Parameters ​

url ​

string

room ​

string

Returns ​

EventQuery


setRoutes() ​

setRoutes(routes): EventQuery

Defined in: core/EventQuery.ts:195

Replaces the rendered routes. These are routes rather than urls, so setRoutes([userInbox()]) asks the user's read relays without resolving them first.

Parameters ​

routes ​

RelaySelection[]

Returns ​

EventQuery


setSearch() ​

setSearch(search): EventQuery

Defined in: core/EventQuery.ts:165

Parameters ​

search ​

string

Returns ​

EventQuery


setSince() ​

setSince(since): EventQuery

Defined in: core/EventQuery.ts:129

Parameters ​

since ​

number

Returns ​

EventQuery


setTag() ​

setTag(key, values): EventQuery

Defined in: core/EventQuery.ts:89

Parameters ​

key ​

string

values ​

string[]

Returns ​

EventQuery


setUntil() ​

setUntil(until): EventQuery

Defined in: core/EventQuery.ts:141

Parameters ​

until ​

number

Returns ​

EventQuery