mirror of
https://codeberg.org/emersion/gamja
synced 2025-03-13 07:48:37 +01:00
lib/client: introduce IRCError
This commit is contained in:
parent
30e3ec392f
commit
8c8bd43638
@ -49,6 +49,20 @@ const WHOX_FIELDS = {
|
|||||||
let lastLabel = 0;
|
let lastLabel = 0;
|
||||||
let lastWhoxToken = 0;
|
let lastWhoxToken = 0;
|
||||||
|
|
||||||
|
class IRCError extends Error {
|
||||||
|
constructor(msg) {
|
||||||
|
let text;
|
||||||
|
if (irc.isError(msg.command) && msg) {
|
||||||
|
text = msg.params[msg.params.length - 1];
|
||||||
|
} else {
|
||||||
|
text = `unknown error (${msg.command} ${msg.params.join(" ")})`;
|
||||||
|
}
|
||||||
|
super(text);
|
||||||
|
|
||||||
|
this.msg = msg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export default class Client extends EventTarget {
|
export default class Client extends EventTarget {
|
||||||
static Status = {
|
static Status = {
|
||||||
DISCONNECTED: "disconnected",
|
DISCONNECTED: "disconnected",
|
||||||
@ -412,7 +426,7 @@ export default class Client extends EventTarget {
|
|||||||
case irc.ERR_SASLTOOLONG:
|
case irc.ERR_SASLTOOLONG:
|
||||||
case irc.ERR_SASLABORTED:
|
case irc.ERR_SASLABORTED:
|
||||||
case irc.ERR_SASLALREADY:
|
case irc.ERR_SASLALREADY:
|
||||||
throw msg;
|
throw new IRCError(msg);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.send(initialResp);
|
this.send(initialResp);
|
||||||
@ -528,7 +542,7 @@ export default class Client extends EventTarget {
|
|||||||
case irc.ERR_NOSUCHNICK:
|
case irc.ERR_NOSUCHNICK:
|
||||||
nick = msg.params[1];
|
nick = msg.params[1];
|
||||||
if (this.cm(nick) === targetCM) {
|
if (this.cm(nick) === targetCM) {
|
||||||
throw msg;
|
throw new IRCError(msg);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -784,7 +798,7 @@ export default class Client extends EventTarget {
|
|||||||
break;
|
break;
|
||||||
case "FAIL":
|
case "FAIL":
|
||||||
if (msg.params[0] === cmd) {
|
if (msg.params[0] === cmd) {
|
||||||
throw msg;
|
throw new IRCError(msg);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -946,7 +960,7 @@ export default class Client extends EventTarget {
|
|||||||
};
|
};
|
||||||
case "FAIL":
|
case "FAIL":
|
||||||
if (msg.params[0] === "REGISTER") {
|
if (msg.params[0] === "REGISTER") {
|
||||||
throw msg;
|
throw new IRCError(msg);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -964,7 +978,7 @@ export default class Client extends EventTarget {
|
|||||||
return { message: msg.params[2] };
|
return { message: msg.params[2] };
|
||||||
case "FAIL":
|
case "FAIL":
|
||||||
if (msg.params[0] === "VERIFY") {
|
if (msg.params[0] === "VERIFY") {
|
||||||
throw msg;
|
throw new IRCError(msg);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user