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-message
Usage
createStream(options)
Returns an object stream, taking in Buffer
s/String
s 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 JavaScriptDate
object (see server-time spec for reference). Defaults tofalse
.
var net = var ircMsg = net
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 = parse console/* { * raw: ':hello!sir@madam PRIVMSG #test :Hello, world!', * tags: {}, * prefix: 'hello!sir@madam', * command: 'PRIVMSG', * params: ['#test', 'Hello, world!'] * } */