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