71 lines
3.2 KiB
JavaScript
71 lines
3.2 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: 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 '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 'RemovePlaylist':
|
|
return new messageTypes_1.RemovePlaylist(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 'GetOtherPlaylists':
|
|
return new messageTypes_1.GetOtherPlaylists();
|
|
case 'OthersPlaylists':
|
|
return new messageTypes_1.OthersPlaylists(data.playlists);
|
|
case 'ToggleTag':
|
|
return new messageTypes_1.ToggleTag(data.song, data.tag);
|
|
case 'Shuffle':
|
|
return new messageTypes_1.Shuffle();
|
|
case 'RemoveFromAutoPlay':
|
|
return new messageTypes_1.RemoveFromAutoPlay();
|
|
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;
|