blob: af3078c3d149fdf1df41931785a4236fa93377ab [file] [log] [blame]
Charlie6ddaefe2022-11-01 18:36:29 -04001/*
2 * Copyright (C) 2022 Savoir-faire Linux Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Affero General Public License as
6 * published by the Free Software Foundation; either version 3 of the
7 * License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU Affero General Public License for more details.
13 *
14 * You should have received a copy of the GNU Affero General Public
15 * License along with this program. If not, see
16 * <https://www.gnu.org/licenses/>.
17 */
Issam E. Maghni0432cb72022-11-12 06:09:26 +000018import { WebSocketMessageType } from '../enums/websocket-message-type.js';
simonf929a362022-11-18 16:53:45 -050019import {
Misha Krieger-Raynauld20cf1c82022-11-23 20:26:50 -050020 CallAction,
MichelleSS55164202022-11-25 18:36:14 -050021 CallBegin,
idillon3e378fd2022-12-23 11:48:12 -050022 ComposingStatus,
simonf929a362022-11-18 16:53:45 -050023 ConversationMessage,
24 ConversationView,
Misha Krieger-Raynauld20cf1c82022-11-23 20:26:50 -050025 WebRtcIceCandidate,
simonf929a362022-11-18 16:53:45 -050026 WebRtcSdp,
27} from './websocket-interfaces.js';
Charlie6ddaefe2022-11-01 18:36:29 -040028
Issam E. Maghni0432cb72022-11-12 06:09:26 +000029export interface WebSocketMessageTable {
30 [WebSocketMessageType.ConversationMessage]: ConversationMessage;
31 [WebSocketMessageType.ConversationView]: ConversationView;
idillon3e378fd2022-12-23 11:48:12 -050032 [WebSocketMessageType.OnComposingStatusChanged]: ComposingStatus;
33 [WebSocketMessageType.SetIsComposing]: ComposingStatus;
MichelleSS55164202022-11-25 18:36:14 -050034 [WebSocketMessageType.CallBegin]: CallBegin;
Misha Krieger-Raynauld20cf1c82022-11-23 20:26:50 -050035 [WebSocketMessageType.CallAccept]: CallAction;
Misha Krieger-Raynauld20cf1c82022-11-23 20:26:50 -050036 [WebSocketMessageType.CallEnd]: CallAction;
37 [WebSocketMessageType.WebRtcOffer]: WebRtcSdp;
38 [WebSocketMessageType.WebRtcAnswer]: WebRtcSdp;
39 [WebSocketMessageType.WebRtcIceCandidate]: WebRtcIceCandidate;
Issam E. Maghni0432cb72022-11-12 06:09:26 +000040}
41
42export interface WebSocketMessage<T extends WebSocketMessageType> {
43 type: T;
44 data: WebSocketMessageTable[T];
Charlie6ddaefe2022-11-01 18:36:29 -040045}