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
options
RelayScopedDerivedPluginOptions<T>
Returns
RelayScopedDerivedPlugin<T>
Properties
all
all:
Projection<T[]>
Defined in: app/src/plugins/base.ts:264
app
protectedreadonlyapp: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()
abstractfetch(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>