import { ChatMessage, CurrentQueue, CurrentSong, Join, ListenerJoined, ListenerLeft, ListenerList, QueueSong, 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); case 'QueueSong': return new QueueSong(data.song); case 'CurrentQueue': return new CurrentQueue(data.songs) case 'CurrentSong': return new CurrentSong(data.song); default: console.error('Unknown message type:', data.type); return null; } } catch (error) { console.error('Error parsing WebSocket message:', error); return null; // Handle parsing errors } }