Performant, streaming IRC message parser
npm install irc-messageirc-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.
npm install irc-message
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 tags
* prefix - message prefix/source
* command - message command/verb
* params - an array of middle and trailing parameters
Optional options object supports
* parsePrefix - replace the prefix with an object generated by _irc-prefix-parser_. Defaults to false.
* convertTimestamp - if the message has a _time_ tag, convert it into a JavaScript Date object (see _server-time_ spec for reference). Defaults to false.
``js
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)
})
`
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).
`js
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!']
* }
*/
``