about summary refs log tree commit diff
path: root/assets/src/network/channel/messages/messages.ts
diff options
context:
space:
mode:
authorMelonai <einebeere@gmail.com>2021-07-14 19:36:29 +0200
committerMelonai <einebeere@gmail.com>2021-07-14 19:36:29 +0200
commit251cba56d9103c9ac38f9b98b69ee953ce23111e (patch)
treeebe7f48b99fd4d754084ebe416e6bbbc9f71092d /assets/src/network/channel/messages/messages.ts
parentc3b05a72b7185112ece6e42c99e9a828c8298f04 (diff)
downloadrook-251cba56d9103c9ac38f9b98b69ee953ce23111e.tar.zst
rook-251cba56d9103c9ac38f9b98b69ee953ce23111e.zip
Started better typing for message handler
Diffstat (limited to 'assets/src/network/channel/messages/messages.ts')
-rw-r--r--assets/src/network/channel/messages/messages.ts21
1 files changed, 19 insertions, 2 deletions
diff --git a/assets/src/network/channel/messages/messages.ts b/assets/src/network/channel/messages/messages.ts
index 3f2253d..67f70ac 100644
--- a/assets/src/network/channel/messages/messages.ts
+++ b/assets/src/network/channel/messages/messages.ts
@@ -1,5 +1,12 @@
 export type AnyMessage = ShareMessage | RequestMessage;
 
+export type EventName = AnyMessage["event_name"];
+export type MessageForEvent<EN> = Extract<AnyMessage, { event_name: EN }>;
+
+export type TokenizedMessage = {
+    token: string;
+} & AnyMessage;
+
 // Messages for the sharer
 
 export type ShareMessage =
@@ -9,20 +16,24 @@ export type ShareMessage =
     | RequestIceCandidateMessage;
 
 export type NewRequestMessage = {
+    event_name: "new_request";
     token: string;
 };
 
 export type RequestCancelledMessage = {
+    event_name: "request_cancelled";
     token: string;
 };
 
 export type ShareAcceptedMessage = {
+    event_name: "share_accepted";
     token: string;
     sdp: string;
     type: RTCSdpType;
 };
 
 export type RequestIceCandidateMessage = {
+    event_name: "request_ice_candidate";
     token: string;
     candidate: RTCIceCandidateInit;
 };
@@ -35,15 +46,21 @@ export type RequestMessage =
     | ShareCancelledMessage
     | ShareIceCandidateMessage;
 
-export type RequestAcknowledgedMessage = {};
+export type RequestAcknowledgedMessage = {
+    event_name: "request_acknowledged";
+};
 
 export type RequestAcceptedMessage = {
+    event_name: "request_accepted";
     sdp: string;
     type: RTCSdpType;
 };
 
-export type ShareCancelledMessage = {};
+export type ShareCancelledMessage = {
+    event_name: "share_cancelled";
+};
 
 export type ShareIceCandidateMessage = {
+    event_name: "share_ice_candidate";
     candidate: RTCIceCandidateInit;
 };