Skip to content

Welshman Docs / @welshman/app / Rooms

Class: Rooms

Defined in: app/src/plugins/rooms.ts:106

NIP-29 relay-based rooms. A ${url}'${h}-keyed collection whose values bundle a room's metadata, members, and admins, derived from the repository so a space can be enumerated without loading each room by id. Also owns room management.

Rooms a kind-9008 delete supersedes are dropped, so a tombstoned room stops appearing without the caller having to filter.

Constructors

Constructor

new Rooms(app): Rooms

Defined in: app/src/plugins/rooms.ts:114

Parameters

app

IApp

Returns

Rooms

Properties

all

all: Projection<Room[]>

Defined in: app/src/plugins/rooms.ts:108


app

protected readonly app: IApp

Defined in: app/src/plugins/rooms.ts:114


byUrl

byUrl: Projection<Map<string, Room[]>>

Defined in: app/src/plugins/rooms.ts:109


forceLoad()

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

Defined in: app/src/plugins/rooms.ts:112

Parameters

key

string

args

...any[]

Returns

Promise<Maybe<Room>>


index

index: Projection<ItemsByKey<Room>>

Defined in: app/src/plugins/rooms.ts:107


load()

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

Defined in: app/src/plugins/rooms.ts:111

Parameters

key

string

args

...any[]

Returns

Promise<Maybe<Room>>


one()

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

Defined in: app/src/plugins/rooms.ts:110

Parameters

key?

string

args?

...any[]

Returns

Readable<Maybe<Room>>

Methods

addMember()

addMember(url, room, pubkey): Promise<Command>

Defined in: app/src/plugins/rooms.ts:243

Parameters

url

string

room

RoomMeta

pubkey

string

Returns

Promise<Command>


createRoom()

createRoom(url, room): Promise<Command>

Defined in: app/src/plugins/rooms.ts:214

Parameters

url

string

room

RoomMeta

Returns

Promise<Command>


deleteRoom()

deleteRoom(url, room): Promise<Command>

Defined in: app/src/plugins/rooms.ts:217

Parameters

url

string

room

RoomMeta

Returns

Promise<Command>


editRoom()

editRoom(url, room): Promise<Command>

Defined in: app/src/plugins/rooms.ts:220

Parameters

url

string

room

RoomMeta

Returns

Promise<Command>


fetch()

fetch(id): Promise<TrustedEvent[]>

Defined in: app/src/plugins/rooms.ts:190

Parameters

id

string

Returns

Promise<TrustedEvent[]>


forRoom()

forRoom(url, h): Readable<Maybe<Room>>

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

Parameters

url

string

h

string

Returns

Readable<Maybe<Room>>


forUrl()

forUrl(url): Projection<Room[]>

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

Parameters

url

string

Returns

Projection<Room[]>


get()

get(key): undefined | Room

Defined in: app/src/plugins/rooms.ts:204

Parameters

key

string

Returns

undefined | Room


joinRoom()

joinRoom(url, room): Promise<Command>

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

Parameters

url

string

room

RoomMeta

Returns

Promise<Command>


leaveRoom()

leaveRoom(url, room): Promise<Command>

Defined in: app/src/plugins/rooms.ts:240

Parameters

url

string

room

RoomMeta

Returns

Promise<Command>


project()

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

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

Type Parameters

U

U

Parameters

key

string

read

(item) => U

Returns

Projection<U>


removeMember()

removeMember(url, room, pubkey): Promise<Command>

Defined in: app/src/plugins/rooms.ts:248

Parameters

url

string

room

RoomMeta

pubkey

string

Returns

Promise<Command>