From 2d4409e7aa636a1a82e87d049596dc26768ebbf8 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Tue, 9 Mar 2021 17:31:12 +0100 Subject: [PATCH] lib/irc: accept tags without value --- lib/irc.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/lib/irc.js b/lib/irc.js index 0d90a8f..7c730db 100644 --- a/lib/irc.js +++ b/lib/irc.js @@ -52,18 +52,18 @@ function unescapeTag(s) { export function parseTags(s) { var tags = {}; - s.split(";").forEach(function(s) { + s.split(";").forEach((s) => { if (!s) { return; } var parts = s.split("=", 2); - if (parts.length != 2) { - throw new Error("expected an equal sign in tag"); - } var k = parts[0]; - var v = unescapeTag(parts[1]); - if (v.endsWith("\\")) { - v = v.slice(0, v.length - 1) + var v = null; + if (parts.length == 2) { + v = unescapeTag(parts[1]); + if (v.endsWith("\\")) { + v = v.slice(0, v.length - 1) + } } tags[k] = v; }); @@ -73,6 +73,10 @@ export function parseTags(s) { export function formatTags(tags) { var l = []; for (var k in tags) { + if (tags[k] === undefined || tags[k] === null) { + l.push(k); + continue; + } var v = escapeTag(tags[k]); l.push(k + "=" + v); }