Skip to content

Welshman Docs / @welshman/app / DerivedPlugin

Class: abstract DerivedPlugin<T>

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

Base class for a reactive, keyed collection of data derived from nostr events. The repository is the single source of truth — the collection is a live view over app.itemsByKey, never a duplicated map. Subclasses implement fetch (how to load an item by key from the network) and pass the filters/decoder via super.

index (map) and all (values) are Projections — subscribe via .$, snapshot via .get(). Per-key access is one(key), a plain on-demand store.

Extended by

Type Parameters

T

T

Constructors

Constructor

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

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

Parameters

app

IApp

options

DerivedPluginOptions<T>

Returns

DerivedPlugin<T>

Properties

all

all: Projection<T[]>

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


app

protected readonly app: IApp

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


forceLoad()

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

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

Parameters

key

string

args

...any[]

Returns

Promise<Maybe<T>>


index

index: Projection<ItemsByKey<T>>

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


load()

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

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

Parameters

key

string

args

...any[]

Returns

Promise<Maybe<T>>


one()

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

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

Parameters

key?

string

args?

...any[]

Returns

Readable<Maybe<T>>

Methods

fetch()

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

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

Parameters

key

string

args

...any[]

Returns

Promise<unknown>


get()

get(key): undefined | T

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

Parameters

key

string

Returns

undefined | T


project()

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

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

Type Parameters

U

U

Parameters

key

string

read

(item) => U

Returns

Projection<U>