@@ -972,13 +972,21 @@ export class RoomState extends TypedEventEmitter<EmittedEvents, EventHandlerMap>
972
972
* @param msc3946ProcessDynamicPredecessor - if true, look for an
973
973
* m.room.predecessor state event and use it if found (MSC3946).
974
974
* @returns null if this room has no predecessor. Otherwise, returns
975
- * the roomId and last eventId of the predecessor room.
975
+ * the roomId, last eventId and viaServers of the predecessor room.
976
+ *
976
977
* If msc3946ProcessDynamicPredecessor is true, use m.predecessor events
977
978
* as well as m.room.create events to find predecessors.
979
+ *
978
980
* Note: if an m.predecessor event is used, eventId may be undefined
979
981
* since last_known_event_id is optional.
982
+ *
983
+ * Note: viaServers may be undefined, and will definitely be undefined if
984
+ * this predecessor comes from a RoomCreate event (rather than a
985
+ * RoomPredecessor, which has the optional via_servers property).
980
986
*/
981
- public findPredecessor ( msc3946ProcessDynamicPredecessor = false ) : { roomId : string ; eventId ?: string } | null {
987
+ public findPredecessor (
988
+ msc3946ProcessDynamicPredecessor = false ,
989
+ ) : { roomId : string ; eventId ?: string ; viaServers ?: string [ ] } | null {
982
990
// Note: the tests for this function are against Room.findPredecessor,
983
991
// which just calls through to here.
984
992
@@ -988,14 +996,19 @@ export class RoomState extends TypedEventEmitter<EmittedEvents, EventHandlerMap>
988
996
const content = predecessorEvent . getContent < {
989
997
predecessor_room_id : string ;
990
998
last_known_event_id ?: string ;
999
+ via_servers ?: string [ ] ;
991
1000
} > ( ) ;
992
1001
const roomId = content . predecessor_room_id ;
993
1002
let eventId = content . last_known_event_id ;
994
1003
if ( typeof eventId !== "string" ) {
995
1004
eventId = undefined ;
996
1005
}
1006
+ let viaServers = content . via_servers ;
1007
+ if ( ! Array . isArray ( viaServers ) ) {
1008
+ viaServers = undefined ;
1009
+ }
997
1010
if ( typeof roomId === "string" ) {
998
- return { roomId, eventId } ;
1011
+ return { roomId, eventId, viaServers } ;
999
1012
}
1000
1013
}
1001
1014
}
0 commit comments