Skip to content

Welshman Docs / @welshman/app / Rooms

Class: Rooms ​

Defined in: plugins/rooms.ts:212

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: plugins/rooms.ts:221

Parameters ​

app ​

IApp

Returns ​

Rooms

Properties ​

all ​

all: Projection<Room[]>

Defined in: plugins/rooms.ts:214


app ​

protected readonly app: IApp

Defined in: plugins/rooms.ts:221


byUrl ​

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

Defined in: plugins/rooms.ts:215


forceLoad ​

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

Defined in: plugins/rooms.ts:219

Parameters ​

key ​

string

args ​

...any[]

Returns ​

Promise<Maybe<Room>>


index ​

index: Projection<ItemsByKey<Room>>

Defined in: plugins/rooms.ts:213


load ​

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

Defined in: plugins/rooms.ts:218

Parameters ​

key ​

string

args ​

...any[]

Returns ​

Promise<Maybe<Room>>


membership ​

membership: Projection<ItemsByKey<RoomMembership>>

Defined in: plugins/rooms.ts:216


one ​

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

Defined in: plugins/rooms.ts:217

Parameters ​

key? ​

string

args ​

...any[]

Returns ​

Readable<Maybe<Room>>

Methods ​

addMember() ​

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

Defined in: plugins/rooms.ts:428

Parameters ​

url ​

string

room ​

RoomMeta

pubkey ​

string

Returns ​

Promise<Command>


createRoom() ​

createRoom(url, room): Promise<Command>

Defined in: plugins/rooms.ts:399

Parameters ​

url ​

string

room ​

RoomMeta

Returns ​

Promise<Command>


deleteEvent() ​

deleteEvent(url, room, id): Promise<Command>

Defined in: plugins/rooms.ts:438

Parameters ​

url ​

string

room ​

RoomMeta

id ​

string

Returns ​

Promise<Command>


deleteRoom() ​

deleteRoom(url, room): Promise<Command>

Defined in: plugins/rooms.ts:402

Parameters ​

url ​

string

room ​

RoomMeta

Returns ​

Promise<Command>


editRoom() ​

editRoom(url, room): Promise<Command>

Defined in: plugins/rooms.ts:405

Parameters ​

url ​

string

room ​

RoomMeta

Returns ​

Promise<Command>


fetch() ​

fetch(id): Promise<TrustedEvent[]>

Defined in: plugins/rooms.ts:342

Parameters ​

id ​

string

Returns ​

Promise<TrustedEvent[]>


forRoom() ​

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

Defined in: plugins/rooms.ts:361

Parameters ​

url ​

string

h ​

string

Returns ​

Readable<Maybe<Room>>


forUrl() ​

forUrl(url): Projection<Room[]>

Defined in: plugins/rooms.ts:363

Parameters ​

url ​

string

Returns ​

Projection<Room[]>


get() ​

get(key): Room | undefined

Defined in: plugins/rooms.ts:356

Parameters ​

key ​

string

Returns ​

Room | undefined


joinRoom() ​

joinRoom(url, room): Promise<Command>

Defined in: plugins/rooms.ts:422

Parameters ​

url ​

string

room ​

RoomMeta

Returns ​

Promise<Command>


leaveRoom() ​

leaveRoom(url, room): Promise<Command>

Defined in: plugins/rooms.ts:425

Parameters ​

url ​

string

room ​

RoomMeta

Returns ​

Promise<Command>


members() ​

members(url, h): Projection<Set<string>>

Defined in: plugins/rooms.ts:366

Parameters ​

url ​

string

h ​

string

Returns ​

Projection<Set<string>>


membershipStatus() ​

membershipStatus(url, h, pubkey?): Projection<MembershipStatus>

Defined in: plugins/rooms.ts:369

Parameters ​

url ​

string

h ​

string

pubkey? ​

string | undefined

Returns ​

Projection<MembershipStatus>


pendingJoins() ​

pendingJoins(url, h?): Projection<TrustedEvent[]>

Defined in: plugins/rooms.ts:379

Parameters ​

url ​

string

h? ​

string

Returns ​

Projection<TrustedEvent[]>


project() ​

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

Defined in: plugins/rooms.ts:358

Type Parameters ​

U ​

U

Parameters ​

key ​

string

read ​

(item) => U

Returns ​

Projection<U>


removeMember() ​

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

Defined in: plugins/rooms.ts:433

Parameters ​

url ​

string

room ​

RoomMeta

pubkey ​

string

Returns ​

Promise<Command>