diff --git a/ServerMessage.ts b/ServerMessage.ts index 9c99738..7a7d3e0 100644 --- a/ServerMessage.ts +++ b/ServerMessage.ts @@ -5,6 +5,7 @@ export enum MessageType { TYPING = 4, CURRENTLY_TYPING = 5, CONNECTED_USERS = 6, + DESIRED_NAME = 7, } export type ServerMessage = { @@ -175,3 +176,21 @@ export function isConnectedUsersMessage( return true; } + +export type DesiredNameMessage = ServerMessage & { + type: MessageType.DESIRED_NAME; + desiredName: string; +}; +export function isDesiredNameMessage(obj: unknown): obj is DesiredNameMessage { + if (!isServerMessage(obj, MessageType.DESIRED_NAME)) { + return false; + } + if ( + !Object.hasOwnProperty.call(obj, "desiredName") || + typeof (obj as ServerMessage & { desiredName: unknown }).desiredName !== + "string" + ) { + return false; + } + return true; +}