common/dist/parseMessage.js
Torben Pi Jensen 01b8319aef Added shuffle
2024-02-03 19:18:22 +01:00

67 lines
2.9 KiB
JavaScript

"use strict";
exports.__esModule = true;
var messageTypes_1 = require("./messageTypes");
function parseMessage(message) {
try {
var data = JSON.parse(message);
switch (data.type) {
case 'Join':
return new messageTypes_1.Join(data.name);
case 'ListenerJoined':
return new messageTypes_1.ListenerJoined(data.name);
case 'ListenerLeft':
return new messageTypes_1.ListenerLeft(data.name);
case 'ListenerList':
return new messageTypes_1.ListenerList(data.names);
case 'SendChatMessage':
return new messageTypes_1.SendChatMessage(data.message);
case 'ChatMessage':
return new messageTypes_1.ChatMessage(data.name, data.message);
case 'SearchSong':
return new messageTypes_1.SearchSong(data.query);
case 'SearchSongResult':
return new messageTypes_1.SearchSongResult(data.result);
case 'QueueSong':
return new messageTypes_1.QueueSong(data.song);
case 'CurrentQueue':
return new messageTypes_1.CurrentQueue(data.songs);
case 'CurrentSong':
return new messageTypes_1.CurrentSong(data.song);
case 'UnqueueSong':
return new messageTypes_1.UnqueueSong(data.position, data.all);
case 'ReorderSong':
return new messageTypes_1.ReorderSong(data.positionToMove, data.placePosition);
case 'SkipSong':
return new messageTypes_1.SkipSong();
case 'ToggleSongLike':
return new messageTypes_1.ToggleSongLike();
case 'SongLikes':
return new messageTypes_1.SongLikes(data.listeners);
case 'Playlists':
return new messageTypes_1.Playlists(data.playlists);
case 'GetPlaylist':
return new messageTypes_1.GetPlaylist(data.playlist);
case 'PlaylistSongs':
return new messageTypes_1.PlaylistSongs(data.playlist);
case 'CreatePlaylist':
return new messageTypes_1.CreatePlaylist(data.title);
case 'AddSongToPlaylist':
return new messageTypes_1.AddSongToPlaylist(data.song, data.playlist);
case 'RemoveSongFromPlaylist':
return new messageTypes_1.RemoveSongFromPlaylist(data.song, data.playlist);
case 'ToggleTag':
return new messageTypes_1.ToggleTag(data.song, data.tag);
case 'Shuffle':
return new messageTypes_1.Shuffle();
default:
console.error('Unknown message type:', data.type);
return null;
}
}
catch (error) {
console.error('Error parsing WebSocket message:', error);
return null; // Handle parsing errors
}
}
exports["default"] = parseMessage;