Common stuff initial

This commit is contained in:
Torben Pi Jensen 2023-11-05 14:00:33 +01:00
parent 6a4fe7842e
commit 08ca2c620f
2 changed files with 41 additions and 0 deletions

View File

@ -1,2 +1,3 @@
export * from './dataTypes';
export * from './messageTypes';
export * from './parseMessage';

40
parseMessage.ts Normal file
View File

@ -0,0 +1,40 @@
import {
ChatMessage,
Join,
ListenerJoined,
ListenerLeft,
ListenerList, SearchSong, SearchSongResult,
SendChatMessage,
StuenMessage
} from "./messageTypes";
export default function parseMessage(message: string): StuenMessage | null {
try {
const data = JSON.parse(message);
switch (data.type) {
case 'Join':
return new Join(data.name);
case 'ListenerJoined':
return new ListenerJoined(data.name);
case 'ListenerLeft':
return new ListenerLeft(data.name);
case 'ListenerList':
return new ListenerList(data.names);
case 'SendChatMessage':
return new SendChatMessage(data.message);
case 'ChatMessage':
return new ChatMessage(data.name, data.message);
case 'SearchSong':
return new SearchSong(data.query);
case 'SearchSongResult':
return new SearchSongResult(data.result);
default:
console.error('Unknown message type:', data.type);
return null;
}
} catch (error) {
console.error('Error parsing WebSocket message:', error);
return null; // Handle parsing errors
}
}