forked from CringeStudios/gamja
lib/irc: accept tags without value
This commit is contained in:
parent
4257463b46
commit
2d4409e7aa
14
lib/irc.js
14
lib/irc.js
@ -52,19 +52,19 @@ function unescapeTag(s) {
|
|||||||
|
|
||||||
export function parseTags(s) {
|
export function parseTags(s) {
|
||||||
var tags = {};
|
var tags = {};
|
||||||
s.split(";").forEach(function(s) {
|
s.split(";").forEach((s) => {
|
||||||
if (!s) {
|
if (!s) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var parts = s.split("=", 2);
|
var parts = s.split("=", 2);
|
||||||
if (parts.length != 2) {
|
|
||||||
throw new Error("expected an equal sign in tag");
|
|
||||||
}
|
|
||||||
var k = parts[0];
|
var k = parts[0];
|
||||||
var v = unescapeTag(parts[1]);
|
var v = null;
|
||||||
|
if (parts.length == 2) {
|
||||||
|
v = unescapeTag(parts[1]);
|
||||||
if (v.endsWith("\\")) {
|
if (v.endsWith("\\")) {
|
||||||
v = v.slice(0, v.length - 1)
|
v = v.slice(0, v.length - 1)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
tags[k] = v;
|
tags[k] = v;
|
||||||
});
|
});
|
||||||
return tags;
|
return tags;
|
||||||
@ -73,6 +73,10 @@ export function parseTags(s) {
|
|||||||
export function formatTags(tags) {
|
export function formatTags(tags) {
|
||||||
var l = [];
|
var l = [];
|
||||||
for (var k in tags) {
|
for (var k in tags) {
|
||||||
|
if (tags[k] === undefined || tags[k] === null) {
|
||||||
|
l.push(k);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
var v = escapeTag(tags[k]);
|
var v = escapeTag(tags[k]);
|
||||||
l.push(k + "=" + v);
|
l.push(k + "=" + v);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user