Skip to content

Commit 5d88c04

Browse files
committed
Replacing MatrixClient and Room with trimmed down RTCClient and RTCRoom
Signed-off-by: Milton Moura <[email protected]>
1 parent c537a36 commit 5d88c04

File tree

4 files changed

+35
-22
lines changed

4 files changed

+35
-22
lines changed

src/matrixrtc/EncryptionManager.ts

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
import { type MatrixClient } from "../client.ts";
21
import { logger as rootLogger } from "../logger.ts";
32
import { type MatrixEvent } from "../models/event.ts";
4-
import { type Room } from "../models/room.ts";
53
import { type EncryptionConfig } from "./MatrixRTCSession.ts";
64
import { secureRandomBase64Url } from "../randomstring.ts";
7-
import { type EncryptionKeysEventContent } from "./types.ts";
5+
import { type RTCClient, type RTCRoom, type EncryptionKeysEventContent } from "./types.ts";
86
import { decodeBase64, encodeUnpaddedBase64 } from "../base64.ts";
97
import { type MatrixError, safeGetRetryAfterMs } from "../http-api/errors.ts";
108
import { type CallMembership } from "./CallMembership.ts";
@@ -99,8 +97,8 @@ export class EncryptionManager implements IEncryptionManager {
9997
private joinConfig: EncryptionConfig | undefined;
10098

10199
public constructor(
102-
private client: Pick<MatrixClient, "sendEvent" | "getDeviceId" | "getUserId" | "cancelPendingEvent">,
103-
private room: Pick<Room, "roomId">,
100+
private client: RTCClient,
101+
private room: RTCRoom,
104102
private getMemberships: () => CallMembership[],
105103
private onEncryptionKeysChanged: (
106104
keyBin: Uint8Array<ArrayBufferLike>,

src/matrixrtc/MatrixRTCSession.ts

+7-4
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import { logger as rootLogger } from "../logger.ts";
1818
import { TypedEventEmitter } from "../models/typed-event-emitter.ts";
1919
import { EventTimeline } from "../models/event-timeline.ts";
2020
import { type Room } from "../models/room.ts";
21-
import { type MatrixClient } from "../client.ts";
2221
import { EventType } from "../@types/event.ts";
2322
import { CallMembership } from "./CallMembership.ts";
2423
import { RoomStateEvent } from "../models/room-state.ts";
@@ -27,6 +26,7 @@ import { KnownMembership } from "../@types/membership.ts";
2726
import { type MatrixEvent } from "../models/event.ts";
2827
import { LegacyMembershipManager, type IMembershipManager } from "./MembershipManager.ts";
2928
import { EncryptionManager, type IEncryptionManager, type Statistics } from "./EncryptionManager.ts";
29+
import { type RTCClient, type RTCRoom } from "./types.ts";
3030

3131
const logger = rootLogger.getChild("MatrixRTCSession");
3232

@@ -153,7 +153,7 @@ export class MatrixRTCSession extends TypedEventEmitter<MatrixRTCSessionEvent, M
153153
/**
154154
* Returns all the call memberships for a room, oldest first
155155
*/
156-
public static callMembershipsForRoom(room: Room): CallMembership[] {
156+
public static callMembershipsForRoom(room: RTCRoom): CallMembership[] {
157157
const roomState = room.getLiveTimeline().getState(EventTimeline.FORWARDS);
158158
if (!roomState) {
159159
logger.warn("Couldn't get state for room " + room.roomId);
@@ -219,14 +219,17 @@ export class MatrixRTCSession extends TypedEventEmitter<MatrixRTCSessionEvent, M
219219
/**
220220
* Return the MatrixRTC session for the room, whether there are currently active members or not
221221
*/
222-
public static roomSessionForRoom(client: MatrixClient, room: Room): MatrixRTCSession {
222+
public static roomSessionForRoom(
223+
client: RTCClient,
224+
room: Room): MatrixRTCSession
225+
{
223226
const callMemberships = MatrixRTCSession.callMembershipsForRoom(room);
224227

225228
return new MatrixRTCSession(client, room, callMemberships);
226229
}
227230

228231
private constructor(
229-
private readonly client: MatrixClient,
232+
private readonly client: RTCClient,
230233
public readonly room: Room,
231234
public memberships: CallMembership[],
232235
) {

src/matrixrtc/MembershipManager.ts

+3-12
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
import { EventType } from "../@types/event.ts";
22
import { UpdateDelayedEventAction } from "../@types/requests.ts";
3-
import type { MatrixClient } from "../client.ts";
43
import { HTTPError, MatrixError } from "../http-api/errors.ts";
54
import { logger } from "../logger.ts";
65
import { EventTimeline } from "../models/event-timeline.ts";
7-
import { type Room } from "../models/room.ts";
86
import { sleep } from "../utils.ts";
97
import { type CallMembership, DEFAULT_EXPIRE_DURATION, type SessionMembershipData } from "./CallMembership.ts";
108
import { type Focus } from "./focus.ts";
119
import { isLivekitFocusActive } from "./LivekitFocus.ts";
1210
import { type MembershipConfig } from "./MatrixRTCSession.ts";
1311
import { type EmptyObject } from "../@types/common.ts";
12+
import { type RTCClient, type RTCRoom } from "./types.ts";
1413
/**
1514
* This interface defines what a MembershipManager uses and exposes.
1615
* This interface is what we use to write tests and allows to change the actual implementation
@@ -111,16 +110,8 @@ export class LegacyMembershipManager implements IMembershipManager {
111110

112111
public constructor(
113112
private joinConfig: MembershipConfig | undefined,
114-
private room: Pick<Room, "getLiveTimeline" | "roomId" | "getVersion">,
115-
private client: Pick<
116-
MatrixClient,
117-
| "getUserId"
118-
| "getDeviceId"
119-
| "sendStateEvent"
120-
| "_unstable_sendDelayedEvent"
121-
| "_unstable_sendDelayedStateEvent"
122-
| "_unstable_updateDelayedEvent"
123-
>,
113+
private room: RTCRoom,
114+
private client: RTCClient,
124115
private getOldestMembership: () => CallMembership | undefined,
125116
) {}
126117

src/matrixrtc/types.ts

+22-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,28 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1313
See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
16-
import { type IMentions } from "../matrix.ts";
16+
import { type MatrixClient, type IMentions, type Room } from "../matrix.ts";
17+
18+
export type RTCClient = Pick<
19+
MatrixClient,
20+
| "cancelPendingEvent"
21+
| "getUserId"
22+
| "getDeviceId"
23+
| "sendEvent"
24+
| "sendStateEvent"
25+
| "_unstable_sendDelayedEvent"
26+
| "_unstable_sendDelayedStateEvent"
27+
| "_unstable_updateDelayedEvent"
28+
>;
29+
30+
export type RTCRoom = Pick<
31+
Room,
32+
| "getLiveTimeline"
33+
| "getVersion"
34+
| "hasMembershipState"
35+
| "roomId"
36+
>;
37+
1738
export interface EncryptionKeyEntry {
1839
index: number;
1940
key: string;

0 commit comments

Comments
 (0)