irc-message v3.0.2
irc-message 
Performant, streaming IRC message parser
irc-message provides an object stream capable of parsing RFC1459-compliant IRC messages, with support for IRCv3 message tags. This also includes server-to-server protocols such as TS6, Spanning Tree, and the UnrealIRCd protocol.
Installation
npm install irc-messageUsage
createStream(options)
Returns an object stream, taking in Buffers/Strings of raw IRC data. Data should not be line-buffered, this stream handles splitting and buffering automatically. and pushing objects containing the following keys.
raw- unparsed IRC message (string)tags- IRCv3 message tagsprefix- message prefix/sourcecommand- message command/verbparams- an array of middle and trailing parameters
Optional options object supports
parsePrefix- replace the prefix with an object generated by irc-prefix-parser. Defaults tofalse.convertTimestamp- if the message has a time tag, convert it into a JavaScriptDateobject (see server-time spec for reference). Defaults tofalse.
var net = require('net')
var ircMsg = require('irc-message')
net.connect(6667, 'irc.freenode.net')
.pipe(ircMsg.createStream())
.on('data', function(message) {
console.log(message)
})parse(data)
You can also access the message parser directly. The parser function expects a string without any CRLF sequences. If the string is malformed, null is returned. Otherwise, an object representing the message is returned (see createStream() for format).
var parse = require('irc-message').parse
console.log(parse(':hello!sir@madam PRIVMSG #test :Hello, world!'))
/* {
* raw: ':hello!sir@madam PRIVMSG #test :Hello, world!',
* tags: {},
* prefix: 'hello!sir@madam',
* command: 'PRIVMSG',
* params: ['#test', 'Hello, world!']
* }
*/