{"version":3,"file":"badges.mjs","names":[],"sources":["../../../src/message/parser/badges.ts"],"sourcesContent":["import { TwitchBadge } from \"../badge\";\nimport { TwitchBadgesList } from \"../badges\";\nimport { ParseError } from \"./parse-error\";\n\nexport function parseSingleBadge(badgeSource: string): TwitchBadge {\n  // src format: <badge>/<version>\n  // src format for predictions: <badge>/<text with maybe an additional \"/\" slash or one of those ⸝>\n\n  let badgeName: string | undefined;\n  let badgeVersion: string | undefined;\n\n  const firstSeparatorIndex = badgeSource.indexOf(\"/\");\n\n  if (firstSeparatorIndex === -1) {\n    badgeName = badgeSource;\n  } else {\n    badgeName = badgeSource.slice(0, firstSeparatorIndex);\n    badgeVersion = badgeSource.slice(firstSeparatorIndex + 1);\n  }\n\n  if (typeof badgeName !== \"string\" || typeof badgeVersion !== \"string\") {\n    throw new ParseError(\n      `Badge source \"${badgeSource}\" did not contain '/' character`,\n    );\n  }\n\n  // This is the predictions badge/badge-info, it should have badgeVersion escaped.\n  if (badgeName === \"predictions\") {\n    badgeVersion = badgeVersion.replaceAll(\"⸝\", \",\");\n  }\n\n  if (badgeName.length <= 0) {\n    throw new ParseError(`Empty badge name on badge \"${badgeSource}\"`);\n  }\n\n  if (badgeVersion.length <= 0) {\n    throw new ParseError(`Empty badge version on badge \"${badgeSource}\"`);\n  }\n\n  return new TwitchBadge(badgeName, badgeVersion);\n}\n\nexport function parseBadges(badgesSource: string): TwitchBadgesList {\n  // src format: <badge>/<version>,<badge>/<version>,<badge>/<version>\n\n  if (badgesSource.length <= 0) {\n    return new TwitchBadgesList();\n  }\n\n  const badges = new TwitchBadgesList();\n  for (const badgeSource of badgesSource.split(\",\")) {\n    badges.push(parseSingleBadge(badgeSource));\n  }\n  return badges;\n}\n"],"mappings":";;;;AAIA,SAAgB,iBAAiB,aAAkC;CAIjE,IAAI;CACJ,IAAI;CAEJ,MAAM,sBAAsB,YAAY,QAAQ,IAAI;AAEpD,KAAI,wBAAwB,GAC1B,aAAY;MACP;AACL,cAAY,YAAY,MAAM,GAAG,oBAAoB;AACrD,iBAAe,YAAY,MAAM,sBAAsB,EAAE;;AAG3D,KAAI,OAAO,cAAc,YAAY,OAAO,iBAAiB,SAC3D,OAAM,IAAI,WACR,iBAAiB,YAAY,iCAC9B;AAIH,KAAI,cAAc,cAChB,gBAAe,aAAa,WAAW,KAAK,IAAI;AAGlD,KAAI,UAAU,UAAU,EACtB,OAAM,IAAI,WAAW,8BAA8B,YAAY,GAAG;AAGpE,KAAI,aAAa,UAAU,EACzB,OAAM,IAAI,WAAW,iCAAiC,YAAY,GAAG;AAGvE,QAAO,IAAI,YAAY,WAAW,aAAa;;AAGjD,SAAgB,YAAY,cAAwC;AAGlE,KAAI,aAAa,UAAU,EACzB,QAAO,IAAI,kBAAkB;CAG/B,MAAM,SAAS,IAAI,kBAAkB;AACrC,MAAK,MAAM,eAAe,aAAa,MAAM,IAAI,CAC/C,QAAO,KAAK,iBAAiB,YAAY,CAAC;AAE5C,QAAO"}