import type { Badge, ParsedMessage } from './types' import { getBadgesFromMessage } from './badges' export function parseMessage(messageData: string, allBadges: Badge[]): ParsedMessage { const message = JSON.parse(messageData) switch (message.type) { case 'PRIVMSG': { const tags = message.tags const username = message.username const data: ParsedMessage = { type: 'PRIVMSG', data: { message: message.message, username, tags } } const badges = getBadgesFromMessage(data, allBadges) data.data.badges = badges return data } case 'USERNOTICE': { const username = message.tags.login const resub = message.tags['msg-id'] === 'resub' const months = parseInt(message.tags['msg-param-cumulative-months']) return { type: 'USERNOTICE', data: { username, resub, months } } } case 'CLEARMSG': { return { type: 'CLEARMSG', data: { username: message.tags['@login'] } } } // Add more cases for other message types here default: { return { type: 'UNKNOWN', data: { message } } } } }