more tweaks
This commit is contained in:
parent
d32ae78c56
commit
bd82c52fcd
@ -31,7 +31,7 @@ This module provides two connectors: `IRCSocketConnector` for Node.js usage (`ne
|
||||
|
||||
The main classes use a special custom [TypedEventEmitter](https://lunasqu.ee/irclib/classes/TypedEventEmitter.html) to send events.
|
||||
|
||||
- [Connection wrapper events](https://lunasqu.ee/irclib/types/IRCCommunicatorEvents.html)
|
||||
- [Connection wrapper events](https://lunasqu.ee/irclib/types/IRCConnectionEvents.html)
|
||||
- [Nick list events](https://lunasqu.ee/irclib/types/NickListEvents.html)
|
||||
|
||||
Basically, you're mostly just going to need the `message` event for IRC.
|
||||
|
@ -1,12 +1,12 @@
|
||||
import net, { Socket } from 'net';
|
||||
import tls, { TLSSocket } from 'tls';
|
||||
import { ConnectorEvents } from '../types/events';
|
||||
import { IRCConnectorEvents } from '../types/events';
|
||||
import { IIRCConnector } from '../types/impl.interface';
|
||||
import { formatstr } from '../utility/formatstr';
|
||||
import { TypedEventEmitter } from '../utility/typed-event-emitter';
|
||||
|
||||
export class IRCSocketConnector
|
||||
extends TypedEventEmitter<ConnectorEvents>
|
||||
extends TypedEventEmitter<IRCConnectorEvents>
|
||||
implements IIRCConnector
|
||||
{
|
||||
connected = false;
|
||||
|
@ -1,10 +1,10 @@
|
||||
import { ConnectorEvents } from '../types/events';
|
||||
import { IRCConnectorEvents } from '../types/events';
|
||||
import { IIRCConnector } from '../types/impl.interface';
|
||||
import { formatstr } from '../utility/formatstr';
|
||||
import { TypedEventEmitter } from '../utility/typed-event-emitter';
|
||||
|
||||
export class IRCWebSocketConnector
|
||||
extends TypedEventEmitter<ConnectorEvents>
|
||||
extends TypedEventEmitter<IRCConnectorEvents>
|
||||
implements IIRCConnector
|
||||
{
|
||||
connected = false;
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { IRCCommunicatorEvents } from './types/events';
|
||||
import { IRCConnectionEvents } from './types/events';
|
||||
import {
|
||||
IWritableEventEmitter,
|
||||
IIRCConnector,
|
||||
@ -24,7 +24,7 @@ import { parseWho, WhoResponse } from './utility/who-parser';
|
||||
import { parseWhois, WhoisResponse } from './utility/whois-parser';
|
||||
|
||||
export class IRCConnection
|
||||
extends TypedEventEmitter<IRCCommunicatorEvents>
|
||||
extends TypedEventEmitter<IRCConnectionEvents>
|
||||
implements IIRCWrapper
|
||||
{
|
||||
public channels: string[] = [];
|
||||
@ -138,6 +138,7 @@ export class IRCConnection
|
||||
|
||||
private handleServerLine(line: IIRCLine): void {
|
||||
if (this.pumpQueue(line)) {
|
||||
this.emit('line', line, true);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -160,6 +161,8 @@ export class IRCConnection
|
||||
}
|
||||
}
|
||||
|
||||
this.emit('line', line, false);
|
||||
|
||||
switch (line.command.toLowerCase()) {
|
||||
case 'cap':
|
||||
if (
|
||||
@ -495,7 +498,6 @@ export class IRCConnection
|
||||
|
||||
this.connection.on('data', (line: string) => {
|
||||
const parsedLine = parse(line);
|
||||
this.emit('line', parsedLine);
|
||||
this.handleServerLine(parsedLine);
|
||||
});
|
||||
|
||||
|
@ -1,16 +1,16 @@
|
||||
import { IIRCLine } from './irc.interfaces';
|
||||
|
||||
export type ConnectorEvents = {
|
||||
export type IRCConnectorEvents = {
|
||||
error: (error: any) => void;
|
||||
data: (data: string) => void;
|
||||
close: (reason: string) => void;
|
||||
};
|
||||
|
||||
export type IRCCommunicatorEvents = {
|
||||
export type IRCConnectionEvents = {
|
||||
/**
|
||||
* Parsed line from the IRC server.
|
||||
*/
|
||||
line: (line: IIRCLine) => void;
|
||||
line: (line: IIRCLine, processed: boolean) => void;
|
||||
/**
|
||||
* Supported channel user modes from the server (e.g. `ohv: @%+`)
|
||||
*/
|
||||
|
@ -71,6 +71,13 @@ export interface IIRCWrapper extends IWritableEventEmitter {
|
||||
* @param reason Reason for disconnection
|
||||
*/
|
||||
disconnect(reason?: string): Promise<void>;
|
||||
/**
|
||||
* Set a new nickname. A `nick` event will be fired for self.
|
||||
* When setting the new nick fails, the connection will reset it
|
||||
* and emit your previous nickname back in the `nick` event.
|
||||
* @param newNick New nickname
|
||||
*/
|
||||
setNick(newNick: string): void;
|
||||
/**
|
||||
* Asynchronously ping the server.
|
||||
* @returns Ping in milliseconds
|
||||
|
Loading…
Reference in New Issue
Block a user