A container for relation events that supports easy access to common ways of aggregating such events. Each instance holds events that of a single relation type and event type. All of the events also relate to the same original event.

The typical way to get one of these containers is via EventTimelineSet#getRelationsForEvent.

Hierarchy (view full)

Constructors

  • Parameters

    • relationType: string

      The type of relation involved, such as "m.annotation", "m.reference", "m.replace", etc.

    • eventType: string

      The relation event's type, such as "m.reaction", etc.

    • client: Room | MatrixClient

      The client which created this instance. For backwards compatibility also accepts a Room.

    • OptionalaltEventTypes: string[]

      alt event types for relation events, for example to support unstable prefixed event types

    Returns Relations

Properties

altEventTypes?: string[]

alt event types for relation events, for example to support unstable prefixed event types

eventType: string

The relation event's type, such as "m.reaction", etc.

relationType: string

The type of relation involved, such as "m.annotation", "m.reference", "m.replace", etc.

Methods

  • 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

    Parameters

    Returns boolean

    true if the event had listeners, false otherwise.

  • Synchronously calls each of the listeners registered for the event namedeventName, in the order they were registered, passing the supplied arguments to each.

    Returns true if the event had listeners, false otherwise.

    import EventEmitter from 'node:events';
    const myEmitter = new EventEmitter();

    // First listener
    myEmitter.on('event', function firstListener() {
    console.log('Helloooo! first listener');
    });
    // Second listener
    myEmitter.on('event', function secondListener(arg1, arg2) {
    console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
    });
    // Third listener
    myEmitter.on('event', function thirdListener(...args) {
    const parameters = args.join(', ');
    console.log(`event with parameters ${parameters} in third listener`);
    });

    console.log(myEmitter.listeners('event'));

    myEmitter.emit('event', 1, 2, 3, 4, 5);

    // Prints:
    // [
    // [Function: firstListener],
    // [Function: secondListener],
    // [Function: thirdListener]
    // ]
    // Helloooo! first listener
    // event with parameters 1, 2 in second listener
    // event with parameters 1, 2, 3, 4, 5 in third listener

    Type Parameters

    Parameters

    Returns boolean

    v0.1.26

  • Get all events in this collection grouped by sender.

    This is currently only supported for the annotation relation type.

    An object with each relation sender as a key and the matching Set of events for that sender as a value.

    Returns null | Record<string, Set<MatrixEvent>>

  • Get all relation events in this collection.

    These are currently in the order of insertion to this collection, which won't match timeline order in the case of scrollback. TODO: Tweak addEvent to insert correctly for scrollback.

    Relation events in insertion order.

    Returns MatrixEvent[]

  • Get all events in this collection grouped by key and sorted by descending event count in each group.

    This is currently only supported for the annotation relation type.

    An array of [key, events] pairs sorted by descending event count. The events are stored in a Set (which preserves insertion order).

    Returns null | [string, Set<MatrixEvent>][]

  • 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

    Parameters

    Returns this

    a reference to the EventEmitter, so that calls can be chained.

  • 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

    Parameters

    Returns this

    a reference to the EventEmitter, so that calls can be chained.

  • 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

    Returns this

    a reference to the EventEmitter, so that calls can be chained.