Thread
Defined in: src/models/thread.ts:71
Extends
Section titled “Extends”ReadReceipt<ThreadEmittedEvents,ThreadEventHandlerMap>
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new Thread(
id,rootEvent,opts):Thread
Defined in: src/models/thread.ts:142
Parameters
Section titled “Parameters”string
rootEvent
Section titled “rootEvent”DigitalWorldEvent | undefined
IThreadOpts
Returns
Section titled “Returns”Thread
Overrides
Section titled “Overrides”ReadReceipt<ThreadEmittedEvents, ThreadEventHandlerMap>.constructor
Properties
Section titled “Properties”client
Section titled “client”
readonlyclient:DigitalWorldClient
Defined in: src/models/thread.ts:124
readonlyid:string
Defined in: src/models/thread.ts:143
initialEventsFetched
Section titled “initialEventsFetched”initialEventsFetched:
boolean=!Thread.hasServerSideSupport
Defined in: src/models/thread.ts:133
Whether or not we need to fetch the initial set of events for the thread. We can only do this if the server has support for it, so if it doesn’t we just pretend that we’ve already fetched them.
replayEvents
Section titled “replayEvents”replayEvents:
DigitalWorldEvent[] |null=[]
Defined in: src/models/thread.ts:140
An array of events to add to the timeline once the thread has been initialised with server suppport.
readonlyroom:Room
Defined in: src/models/thread.ts:123
rootEvent
Section titled “rootEvent”rootEvent:
DigitalWorldEvent|undefined
Defined in: src/models/thread.ts:144
timelineSet
Section titled “timelineSet”
readonlytimelineSet:EventTimelineSet
Defined in: src/models/thread.ts:79
A reference to all the events ID at the bottom of the threads
captureRejections
Section titled “captureRejections”
staticcaptureRejections:boolean
Defined in: node_modules/.pnpm/@types+node@22.20.0/node_modules/@types/node/events.d.ts:425
Value: boolean
Change the default captureRejections option on all new EventEmitter objects.
v13.4.0, v12.16.0
Inherited from
Section titled “Inherited from”ReadReceipt.captureRejections
captureRejectionSymbol
Section titled “captureRejectionSymbol”
readonlystaticcaptureRejectionSymbol: typeofcaptureRejectionSymbol
Defined in: node_modules/.pnpm/@types+node@22.20.0/node_modules/@types/node/events.d.ts:418
Value: Symbol.for('nodejs.rejection')
See how to write a custom rejection handler.
v13.4.0, v12.16.0
Inherited from
Section titled “Inherited from”ReadReceipt.captureRejectionSymbol
defaultMaxListeners
Section titled “defaultMaxListeners”
staticdefaultMaxListeners:number
Defined in: node_modules/.pnpm/@types+node@22.20.0/node_modules/@types/node/events.d.ts:464
By default, a maximum of 10 listeners can be registered for any single
event. This limit can be changed for individual EventEmitter instances
using the emitter.setMaxListeners(n) method. To change the default
for allEventEmitter instances, the events.defaultMaxListeners property
can be used. If this value is not a positive number, a RangeError is thrown.
Take caution when setting the events.defaultMaxListeners because the
change affects all EventEmitter instances, including those created before
the change is made. However, calling emitter.setMaxListeners(n) still has
precedence over events.defaultMaxListeners.
This is not a hard limit. The EventEmitter instance will allow
more listeners to be added but will output a trace warning to stderr indicating
that a “possible EventEmitter memory leak” has been detected. For any single
EventEmitter, the emitter.getMaxListeners() and emitter.setMaxListeners() methods can be used to
temporarily avoid this warning:
import { EventEmitter } from 'node:events';const emitter = new EventEmitter();emitter.setMaxListeners(emitter.getMaxListeners() + 1);emitter.once('event', () => { // do stuff emitter.setMaxListeners(Math.max(emitter.getMaxListeners() - 1, 0));});The --trace-warnings command-line flag can be used to display the
stack trace for such warnings.
The emitted warning can be inspected with process.on('warning') and will
have the additional emitter, type, and count properties, referring to
the event emitter instance, the event’s name and the number of attached
listeners, respectively.
Its name property is set to 'MaxListenersExceededWarning'.
v0.11.2
Inherited from
Section titled “Inherited from”ReadReceipt.defaultMaxListeners
errorMonitor
Section titled “errorMonitor”
readonlystaticerrorMonitor: typeoferrorMonitor
Defined in: node_modules/.pnpm/@types+node@22.20.0/node_modules/@types/node/events.d.ts:411
This symbol shall be used to install a listener for only monitoring 'error' events. Listeners installed using this symbol are called before the regular 'error' listeners are called.
Installing a listener using this symbol does not change the behavior once an 'error' event is emitted. Therefore, the process will still crash if no
regular 'error' listener is installed.
v13.6.0, v12.17.0
Inherited from
Section titled “Inherited from”ReadReceipt.errorMonitor
hasServerSideFwdPaginationSupport
Section titled “hasServerSideFwdPaginationSupport”
statichasServerSideFwdPaginationSupport:FeatureSupport=FeatureSupport.None
Defined in: src/models/thread.ts:74
hasServerSideListSupport
Section titled “hasServerSideListSupport”
statichasServerSideListSupport:FeatureSupport=FeatureSupport.None
Defined in: src/models/thread.ts:73
hasServerSideSupport
Section titled “hasServerSideSupport”
statichasServerSideSupport:FeatureSupport=FeatureSupport.None
Defined in: src/models/thread.ts:72
Accessors
Section titled “Accessors”events
Section titled “events”Get Signature
Section titled “Get Signature”get events():
DigitalWorldEvent[]
Defined in: src/models/thread.ts:754
Returns
Section titled “Returns”hasCurrentUserParticipated
Section titled “hasCurrentUserParticipated”Get Signature
Section titled “Get Signature”get hasCurrentUserParticipated():
boolean
Defined in: src/models/thread.ts:762
Returns
Section titled “Returns”boolean
length
Section titled “length”Get Signature
Section titled “Get Signature”get length():
number
Defined in: src/models/thread.ts:732
The number of messages in the thread Only count rel_type=m.thread as we want to exclude annotations from that number
Returns
Section titled “Returns”number
liveTimeline
Section titled “liveTimeline”Get Signature
Section titled “Get Signature”get liveTimeline():
EventTimeline
Defined in: src/models/thread.ts:766
Returns
Section titled “Returns”replyToEvent
Section titled “replyToEvent”Get Signature
Section titled “Get Signature”get replyToEvent():
DigitalWorldEvent|null
Defined in: src/models/thread.ts:740
A getter for the last event of the thread. This might be a synthesized event, if so, it will not emit any events to listeners.
Returns
Section titled “Returns”DigitalWorldEvent | null
roomId
Section titled “roomId”Get Signature
Section titled “Get Signature”get roomId():
string
Defined in: src/models/thread.ts:723
Returns
Section titled “Returns”string
roomState
Section titled “roomState”Get Signature
Section titled “Get Signature”get roomState():
RoomState
Defined in: src/models/thread.ts:309
Returns
Section titled “Returns”timeline
Section titled “timeline”Get Signature
Section titled “Get Signature”get timeline():
DigitalWorldEvent[]
Defined in: src/models/thread.ts:750
The live event timeline for this thread.
Returns
Section titled “Returns”The live event timeline for this thread.
Overrides
Section titled “Overrides”ReadReceipt.timeline
Methods
Section titled “Methods”[captureRejectionSymbol]()?
Section titled “[captureRejectionSymbol]()?”
optional[captureRejectionSymbol]<K>(error,event, …args):void
Defined in: node_modules/.pnpm/@types+node@22.20.0/node_modules/@types/node/events.d.ts:103
Type Parameters
Section titled “Type Parameters”K
Parameters
Section titled “Parameters”Error
string | symbol
…AnyRest
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”ReadReceipt.[captureRejectionSymbol]
addEvent()
Section titled “addEvent()”addEvent(
event,toStartOfTimeline,emit?):void
Defined in: src/models/thread.ts:363
Add an event to the thread and updates the tail/root references if needed Will fire “Thread.update”
Parameters
Section titled “Parameters”The event to add
toStartOfTimeline
Section titled “toStartOfTimeline”boolean
whether the event is being added to the start (and not the end) of the timeline.
boolean = true
whether to emit the Update event if the thread was updated or not.
Returns
Section titled “Returns”void
addEvents()
Section titled “addEvents()”addEvents(
events,toStartOfTimeline):void
Defined in: src/models/thread.ts:349
Parameters
Section titled “Parameters”events
Section titled “events”toStartOfTimeline
Section titled “toStartOfTimeline”boolean
Returns
Section titled “Returns”void
addListener()
Section titled “addListener()”addListener<
T>(event,listener):this
Defined in: src/models/typed-event-emitter.ts:70
Alias for on.
Type Parameters
Section titled “Type Parameters”T extends EventEmitterEvents | ThreadEmittedEvents
Parameters
Section titled “Parameters”T
listener
Section titled “listener”Listener<ThreadEmittedEvents, ThreadEventHandlerMap, T>
Returns
Section titled “Returns”this
Inherited from
Section titled “Inherited from”ReadReceipt.addListener
addLocalEchoReceipt()
Section titled “addLocalEchoReceipt()”addLocalEchoReceipt(
userId,e,receiptType,unthreaded?):void
Defined in: src/models/read-receipt.ts:383
Add a temporary local-echo receipt to the room to reflect in the client the fact that we’ve sent one.
Parameters
Section titled “Parameters”userId
Section titled “userId”string
The user ID if the receipt sender
The event that is to be acknowledged
receiptType
Section titled “receiptType”The type of receipt
unthreaded?
Section titled “unthreaded?”boolean = false
the receipt is unthreaded
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”ReadReceipt.addLocalEchoReceipt
addReceipt()
Section titled “addReceipt()”addReceipt(
event,synthetic):void
Defined in: src/models/thread.ts:774
Parameters
Section titled “Parameters”synthetic
Section titled “synthetic”boolean
Returns
Section titled “Returns”void
Overrides
Section titled “Overrides”ReadReceipt.addReceipt
addReceiptToStructure()
Section titled “addReceiptToStructure()”addReceiptToStructure(
eventId,receiptType,userId,receipt,synthetic):void
Defined in: src/models/read-receipt.ts:242
Parameters
Section titled “Parameters”eventId
Section titled “eventId”string
receiptType
Section titled “receiptType”userId
Section titled “userId”string
receipt
Section titled “receipt”synthetic
Section titled “synthetic”boolean
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”ReadReceipt.addReceiptToStructure
clearEventMetadata()
Section titled “clearEventMetadata()”clearEventMetadata(
event):void
Defined in: src/models/thread.ts:694
Parameters
Section titled “Parameters”DigitalWorldEvent | null | undefined
Returns
Section titled “Returns”void
emit()
Section titled “emit()”Call Signature
Section titled “Call Signature”emit<
T>(event, …args):boolean
Defined in: src/models/typed-event-emitter.ts:86
Synchronously calls each of the listeners registered for the event named
event, in the order they were registered, passing the supplied arguments
to each.
Type Parameters
Section titled “Type Parameters”T extends ThreadEmittedEvents
Parameters
Section titled “Parameters”T
The name of the event to emit
…Parameters<ThreadEventHandlerMap[T]>
Arguments to pass to the listener
Returns
Section titled “Returns”boolean
true if the event had listeners, false otherwise.
Inherited from
Section titled “Inherited from”ReadReceipt.emit
Call Signature
Section titled “Call Signature”emit<
T>(event, …args):boolean
Defined in: src/models/typed-event-emitter.ts:87
Synchronously calls each of the listeners registered for the event named
event, in the order they were registered, passing the supplied arguments
to each.
Type Parameters
Section titled “Type Parameters”T extends ThreadEmittedEvents
Parameters
Section titled “Parameters”T
The name of the event to emit
…Parameters<ThreadEventHandlerMap[T]>
Arguments to pass to the listener
Returns
Section titled “Returns”boolean
true if the event had listeners, false otherwise.
Inherited from
Section titled “Inherited from”ReadReceipt.emit
emitPromised()
Section titled “emitPromised()”Call Signature
Section titled “Call Signature”emitPromised<
T>(event, …args):Promise<boolean>
Defined in: src/models/typed-event-emitter.ts:98
Similar to emit but calls all listeners within a Promise.all and returns the promise chain
Type Parameters
Section titled “Type Parameters”T extends ThreadEmittedEvents
Parameters
Section titled “Parameters”T
The name of the event to emit
…Parameters<ThreadEventHandlerMap[T]>
Arguments to pass to the listener
Returns
Section titled “Returns”Promise<boolean>
true if the event had listeners, false otherwise.
Inherited from
Section titled “Inherited from”ReadReceipt.emitPromised
Call Signature
Section titled “Call Signature”emitPromised<
T>(event, …args):Promise<boolean>
Defined in: src/models/typed-event-emitter.ts:102
Similar to emit but calls all listeners within a Promise.all and returns the promise chain
Type Parameters
Section titled “Type Parameters”T extends ThreadEmittedEvents
Parameters
Section titled “Parameters”T
The name of the event to emit
…Parameters<ThreadEventHandlerMap[T]>
Arguments to pass to the listener
Returns
Section titled “Returns”Promise<boolean>
true if the event had listeners, false otherwise.
Inherited from
Section titled “Inherited from”ReadReceipt.emitPromised
eventNames()
Section titled “eventNames()”eventNames(): (
string|symbol)[]
Defined in: node_modules/.pnpm/@types+node@22.20.0/node_modules/@types/node/events.d.ts:967
Returns an array listing the events for which the emitter has registered
listeners. The values in the array are strings or Symbols.
import { EventEmitter } from 'node:events';
const myEE = new EventEmitter();myEE.on('foo', () => {});myEE.on('bar', () => {});
const sym = Symbol('symbol');myEE.on(sym, () => {});
console.log(myEE.eventNames());// Prints: [ 'foo', 'bar', Symbol(symbol) ]Returns
Section titled “Returns”(string | symbol)[]
v6.0.0
Inherited from
Section titled “Inherited from”ReadReceipt.eventNames
findEventById()
Section titled “findEventById()”findEventById(
eventId):DigitalWorldEvent|undefined
Defined in: src/models/thread.ts:704
Finds an event by ID in the current thread
Parameters
Section titled “Parameters”eventId
Section titled “eventId”string
Returns
Section titled “Returns”DigitalWorldEvent | undefined
Overrides
Section titled “Overrides”ReadReceipt.findEventById
fixupNotifications()
Section titled “fixupNotifications()”fixupNotifications(
userId):void
Defined in: src/models/read-receipt.ts:365
This issue should also be addressed on synapse’s side and is tracked as part of https://github.com/matrix-org/synapse/issues/14837
Retrieves the read receipt for the logged in user and checks if it matches the last event in the room and whether that event originated from the logged in user. Under those conditions we can consider the context as read. This is useful because we never send read receipts against our own events
Parameters
Section titled “Parameters”userId
Section titled “userId”string
the logged in user
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”ReadReceipt.fixupNotifications
getEventReadUpTo()
Section titled “getEventReadUpTo()”getEventReadUpTo(
userId,ignoreSynthesized?):string|null
Defined in: src/models/thread.ts:787
Get the ID of the event that a given user has read up to within this thread, or null if we have received no read receipt (at all) from them.
Parameters
Section titled “Parameters”userId
Section titled “userId”string
The user ID to get read receipt event ID for
ignoreSynthesized?
Section titled “ignoreSynthesized?”boolean
If true, return only receipts that have been sent by the server, not implicit ones generated by the JS SDK.
Returns
Section titled “Returns”string | null
ID of the latest event that the given user has read, or null.
Overrides
Section titled “Overrides”ReadReceipt.getEventReadUpTo
getLastUnthreadedReceiptFor()
Section titled “getLastUnthreadedReceiptFor()”getLastUnthreadedReceiptFor(
userId):Receipt|undefined
Defined in: src/models/thread.ts:891
Returns the most recent unthreaded receipt for a given user
Parameters
Section titled “Parameters”userId
Section titled “userId”string
the MxID of the User
Returns
Section titled “Returns”Receipt | undefined
an unthreaded Receipt. Can be undefined if receipts have been disabled or a user chooses to use private read receipts (or we have simply not received a receipt from this user yet).
Overrides
Section titled “Overrides”ReadReceipt.getLastUnthreadedReceiptFor
getMaxListeners()
Section titled “getMaxListeners()”getMaxListeners():
number
Defined in: node_modules/.pnpm/@types+node@22.20.0/node_modules/@types/node/events.d.ts:819
Returns the current max listener value for the EventEmitter which is either
set by emitter.setMaxListeners(n) or defaults to EventEmitter.defaultMaxListeners.
Returns
Section titled “Returns”number
v1.0.0
Inherited from
Section titled “Inherited from”ReadReceipt.getMaxListeners
getReadReceiptForUserId()
Section titled “getReadReceiptForUserId()”getReadReceiptForUserId(
userId,ignoreSynthesized?,receiptType?):WrappedReceipt|null
Defined in: src/models/read-receipt.ts:91
Gets the latest receipt for a given user in the room
Parameters
Section titled “Parameters”userId
Section titled “userId”string
The id of the user for which we want the receipt
ignoreSynthesized?
Section titled “ignoreSynthesized?”boolean = false
Whether to ignore synthesized receipts or not
receiptType?
Section titled “receiptType?”ReceiptType = ReceiptType.Read
Optional. The type of the receipt we want to get
Returns
Section titled “Returns”WrappedReceipt | null
the latest receipts of the chosen type for the chosen user
Inherited from
Section titled “Inherited from”ReadReceipt.getReadReceiptForUserId
getReceiptsForEvent()
Section titled “getReceiptsForEvent()”getReceiptsForEvent(
event):CachedReceipt[]
Defined in: src/models/read-receipt.ts:339
Get a list of receipts for the given event.
Parameters
Section titled “Parameters”the event to get receipts for
Returns
Section titled “Returns”A list of receipts with a userId, type and data keys or an empty list.
Inherited from
Section titled “Inherited from”ReadReceipt.getReceiptsForEvent
getUnfilteredTimelineSet()
Section titled “getUnfilteredTimelineSet()”getUnfilteredTimelineSet():
EventTimelineSet
Defined in: src/models/thread.ts:770
Returns
Section titled “Returns”Overrides
Section titled “Overrides”ReadReceipt.getUnfilteredTimelineSet
getUsersReadUpTo()
Section titled “getUsersReadUpTo()”getUsersReadUpTo(
event):string[]
Defined in: src/models/read-receipt.ts:392
Get a list of user IDs who have read up to the given event.
Parameters
Section titled “Parameters”the event to get read receipts for.
Returns
Section titled “Returns”string[]
A list of user IDs.
Inherited from
Section titled “Inherited from”ReadReceipt.getUsersReadUpTo
has(
eventId):boolean
Defined in: src/models/thread.ts:758
Parameters
Section titled “Parameters”eventId
Section titled “eventId”string
Returns
Section titled “Returns”boolean
hasUserReadEvent()
Section titled “hasUserReadEvent()”hasUserReadEvent(
userId,eventId):boolean
Defined in: src/models/thread.ts:862
Determine if the given user has read a particular event.
It is invalid to call this method with an event that is not part of this thread.
This is not a definitive check as it only checks the events that have been loaded client-side at the time of execution.
Parameters
Section titled “Parameters”userId
Section titled “userId”string
The user ID to check the read state of.
eventId
Section titled “eventId”string
The event ID to check if the user read.
Returns
Section titled “Returns”boolean
True if the user has read the event, false otherwise.
Overrides
Section titled “Overrides”ReadReceipt.hasUserReadEvent
lastReply()
Section titled “lastReply()”lastReply(
matches?):DigitalWorldEvent|null
Defined in: src/models/thread.ts:711
Return last reply to the thread, if known.
Parameters
Section titled “Parameters”matches?
Section titled “matches?”(ev) => boolean
Returns
Section titled “Returns”DigitalWorldEvent | null
listenerCount()
Section titled “listenerCount()”listenerCount(
event):number
Defined in: src/models/typed-event-emitter.ts:115
Returns the number of listeners listening to the event named event.
Parameters
Section titled “Parameters”EventEmitterEvents | ThreadEmittedEvents
The name of the event being listened for
Returns
Section titled “Returns”number
Inherited from
Section titled “Inherited from”ReadReceipt.listenerCount
listeners()
Section titled “listeners()”listeners(
event):Function[]
Defined in: src/models/typed-event-emitter.ts:122
Returns a copy of the array of listeners for the event named event.
Parameters
Section titled “Parameters”EventEmitterEvents | ThreadEmittedEvents
Returns
Section titled “Returns”Function[]
Inherited from
Section titled “Inherited from”ReadReceipt.listeners
off<
T>(event,listener):this
Defined in: src/models/typed-event-emitter.ts:129
Alias for removeListener
Type Parameters
Section titled “Type Parameters”T extends EventEmitterEvents | ThreadEmittedEvents
Parameters
Section titled “Parameters”T
listener
Section titled “listener”Listener<ThreadEmittedEvents, ThreadEventHandlerMap, T>
Returns
Section titled “Returns”this
Inherited from
Section titled “Inherited from”ReadReceipt.off
on<
T>(event,listener):this
Defined in: src/models/typed-event-emitter.ts:150
Adds the listener function to the end of the listeners array for the
event named event.
No checks are made to see if the listener has already been added. Multiple calls
passing the same combination of event and listener will result in the listener
being added, and called, multiple times.
By default, event listeners are invoked in the order they are added. The prependListener method can be used as an alternative to add the event listener to the beginning of the listeners array.
Type Parameters
Section titled “Type Parameters”T extends EventEmitterEvents | ThreadEmittedEvents
Parameters
Section titled “Parameters”T
The name of the event.
listener
Section titled “listener”Listener<ThreadEmittedEvents, ThreadEventHandlerMap, T>
The callback function
Returns
Section titled “Returns”this
a reference to the EventEmitter, so that calls can be chained.
Inherited from
Section titled “Inherited from”ReadReceipt.on
once()
Section titled “once()”once<
T>(event,listener):this
Defined in: src/models/typed-event-emitter.ts:169
Adds a one-time listener function for the event named event. The
next time event is triggered, this listener is removed and then invoked.
Returns a reference to the EventEmitter, so that calls can be chained.
By default, event listeners are invoked in the order they are added. The prependOnceListener method can be used as an alternative to add the event listener to the beginning of the listeners array.
Type Parameters
Section titled “Type Parameters”T extends EventEmitterEvents | ThreadEmittedEvents
Parameters
Section titled “Parameters”T
The name of the event.
listener
Section titled “listener”Listener<ThreadEmittedEvents, ThreadEventHandlerMap, T>
The callback function
Returns
Section titled “Returns”this
a reference to the EventEmitter, so that calls can be chained.
Inherited from
Section titled “Inherited from”ReadReceipt.once
prependListener()
Section titled “prependListener()”prependListener<
T>(event,listener):this
Defined in: src/models/typed-event-emitter.ts:186
Adds the listener function to the beginning of the listeners array for the
event named event.
No checks are made to see if the listener has already been added. Multiple calls
passing the same combination of event and listener will result in the listener
being added, and called, multiple times.
Type Parameters
Section titled “Type Parameters”T extends EventEmitterEvents | ThreadEmittedEvents
Parameters
Section titled “Parameters”T
The name of the event.
listener
Section titled “listener”Listener<ThreadEmittedEvents, ThreadEventHandlerMap, T>
The callback function
Returns
Section titled “Returns”this
a reference to the EventEmitter, so that calls can be chained.
Inherited from
Section titled “Inherited from”ReadReceipt.prependListener
prependOnceListener()
Section titled “prependOnceListener()”prependOnceListener<
T>(event,listener):this
Defined in: src/models/typed-event-emitter.ts:202
Adds a one-timelistener function for the event named event to the beginning of the listeners array.
The next time event is triggered, this listener is removed, and then invoked.
Type Parameters
Section titled “Type Parameters”T extends EventEmitterEvents | ThreadEmittedEvents
Parameters
Section titled “Parameters”T
The name of the event.
listener
Section titled “listener”Listener<ThreadEmittedEvents, ThreadEventHandlerMap, T>
The callback function
Returns
Section titled “Returns”this
a reference to the EventEmitter, so that calls can be chained.
Inherited from
Section titled “Inherited from”ReadReceipt.prependOnceListener
processEvent()
Section titled “processEvent()”processEvent(
event):Promise<void>
Defined in: src/models/thread.ts:477
Parameters
Section titled “Parameters”DigitalWorldEvent | null | undefined
Returns
Section titled “Returns”Promise<void>
rawListeners()
Section titled “rawListeners()”rawListeners(
event):Function[]
Defined in: src/models/typed-event-emitter.ts:243
Returns a copy of the array of listeners for the event named eventName,
including any wrappers (such as those created by .once()).
Parameters
Section titled “Parameters”EventEmitterEvents | ThreadEmittedEvents
Returns
Section titled “Returns”Function[]
Inherited from
Section titled “Inherited from”ReadReceipt.rawListeners
removeAllListeners()
Section titled “removeAllListeners()”removeAllListeners(
event?):this
Defined in: src/models/typed-event-emitter.ts:219
Removes all listeners, or those of the specified event.
It is bad practice to remove listeners added elsewhere in the code,
particularly when the EventEmitter instance was created by some other
component or module (e.g. sockets or file streams).
Parameters
Section titled “Parameters”event?
Section titled “event?”EventEmitterEvents | ThreadEmittedEvents
The name of the event. If undefined, all listeners everywhere are removed.
Returns
Section titled “Returns”this
a reference to the EventEmitter, so that calls can be chained.
Inherited from
Section titled “Inherited from”ReadReceipt.removeAllListeners
removeListener()
Section titled “removeListener()”removeListener<
T>(event,listener):this
Defined in: src/models/typed-event-emitter.ts:232
Removes the specified listener from the listener array for the event named event.
Type Parameters
Section titled “Type Parameters”T extends EventEmitterEvents | ThreadEmittedEvents
Parameters
Section titled “Parameters”T
listener
Section titled “listener”Listener<ThreadEmittedEvents, ThreadEventHandlerMap, T>
Returns
Section titled “Returns”this
a reference to the EventEmitter, so that calls can be chained.
Inherited from
Section titled “Inherited from”ReadReceipt.removeListener
resetLiveTimeline()
Section titled “resetLiveTimeline()”resetLiveTimeline(
backPaginationToken?,forwardPaginationToken?):Promise<void>
Defined in: src/models/thread.ts:545
Reset the live timeline of all timelineSets, and start new ones.
This is used when /sync returns a 'limited' timeline. 'Limited' means that there's a gap between the messages /sync returned, and the last known message in our timeline. In such a case, our live timeline isn't live anymore and has to be replaced by a new one. To make sure we can continue paginating our timelines correctly, we have to set new pagination tokens on the old and the new timeline.
Parameters
Section titled “Parameters”backPaginationToken?
Section titled “backPaginationToken?”string | null
token for back-paginating the new timeline
forwardPaginationToken?
Section titled “forwardPaginationToken?”string | null
token for forward-paginating the old live timeline, if absent or null, all timelines are reset, removing old ones (including the previous live timeline which would otherwise be unable to paginate forwards without this token). Removing just the old live timeline whilst preserving previous ones is not supported.
Returns
Section titled “Returns”Promise<void>
setEventMetadata()
Section titled “setEventMetadata()”setEventMetadata(
event):void
Defined in: src/models/thread.ts:687
Parameters
Section titled “Parameters”DigitalWorldEvent | null | undefined
Returns
Section titled “Returns”void
setMaxListeners()
Section titled “setMaxListeners()”setMaxListeners(
n):this
Defined in: node_modules/.pnpm/@types+node@22.20.0/node_modules/@types/node/events.d.ts:813
By default EventEmitters will print a warning if more than 10 listeners are
added for a particular event. This is a useful default that helps finding
memory leaks. The emitter.setMaxListeners() method allows the limit to be
modified for this specific EventEmitter instance. The value can be set to Infinity (or 0) to indicate an unlimited number of listeners.
Returns a reference to the EventEmitter, so that calls can be chained.
Parameters
Section titled “Parameters”number
Returns
Section titled “Returns”this
v0.3.5
Inherited from
Section titled “Inherited from”ReadReceipt.setMaxListeners
setUnread()
Section titled “setUnread()”setUnread(
type,count):void
Defined in: src/models/thread.ts:880
Parameters
Section titled “Parameters”number
Returns
Section titled “Returns”void
Overrides
Section titled “Overrides”ReadReceipt.setUnread
addAbortListener()
Section titled “addAbortListener()”
staticaddAbortListener(signal,resource):Disposable
Defined in: node_modules/.pnpm/@types+node@22.20.0/node_modules/@types/node/events.d.ts:403
Listens once to the abort event on the provided signal.
Listening to the abort event on abort signals is unsafe and may
lead to resource leaks since another third party with the signal can
call e.stopImmediatePropagation(). Unfortunately Node.js cannot change
this since it would violate the web standard. Additionally, the original
API makes it easy to forget to remove listeners.
This API allows safely using AbortSignals in Node.js APIs by solving these
two issues by listening to the event such that stopImmediatePropagation does
not prevent the listener from running.
Returns a disposable so that it may be unsubscribed from more easily.
import { addAbortListener } from 'node:events';
function example(signal) { let disposable; try { signal.addEventListener('abort', (e) => e.stopImmediatePropagation()); disposable = addAbortListener(signal, (e) => { // Do something when signal is aborted. }); } finally { disposable?.[Symbol.dispose](); }}Parameters
Section titled “Parameters”signal
Section titled “signal”AbortSignal
resource
Section titled “resource”(event) => void
Returns
Section titled “Returns”Disposable
Disposable that removes the abort listener.
v20.5.0
Inherited from
Section titled “Inherited from”ReadReceipt.addAbortListener
getEventListeners()
Section titled “getEventListeners()”
staticgetEventListeners(emitter,name):Function[]
Defined in: node_modules/.pnpm/@types+node@22.20.0/node_modules/@types/node/events.d.ts:325
Returns a copy of the array of listeners for the event named eventName.
For EventEmitters this behaves exactly the same as calling .listeners on
the emitter.
For EventTargets this is the only way to get the event listeners for the
event target. This is useful for debugging and diagnostic purposes.
import { getEventListeners, EventEmitter } from 'node:events';
{ const ee = new EventEmitter(); const listener = () => console.log('Events are fun'); ee.on('foo', listener); console.log(getEventListeners(ee, 'foo')); // [ [Function: listener] ]}{ const et = new EventTarget(); const listener = () => console.log('Events are fun'); et.addEventListener('foo', listener); console.log(getEventListeners(et, 'foo')); // [ [Function: listener] ]}Parameters
Section titled “Parameters”emitter
Section titled “emitter”EventEmitter<DefaultEventMap> | EventTarget
string | symbol
Returns
Section titled “Returns”Function[]
v15.2.0, v14.17.0
Inherited from
Section titled “Inherited from”ReadReceipt.getEventListeners
getMaxListeners()
Section titled “getMaxListeners()”
staticgetMaxListeners(emitter):number
Defined in: node_modules/.pnpm/@types+node@22.20.0/node_modules/@types/node/events.d.ts:354
Returns the currently set max amount of listeners.
For EventEmitters this behaves exactly the same as calling .getMaxListeners on
the emitter.
For EventTargets this is the only way to get the max event listeners for the
event target. If the number of event handlers on a single EventTarget exceeds
the max set, the EventTarget will print a warning.
import { getMaxListeners, setMaxListeners, EventEmitter } from 'node:events';
{ const ee = new EventEmitter(); console.log(getMaxListeners(ee)); // 10 setMaxListeners(11, ee); console.log(getMaxListeners(ee)); // 11}{ const et = new EventTarget(); console.log(getMaxListeners(et)); // 10 setMaxListeners(11, et); console.log(getMaxListeners(et)); // 11}Parameters
Section titled “Parameters”emitter
Section titled “emitter”EventEmitter<DefaultEventMap> | EventTarget
Returns
Section titled “Returns”number
v19.9.0
Inherited from
Section titled “Inherited from”ReadReceipt.getMaxListeners
listenerCount()
Section titled “listenerCount()”
staticlistenerCount(emitter,eventName):number
Defined in: node_modules/.pnpm/@types+node@22.20.0/node_modules/@types/node/events.d.ts:297
A class method that returns the number of listeners for the given eventName registered on the given emitter.
import { EventEmitter, listenerCount } from 'node:events';
const myEmitter = new EventEmitter();myEmitter.on('event', () => {});myEmitter.on('event', () => {});console.log(listenerCount(myEmitter, 'event'));// Prints: 2Parameters
Section titled “Parameters”emitter
Section titled “emitter”EventEmitter
The emitter to query
eventName
Section titled “eventName”string | symbol
The event name
Returns
Section titled “Returns”number
v0.9.12
Inherited from
Section titled “Inherited from”ReadReceipt.listenerCount
Call Signature
Section titled “Call Signature”
staticon(emitter,eventName,options?):AsyncIterator<any[]>
Defined in: node_modules/.pnpm/@types+node@22.20.0/node_modules/@types/node/events.d.ts:270
import { on, EventEmitter } from 'node:events';import process from 'node:process';
const ee = new EventEmitter();
// Emit later onprocess.nextTick(() => { ee.emit('foo', 'bar'); ee.emit('foo', 42);});
for await (const event of on(ee, 'foo')) { // The execution of this inner block is synchronous and it // processes one event at a time (even with await). Do not use // if concurrent execution is required. console.log(event); // prints ['bar'] [42]}// Unreachable hereReturns an AsyncIterator that iterates eventName events. It will throw
if the EventEmitter emits 'error'. It removes all listeners when
exiting the loop. The value returned by each iteration is an array
composed of the emitted event arguments.
An AbortSignal can be used to cancel waiting on events:
import { on, EventEmitter } from 'node:events';import process from 'node:process';
const ac = new AbortController();
(async () => { const ee = new EventEmitter();
// Emit later on process.nextTick(() => { ee.emit('foo', 'bar'); ee.emit('foo', 42); });
for await (const event of on(ee, 'foo', { signal: ac.signal })) { // The execution of this inner block is synchronous and it // processes one event at a time (even with await). Do not use // if concurrent execution is required. console.log(event); // prints ['bar'] [42] } // Unreachable here})();
process.nextTick(() => ac.abort());Use the close option to specify an array of event names that will end the iteration:
import { on, EventEmitter } from 'node:events';import process from 'node:process';
const ee = new EventEmitter();
// Emit later onprocess.nextTick(() => { ee.emit('foo', 'bar'); ee.emit('foo', 42); ee.emit('close');});
for await (const event of on(ee, 'foo', { close: ['close'] })) { console.log(event); // prints ['bar'] [42]}// the loop will exit after 'close' is emittedconsole.log('done'); // prints 'done'Parameters
Section titled “Parameters”emitter
Section titled “emitter”EventEmitter
eventName
Section titled “eventName”string | symbol
options?
Section titled “options?”StaticEventEmitterIteratorOptions
Returns
Section titled “Returns”AsyncIterator<any[]>
An AsyncIterator that iterates eventName events emitted by the emitter
v13.6.0, v12.16.0
Inherited from
Section titled “Inherited from”ReadReceipt.on
Call Signature
Section titled “Call Signature”
staticon(emitter,eventName,options?):AsyncIterator<any[]>
Defined in: node_modules/.pnpm/@types+node@22.20.0/node_modules/@types/node/events.d.ts:275
import { on, EventEmitter } from 'node:events';import process from 'node:process';
const ee = new EventEmitter();
// Emit later onprocess.nextTick(() => { ee.emit('foo', 'bar'); ee.emit('foo', 42);});
for await (const event of on(ee, 'foo')) { // The execution of this inner block is synchronous and it // processes one event at a time (even with await). Do not use // if concurrent execution is required. console.log(event); // prints ['bar'] [42]}// Unreachable hereReturns an AsyncIterator that iterates eventName events. It will throw
if the EventEmitter emits 'error'. It removes all listeners when
exiting the loop. The value returned by each iteration is an array
composed of the emitted event arguments.
An AbortSignal can be used to cancel waiting on events:
import { on, EventEmitter } from 'node:events';import process from 'node:process';
const ac = new AbortController();
(async () => { const ee = new EventEmitter();
// Emit later on process.nextTick(() => { ee.emit('foo', 'bar'); ee.emit('foo', 42); });
for await (const event of on(ee, 'foo', { signal: ac.signal })) { // The execution of this inner block is synchronous and it // processes one event at a time (even with await). Do not use // if concurrent execution is required. console.log(event); // prints ['bar'] [42] } // Unreachable here})();
process.nextTick(() => ac.abort());Use the close option to specify an array of event names that will end the iteration:
import { on, EventEmitter } from 'node:events';import process from 'node:process';
const ee = new EventEmitter();
// Emit later onprocess.nextTick(() => { ee.emit('foo', 'bar'); ee.emit('foo', 42); ee.emit('close');});
for await (const event of on(ee, 'foo', { close: ['close'] })) { console.log(event); // prints ['bar'] [42]}// the loop will exit after 'close' is emittedconsole.log('done'); // prints 'done'Parameters
Section titled “Parameters”emitter
Section titled “emitter”EventTarget
eventName
Section titled “eventName”string
options?
Section titled “options?”StaticEventEmitterIteratorOptions
Returns
Section titled “Returns”AsyncIterator<any[]>
An AsyncIterator that iterates eventName events emitted by the emitter
v13.6.0, v12.16.0
Inherited from
Section titled “Inherited from”ReadReceipt.on
once()
Section titled “once()”Call Signature
Section titled “Call Signature”
staticonce(emitter,eventName,options?):Promise<any[]>
Defined in: node_modules/.pnpm/@types+node@22.20.0/node_modules/@types/node/events.d.ts:184
Creates a Promise that is fulfilled when the EventEmitter emits the given
event or that is rejected if the EventEmitter emits 'error' while waiting.
The Promise will resolve with an array of all the arguments emitted to the
given event.
This method is intentionally generic and works with the web platform EventTarget interface, which has no special'error' event
semantics and does not listen to the 'error' event.
import { once, EventEmitter } from 'node:events';import process from 'node:process';
const ee = new EventEmitter();
process.nextTick(() => { ee.emit('myevent', 42);});
const [value] = await once(ee, 'myevent');console.log(value);
const err = new Error('kaboom');process.nextTick(() => { ee.emit('error', err);});
try { await once(ee, 'myevent');} catch (err) { console.error('error happened', err);}The special handling of the 'error' event is only used when events.once() is used to wait for another event. If events.once() is used to wait for the
’error' event itself, then it is treated as any other kind of event without
special handling:
import { EventEmitter, once } from 'node:events';
const ee = new EventEmitter();
once(ee, 'error') .then(([err]) => console.log('ok', err.message)) .catch((err) => console.error('error', err.message));
ee.emit('error', new Error('boom'));
// Prints: ok boomAn AbortSignal can be used to cancel waiting for the event:
import { EventEmitter, once } from 'node:events';
const ee = new EventEmitter();const ac = new AbortController();
async function foo(emitter, event, signal) { try { await once(emitter, event, { signal }); console.log('event emitted!'); } catch (error) { if (error.name === 'AbortError') { console.error('Waiting for the event was canceled!'); } else { console.error('There was an error', error.message); } }}
foo(ee, 'foo', ac.signal);ac.abort(); // Abort waiting for the eventee.emit('foo'); // Prints: Waiting for the event was canceled!Parameters
Section titled “Parameters”emitter
Section titled “emitter”EventEmitter
eventName
Section titled “eventName”string | symbol
options?
Section titled “options?”StaticEventEmitterOptions
Returns
Section titled “Returns”Promise<any[]>
v11.13.0, v10.16.0
Inherited from
Section titled “Inherited from”ReadReceipt.once
Call Signature
Section titled “Call Signature”
staticonce(emitter,eventName,options?):Promise<any[]>
Defined in: node_modules/.pnpm/@types+node@22.20.0/node_modules/@types/node/events.d.ts:189
Creates a Promise that is fulfilled when the EventEmitter emits the given
event or that is rejected if the EventEmitter emits 'error' while waiting.
The Promise will resolve with an array of all the arguments emitted to the
given event.
This method is intentionally generic and works with the web platform EventTarget interface, which has no special'error' event
semantics and does not listen to the 'error' event.
import { once, EventEmitter } from 'node:events';import process from 'node:process';
const ee = new EventEmitter();
process.nextTick(() => { ee.emit('myevent', 42);});
const [value] = await once(ee, 'myevent');console.log(value);
const err = new Error('kaboom');process.nextTick(() => { ee.emit('error', err);});
try { await once(ee, 'myevent');} catch (err) { console.error('error happened', err);}The special handling of the 'error' event is only used when events.once() is used to wait for another event. If events.once() is used to wait for the
’error' event itself, then it is treated as any other kind of event without
special handling:
import { EventEmitter, once } from 'node:events';
const ee = new EventEmitter();
once(ee, 'error') .then(([err]) => console.log('ok', err.message)) .catch((err) => console.error('error', err.message));
ee.emit('error', new Error('boom'));
// Prints: ok boomAn AbortSignal can be used to cancel waiting for the event:
import { EventEmitter, once } from 'node:events';
const ee = new EventEmitter();const ac = new AbortController();
async function foo(emitter, event, signal) { try { await once(emitter, event, { signal }); console.log('event emitted!'); } catch (error) { if (error.name === 'AbortError') { console.error('Waiting for the event was canceled!'); } else { console.error('There was an error', error.message); } }}
foo(ee, 'foo', ac.signal);ac.abort(); // Abort waiting for the eventee.emit('foo'); // Prints: Waiting for the event was canceled!Parameters
Section titled “Parameters”emitter
Section titled “emitter”EventTarget
eventName
Section titled “eventName”string
options?
Section titled “options?”StaticEventEmitterOptions
Returns
Section titled “Returns”Promise<any[]>
v11.13.0, v10.16.0
Inherited from
Section titled “Inherited from”ReadReceipt.once
setMaxListeners()
Section titled “setMaxListeners()”
staticsetMaxListeners(n?, …eventTargets):void
Defined in: node_modules/.pnpm/@types+node@22.20.0/node_modules/@types/node/events.d.ts:369
import { setMaxListeners, EventEmitter } from 'node:events';
const target = new EventTarget();const emitter = new EventEmitter();
setMaxListeners(5, target, emitter);Parameters
Section titled “Parameters”number
A non-negative number. The maximum number of listeners per EventTarget event.
eventTargets
Section titled “eventTargets”…(EventEmitter<DefaultEventMap> | EventTarget)[]
Zero or more {EventTarget} or {EventEmitter} instances. If none are specified, n is set as the default max for all newly created {EventTarget} and {EventEmitter}
objects.
Returns
Section titled “Returns”void
v15.4.0
Inherited from
Section titled “Inherited from”ReadReceipt.setMaxListeners
setServerSideFwdPaginationSupport()
Section titled “setServerSideFwdPaginationSupport()”
staticsetServerSideFwdPaginationSupport(status):void
Defined in: src/models/thread.ts:221
Parameters
Section titled “Parameters”status
Section titled “status”Returns
Section titled “Returns”void
setServerSideListSupport()
Section titled “setServerSideListSupport()”
staticsetServerSideListSupport(status):void
Defined in: src/models/thread.ts:217
Parameters
Section titled “Parameters”status
Section titled “status”Returns
Section titled “Returns”void
setServerSideSupport()
Section titled “setServerSideSupport()”
staticsetServerSideSupport(status):void
Defined in: src/models/thread.ts:207
Parameters
Section titled “Parameters”status
Section titled “status”Returns
Section titled “Returns”void