.vscode | ||
src | ||
.gitignore | ||
.npmignore | ||
.prettierrc | ||
package-lock.json | ||
package.json | ||
README.md | ||
tsconfig.json |
IRClib
Zero dependencies library for creating anything using the IRC protocol - bots, clients, you name it. It includes a variety of utilities, such as a nick list class that manages mode prefixes for you, NickServ authentication checker and message formatting (colors!).
Getting started
There is an example usage documented in src/examples/connection-test.ts, but basically you have two ways to create an IRC client connection:
- Use the
IRCBot
class. This just takes connection options and it usesIRCSocketConnector
(so it will not work in the browser!) - Use the
IRCConnectionWrapper
class directly. To use this, you need to provide your own connector in addition to the options.
Connection options
The connection options are documented in detail here, but the most important are:
host
- Server host.nick
- Your nickname.port
- Server port, defaults to 6667.ssl
- Use secure connection.channels
- String-list of channels to join on connect.
Connectors
This module provides two connectors: IRCSocketConnector
for Node.js usage (net
and tls
) and IRCWebSocketConnector
for browser usage (WebSockets). You can always write your own if you need something different.
These are not included in the main module! You need to import them from @icynet/irclib/lib/connector/[..]
. This is to prevent browser bundlers from including net
and tls
!
Event handlers
The main classes use a special custom TypedEventEmitter to send events.
Basically, you're mostly just going to need the message
event for IRC.
IRCv3
Currently, this module only supports SASL authentication capability.