Skip to content

Welshman Docs / @welshman/app / Rooms

Class: Rooms

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

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:222

Parameters

app

IApp

Returns

Rooms

Properties

all

all: Projection<Room[]>

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


app

protected readonly app: IApp

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


byUrl

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

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


forceLoad()

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

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

Parameters

key

string

args

...any[]

Returns

Promise<Maybe<Room>>


index

index: Projection<ItemsByKey<Room>>

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


load()

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

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

Parameters

key

string

args

...any[]

Returns

Promise<Maybe<Room>>


membership

membership: Projection<ItemsByKey<RoomMembership>>

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


one()

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

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

Parameters

key?

string

args?

...any[]

Returns

Readable<Maybe<Room>>

Methods

addMember()

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

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

Parameters

url

string

room

RoomMeta

pubkey

string

Returns

Promise<Command>


createRoom()

createRoom(url, room): Promise<Command>

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

Parameters

url

string

room

RoomMeta

Returns

Promise<Command>


deleteRoom()

deleteRoom(url, room): Promise<Command>

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

Parameters

url

string

room

RoomMeta

Returns

Promise<Command>


editRoom()

editRoom(url, room): Promise<Command>

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

Parameters

url

string

room

RoomMeta

Returns

Promise<Command>


fetch()

fetch(id): Promise<TrustedEvent[]>

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

Parameters

id

string

Returns

Promise<TrustedEvent[]>


forRoom()

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

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

Parameters

url

string

h

string

Returns

Readable<Maybe<Room>>


forUrl()

forUrl(url): Projection<Room[]>

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

Parameters

url

string

Returns

Projection<Room[]>


get()

get(key): undefined | Room

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

Parameters

key

string

Returns

undefined | Room


joinRoom()

joinRoom(url, room): Promise<Command>

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

Parameters

url

string

room

RoomMeta

Returns

Promise<Command>


leaveRoom()

leaveRoom(url, room): Promise<Command>

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

Parameters

url

string

room

RoomMeta

Returns

Promise<Command>


members()

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

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

Parameters

url

string

h

string

Returns

Projection<Set<string>>


membershipStatus()

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

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

Parameters

url

string

h

string

pubkey

undefined | string

Returns

Projection<MembershipStatus>


pendingJoins()

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

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

Parameters

url

string

h?

string

Returns

Projection<TrustedEvent[]>


project()

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

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

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:428

Parameters

url

string

room

RoomMeta

pubkey

string

Returns

Promise<Command>