Common stuff initial
This commit is contained in:
parent
6a4fe7842e
commit
08ca2c620f
@ -1,2 +1,3 @@
|
|||||||
export * from './dataTypes';
|
export * from './dataTypes';
|
||||||
export * from './messageTypes';
|
export * from './messageTypes';
|
||||||
|
export * from './parseMessage';
|
||||||
|
|||||||
40
parseMessage.ts
Normal file
40
parseMessage.ts
Normal 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
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user