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 } }