Skip to content

Welshman Docs / @welshman/app / RelayScopedDerivedPlugin

Class: abstract RelayScopedDerivedPlugin<T>

Defined in: app/src/plugins/base.ts:262

A DerivedPlugin for relay-dependent data: each item is keyed by getKey(item, url) once per relay it was seen on (via the tracker), so the same addressable coordinate on two relays stays two distinct entries. Use it for collections that only make sense relative to a relay — NIP-29 rooms (${url}'${room}), relay roles (${url}|${d}), per-relay replaceables (${url}). Subclasses implement fetch (loading from the relevant relay).

Extended by

Type Parameters

T

T

Constructors

Constructor

new RelayScopedDerivedPlugin<T>(app, options): RelayScopedDerivedPlugin<T>

Defined in: app/src/plugins/base.ts:271

Parameters

app

IApp

options

RelayScopedDerivedPluginOptions<T>

Returns

RelayScopedDerivedPlugin<T>

Properties

all

all: Projection<T[]>

Defined in: app/src/plugins/base.ts:264


app

protected readonly app: IApp

Defined in: app/src/plugins/base.ts:272


forceLoad()

forceLoad: (key, ...args) => Promise<Maybe<T>>

Defined in: app/src/plugins/base.ts:267

Parameters

key

string

args

...any[]

Returns

Promise<Maybe<T>>


index

index: Projection<ItemsByKey<T>>

Defined in: app/src/plugins/base.ts:263


load()

load: (key, ...args) => Promise<Maybe<T>>

Defined in: app/src/plugins/base.ts:266

Parameters

key

string

args

...any[]

Returns

Promise<Maybe<T>>


one()

one: (key?, ...args) => Readable<Maybe<T>>

Defined in: app/src/plugins/base.ts:265

Parameters

key?

string

args?

...any[]

Returns

Readable<Maybe<T>>

Methods

fetch()

abstract fetch(key, ...args): Promise<unknown>

Defined in: app/src/plugins/base.ts:269

Parameters

key

string

args

...any[]

Returns

Promise<unknown>


get()

get(key): undefined | T

Defined in: app/src/plugins/base.ts:295

Parameters

key

string

Returns

undefined | T


project()

project<U>(key, read): Projection<U>

Defined in: app/src/plugins/base.ts:297

Type Parameters

U

U

Parameters

key

string

read

(item) => U

Returns

Projection<U>