Switch to ES6 imports

This commit is contained in:
Simon Ser 2020-06-14 14:50:59 +02:00
parent 94a4563a45
commit a1582dcc62
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48
3 changed files with 39 additions and 36 deletions

View file

@ -1,3 +1,5 @@
import * as irc from "./irc.js";
var server = { var server = {
name: "server", name: "server",
username: null, username: null,
@ -77,8 +79,8 @@ function createMessageElement(msg) {
case "PRIVMSG": case "PRIVMSG":
var text = msg.params[1]; var text = msg.params[1];
var actionPrefix = "\001ACTION "; var actionPrefix = "\x01ACTION ";
if (text.startsWith(actionPrefix) && text.endsWith("\001")) { if (text.startsWith(actionPrefix) && text.endsWith("\x01")) {
var action = text.slice(actionPrefix.length, -1); var action = text.slice(actionPrefix.length, -1);
line.className += " me-tell"; line.className += " me-tell";
@ -314,11 +316,11 @@ function connect() {
}; };
ws.onmessage = function(event) { ws.onmessage = function(event) {
var msg = parseMessage(event.data); var msg = irc.parseMessage(event.data);
console.log("Received:", msg); console.log("Received:", msg);
switch (msg.command) { switch (msg.command) {
case RPL_WELCOME: case irc.RPL_WELCOME:
if (server.saslPlain && availableCaps["sasl"] === undefined) { if (server.saslPlain && availableCaps["sasl"] === undefined) {
console.error("Server doesn't support SASL PLAIN"); console.error("Server doesn't support SASL PLAIN");
disconnect(); disconnect();
@ -336,7 +338,7 @@ function connect() {
}); });
} }
break; break;
case RPL_TOPIC: case irc.RPL_TOPIC:
var channel = msg.params[1]; var channel = msg.params[1];
var topic = msg.params[2]; var topic = msg.params[2];
@ -346,7 +348,7 @@ function connect() {
} }
buf.topic = topic; buf.topic = topic;
break; break;
case RPL_NAMREPLY: case irc.RPL_NAMREPLY:
var channel = msg.params[2]; var channel = msg.params[2];
var members = msg.params.slice(3); var members = msg.params.slice(3);
@ -356,13 +358,13 @@ function connect() {
} }
members.forEach(function(s) { members.forEach(function(s) {
var member = parseMembership(s); var member = irc.parseMembership(s);
buf.members[member.nick] = member.prefix; buf.members[member.nick] = member.prefix;
}); });
break; break;
case RPL_ENDOFNAMES: case irc.RPL_ENDOFNAMES:
break; break;
case ERR_PASSWDMISMATCH: case irc.ERR_PASSWDMISMATCH:
console.error("Password mismatch"); console.error("Password mismatch");
disconnect(); disconnect();
break; break;
@ -372,23 +374,23 @@ function connect() {
case "AUTHENTICATE": case "AUTHENTICATE":
handleAuthenticate(msg); handleAuthenticate(msg);
break; break;
case RPL_LOGGEDIN: case irc.RPL_LOGGEDIN:
console.log("Logged in"); console.log("Logged in");
break; break;
case RPL_LOGGEDOUT: case irc.RPL_LOGGEDOUT:
console.log("Logged out"); console.log("Logged out");
break; break;
case RPL_SASLSUCCESS: case irc.RPL_SASLSUCCESS:
console.log("SASL authentication success"); console.log("SASL authentication success");
if (!registered) { if (!registered) {
sendMessage({ command: "CAP", params: ["END"] }); sendMessage({ command: "CAP", params: ["END"] });
} }
break; break;
case ERR_NICKLOCKED: case irc.ERR_NICKLOCKED:
case ERR_SASLFAIL: case irc.ERR_SASLFAIL:
case ERR_SASLTOOLONG: case irc.ERR_SASLTOOLONG:
case ERR_SASLABORTED: case irc.ERR_SASLABORTED:
case ERR_SASLALREADY: case irc.ERR_SASLALREADY:
console.error("SASL error:", msg); console.error("SASL error:", msg);
disconnect(); disconnect();
break; break;
@ -473,7 +475,7 @@ function disconnect() {
} }
function sendMessage(msg) { function sendMessage(msg) {
ws.send(formatMessage(msg)); ws.send(irc.formatMessage(msg));
console.log("Sent:", msg); console.log("Sent:", msg);
} }

View file

@ -1,17 +1,17 @@
const RPL_WELCOME = "001"; export const RPL_WELCOME = "001";
const RPL_TOPIC = "332"; export const RPL_TOPIC = "332";
const RPL_NAMREPLY = "353"; export const RPL_NAMREPLY = "353";
const RPL_ENDOFNAMES = "366"; export const RPL_ENDOFNAMES = "366";
const ERR_PASSWDMISMATCH = "464"; export const ERR_PASSWDMISMATCH = "464";
// https://ircv3.net/specs/extensions/sasl-3.1 // https://ircv3.net/specs/extensions/sasl-3.1
const RPL_LOGGEDIN = "900"; export const RPL_LOGGEDIN = "900";
const RPL_LOGGEDOUT = "901"; export const RPL_LOGGEDOUT = "901";
const ERR_NICKLOCKED = "902"; export const ERR_NICKLOCKED = "902";
const RPL_SASLSUCCESS = "903"; export const RPL_SASLSUCCESS = "903";
const ERR_SASLFAIL = "904"; export const ERR_SASLFAIL = "904";
const ERR_SASLTOOLONG = "905"; export const ERR_SASLTOOLONG = "905";
const ERR_SASLABORTED = "906"; export const ERR_SASLABORTED = "906";
const ERR_SASLALREADY = "907"; export const ERR_SASLALREADY = "907";
var tagsEscape = { var tagsEscape = {
";": "\\:", ";": "\\:",
@ -88,7 +88,7 @@ function formatPrefix(prefix) {
return prefix.name + "!" + prefix.user + "@" + prefix.host; return prefix.name + "!" + prefix.user + "@" + prefix.host;
} }
function parseMessage(s) { export function parseMessage(s) {
if (s.endsWith("\r\n")) { if (s.endsWith("\r\n")) {
s = s.slice(0, s.length - 2); s = s.slice(0, s.length - 2);
} }
@ -145,7 +145,7 @@ function parseMessage(s) {
return msg; return msg;
} }
function formatMessage(msg) { export function formatMessage(msg) {
var s = ""; var s = "";
// TODO: format tags // TODO: format tags
if (msg.tags && Object.keys(msg.tags).length > 0) { if (msg.tags && Object.keys(msg.tags).length > 0) {
@ -166,7 +166,7 @@ function formatMessage(msg) {
return s; return s;
} }
function parseMembership(s) { export function parseMembership(s) {
// TODO: use the PREFIX token from RPL_ISUPPORT // TODO: use the PREFIX token from RPL_ISUPPORT
const STD_MEMBERSHIPS = "~&@%+"; const STD_MEMBERSHIPS = "~&@%+";

View file

@ -70,7 +70,8 @@
</form> </form>
</section> </section>
<script src="assets/irc.js"></script> <script type="module">
<script src="assets/client.js"></script> import "./assets/client.js";
</script>
</body> </body>
</html> </html>