irctokens
Version:
RFC1459 and IRCv3 protocol tokeniser
33 lines • 917 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Hostmask = void 0;
exports.hostmask = hostmask;
class Hostmask {
#source;
nickname;
username;
hostname;
constructor({ source, nickname, username, hostname }) {
this.#source = source;
this.nickname = nickname;
this.username = username;
this.hostname = hostname;
}
toString() {
return this.#source;
}
eq(other) {
if (other instanceof Hostmask)
return this.toString() === other.toString();
else
return false;
}
}
exports.Hostmask = Hostmask;
function hostmask(source) {
let username, nickname, hostname;
[username, hostname] = source.split(/@(.*)/);
[nickname, username] = username.split(/!(.*)/);
return new Hostmask({ source, nickname, username, hostname });
}
//# sourceMappingURL=hostmask.js.map