Skip to content

@mastondzn/dank-twitch-irc / ChatClient

Class: ChatClient

Defined in: src/client/client.ts:33

Extends

Constructors

Constructor

new ChatClient(configuration?): ChatClient

Defined in: src/client/client.ts:50

Parameters

configuration?

ClientConfiguration

Returns

ChatClient

Overrides

BaseClient.constructor

Properties

configuration

readonly configuration: ExpandedClientConfiguration

Defined in: src/client/base-client.ts:36

Inherited from

BaseClient.configuration


connectionMixins

readonly connectionMixins: ConnectionMixin[] = []

Defined in: src/client/client.ts:45


connectionPool?

optional connectionPool?: ConnectionPool

Defined in: src/client/client.ts:44


connections

readonly connections: SingleConnection[] = []

Defined in: src/client/client.ts:47


roomStateTracker

readonly roomStateTracker: RoomStateTracker

Defined in: src/client/client.ts:43


state

state: "UNCONNECTED" | "CONNECTING" | "CONNECTED" | "READY" | "CLOSED" = "UNCONNECTED"

Defined in: src/client/base-client.ts:40

Inherited from

BaseClient.state


userStateTracker

readonly userStateTracker: UserStateTracker

Defined in: src/client/client.ts:42


prefixed

static prefixed: string | boolean

Defined in: node_modules/.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.d.ts:9

Inherited from

BaseClient.prefixed

Accessors

closed

Get Signature

get closed(): boolean

Defined in: src/client/base-client.ts:32

Returns

boolean

Inherited from

BaseClient.closed


connected

Get Signature

get connected(): boolean

Defined in: src/client/base-client.ts:24

Returns

boolean

Inherited from

BaseClient.connected


connecting

Get Signature

get connecting(): boolean

Defined in: src/client/base-client.ts:20

Returns

boolean

Inherited from

BaseClient.connecting


joinedChannels

Get Signature

get joinedChannels(): Set<string>

Defined in: src/client/client.ts:38

Returns

Set<string>

Overrides

BaseClient.joinedChannels


ready

Get Signature

get ready(): boolean

Defined in: src/client/base-client.ts:28

Returns

boolean

Inherited from

BaseClient.ready


unconnected

Get Signature

get unconnected(): boolean

Defined in: src/client/base-client.ts:16

Returns

boolean

Inherited from

BaseClient.unconnected


wantedChannels

Get Signature

get wantedChannels(): Set<string>

Defined in: src/client/client.ts:34

Returns

Set<string>

Overrides

BaseClient.wantedChannels

Methods

addListener()

addListener<T>(event, fn, context?): this

Defined in: node_modules/.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.d.ts:45

Type Parameters

T

T extends string & Record<never, never> | "CLEARCHAT" | "CLEARMSG" | "GLOBALUSERSTATE" | "HOSTTARGET" | "NOTICE" | "PRIVMSG" | "ROOMSTATE" | "USERNOTICE" | "USERSTATE" | "WHISPER" | "JOIN" | "PART" | "RECONNECT" | "PING" | "PONG" | "CAP" | keyof SpecificClientEvents

Parameters

event

T

fn

(...args) => void

context?

any

Returns

this

Inherited from

BaseClient.addListener


advanceState()

advanceState(newState): boolean

Defined in: src/client/base-client.ts:84

Parameters

newState

"UNCONNECTED" | "CONNECTING" | "CONNECTED" | "READY" | "CLOSED"

Returns

boolean

Inherited from

BaseClient.advanceState


close()

close(): void

Defined in: src/client/client.ts:85

Returns

void


collectChatMessages()

collectChatMessages(options?): AsyncGenerator<PrivmsgMessage, void, void>

Defined in: src/client/client.ts:426

Parameters

options?

the options object

filter?

(message) => boolean

only chat messages for which this function returns true will be yielded

limit?

number

the generator will end after yielding this many messages

stopOn?

(message) => boolean

the generator will end after yielding a message for which this predicate returns true

timeout?

number

the generator will end after this many milliseconds

Returns

AsyncGenerator<PrivmsgMessage, void, void>

An async generator yielding matching messages


collectMessages()

collectMessages<TMessage>(options?): AsyncGenerator<TMessage, void, void>

Defined in: src/client/client.ts:346

Type Parameters

TMessage

TMessage extends IRCMessage = IRCMessage

Parameters

options?

the options object

filter?

(message) => message is TMessage

only messages for which this function returns true will be yielded. This can be used with type guards to create typed async generators, e.g. for only chat messages (PrivmsgMessage).

limit?

number

the generator will end after yielding this many messages

stopOn?

(message) => boolean

the generator will end after yielding a message for which this predicate returns true

timeout?

number

the generator will end after this many milliseconds

Returns

AsyncGenerator<TMessage, void, void>

An async generator yielding matching messages


connect()

connect(): Promise<void>

Defined in: src/client/client.ts:78

Returns

Promise<void>


destroy()

destroy(error?): void

Defined in: src/client/client.ts:90

Parameters

error?

Error

Returns

void


emit()

emit<T>(event, ...args): boolean

Defined in: node_modules/.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.d.ts:32

Calls each of the listeners registered for a given event.

Type Parameters

T

T extends string & Record<never, never> | "CLEARCHAT" | "CLEARMSG" | "GLOBALUSERSTATE" | "HOSTTARGET" | "NOTICE" | "PRIVMSG" | "ROOMSTATE" | "USERNOTICE" | "USERSTATE" | "WHISPER" | "JOIN" | "PART" | "RECONNECT" | "PING" | "PONG" | "CAP" | keyof SpecificClientEvents

Parameters

event

T

args

...ArgumentMap<ClientEvents>[Extract<T, string & Record<never, never> | "CLEARCHAT" | "CLEARMSG" | "GLOBALUSERSTATE" | "HOSTTARGET" | "NOTICE" | "PRIVMSG" | "ROOMSTATE" | "USERNOTICE" | "USERSTATE" | "WHISPER" | "JOIN" | "PART" | "RECONNECT" | "PING" | "PONG" | "CAP" | keyof SpecificClientEvents>]

Returns

boolean

Inherited from

BaseClient.emit


emitClosed()

emitClosed(error?): void

Defined in: src/client/base-client.ts:78

Parameters

error?

Error

Returns

void

Inherited from

BaseClient.emitClosed


emitConnected()

emitConnected(): void

Defined in: src/client/base-client.ts:66

Returns

void

Inherited from

BaseClient.emitConnected


emitConnecting()

emitConnecting(): void

Defined in: src/client/base-client.ts:60

Returns

void

Inherited from

BaseClient.emitConnecting


emitError()

emitError(error, emitEvenIfClosed?): void

Defined in: src/client/base-client.ts:47

Parameters

error

Error

emitEvenIfClosed?

boolean = false

Returns

void

Inherited from

BaseClient.emitError


emitMessage()

emitMessage(message): void

Defined in: src/client/base-client.ts:55

Parameters

message

IRCMessage

Returns

void

Inherited from

BaseClient.emitMessage


emitReady()

emitReady(): void

Defined in: src/client/base-client.ts:72

Returns

void

Inherited from

BaseClient.emitReady


eventNames()

eventNames(): (string & Record<never, never> | "CLEARCHAT" | "CLEARMSG" | "GLOBALUSERSTATE" | "HOSTTARGET" | "NOTICE" | "PRIVMSG" | "ROOMSTATE" | "USERNOTICE" | "USERSTATE" | "WHISPER" | "JOIN" | "PART" | "RECONNECT" | "PING" | "PONG" | "CAP" | keyof SpecificClientEvents)[]

Defined in: node_modules/.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.d.ts:15

Return an array listing the events for which the emitter has registered listeners.

Returns

(string & Record<never, never> | "CLEARCHAT" | "CLEARMSG" | "GLOBALUSERSTATE" | "HOSTTARGET" | "NOTICE" | "PRIVMSG" | "ROOMSTATE" | "USERNOTICE" | "USERSTATE" | "WHISPER" | "JOIN" | "PART" | "RECONNECT" | "PING" | "PONG" | "CAP" | keyof SpecificClientEvents)[]

Inherited from

BaseClient.eventNames


join()

join(channelName): Promise<void>

Defined in: src/client/client.ts:111

Parameters

channelName

string

Returns

Promise<void>


joinAll()

joinAll(channelNames): Promise<Record<string, Error | undefined>>

Defined in: src/client/client.ts:148

Parameters

channelNames

string[]

Returns

Promise<Record<string, Error | undefined>>


listenerCount()

listenerCount(event): number

Defined in: node_modules/.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.d.ts:27

Return the number of listeners listening to a given event.

Parameters

event

string & Record<never, never> | "CLEARCHAT" | "CLEARMSG" | "GLOBALUSERSTATE" | "HOSTTARGET" | "NOTICE" | "PRIVMSG" | "ROOMSTATE" | "USERNOTICE" | "USERSTATE" | "WHISPER" | "JOIN" | "PART" | "RECONNECT" | "PING" | "PONG" | "CAP" | keyof SpecificClientEvents

Returns

number

Inherited from

BaseClient.listenerCount


listeners()

listeners<T>(event): (...args) => void[]

Defined in: node_modules/.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.d.ts:20

Return the listeners registered for a given event.

Type Parameters

T

T extends string & Record<never, never> | "CLEARCHAT" | "CLEARMSG" | "GLOBALUSERSTATE" | "HOSTTARGET" | "NOTICE" | "PRIVMSG" | "ROOMSTATE" | "USERNOTICE" | "USERSTATE" | "WHISPER" | "JOIN" | "PART" | "RECONNECT" | "PING" | "PONG" | "CAP" | keyof SpecificClientEvents

Parameters

event

T

Returns

(...args) => void[]

Inherited from

BaseClient.listeners


me()

me(channelName, message): Promise<void>

Defined in: src/client/client.ts:230

Parameters

channelName

string

message

string

Returns

Promise<void>


newConnection()

newConnection(): SingleConnection

Defined in: src/client/client.ts:265

Returns

SingleConnection


off()

off<T>(event, fn?, context?, once?): this

Defined in: node_modules/.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.d.ts:69

Type Parameters

T

T extends string & Record<never, never> | "CLEARCHAT" | "CLEARMSG" | "GLOBALUSERSTATE" | "HOSTTARGET" | "NOTICE" | "PRIVMSG" | "ROOMSTATE" | "USERNOTICE" | "USERSTATE" | "WHISPER" | "JOIN" | "PART" | "RECONNECT" | "PING" | "PONG" | "CAP" | keyof SpecificClientEvents

Parameters

event

T

fn?

(...args) => void

context?

any

once?

boolean

Returns

this

Inherited from

BaseClient.off


on()

on<T>(event, fn, context?): this

Defined in: node_modules/.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.d.ts:40

Add a listener for a given event.

Type Parameters

T

T extends string & Record<never, never> | "CLEARCHAT" | "CLEARMSG" | "GLOBALUSERSTATE" | "HOSTTARGET" | "NOTICE" | "PRIVMSG" | "ROOMSTATE" | "USERNOTICE" | "USERSTATE" | "WHISPER" | "JOIN" | "PART" | "RECONNECT" | "PING" | "PONG" | "CAP" | keyof SpecificClientEvents

Parameters

event

T

fn

(...args) => void

context?

any

Returns

this

Inherited from

BaseClient.on


once()

once<T>(event, fn, context?): this

Defined in: node_modules/.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.d.ts:54

Add a one-time listener for a given event.

Type Parameters

T

T extends string & Record<never, never> | "CLEARCHAT" | "CLEARMSG" | "GLOBALUSERSTATE" | "HOSTTARGET" | "NOTICE" | "PRIVMSG" | "ROOMSTATE" | "USERNOTICE" | "USERSTATE" | "WHISPER" | "JOIN" | "PART" | "RECONNECT" | "PING" | "PONG" | "CAP" | keyof SpecificClientEvents

Parameters

event

T

fn

(...args) => void

context?

any

Returns

this

Inherited from

BaseClient.once


part()

part(channelName): Promise<void>

Defined in: src/client/client.ts:133

Parameters

channelName

string

Returns

Promise<void>


ping()

ping(): Promise<void>

Defined in: src/client/client.ts:261

Returns

Promise<void>


privmsg()

privmsg(channelName, message): Promise<void>

Defined in: src/client/client.ts:214

Parameters

channelName

string

message

string

Returns

Promise<void>


removeAllListeners()

removeAllListeners(event?): this

Defined in: node_modules/.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.d.ts:79

Remove all listeners, or those of the specified event.

Parameters

event?

string & Record<never, never> | "CLEARCHAT" | "CLEARMSG" | "GLOBALUSERSTATE" | "HOSTTARGET" | "NOTICE" | "PRIVMSG" | "ROOMSTATE" | "USERNOTICE" | "USERSTATE" | "WHISPER" | "JOIN" | "PART" | "RECONNECT" | "PING" | "PONG" | "CAP" | keyof SpecificClientEvents

Returns

this

Inherited from

BaseClient.removeAllListeners


removeListener()

removeListener<T>(event, fn?, context?, once?): this

Defined in: node_modules/.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.d.ts:63

Remove the listeners of a given event.

Type Parameters

T

T extends string & Record<never, never> | "CLEARCHAT" | "CLEARMSG" | "GLOBALUSERSTATE" | "HOSTTARGET" | "NOTICE" | "PRIVMSG" | "ROOMSTATE" | "USERNOTICE" | "USERSTATE" | "WHISPER" | "JOIN" | "PART" | "RECONNECT" | "PING" | "PONG" | "CAP" | keyof SpecificClientEvents

Parameters

event

T

fn?

(...args) => void

context?

any

once?

boolean

Returns

this

Inherited from

BaseClient.removeListener


reply()

reply(channelName, messageId, message): Promise<void>

Defined in: src/client/client.ts:245

Parameters

channelName

string

The channel name you want to reply in.

messageId

string

The message ID you want to reply to.

message

string

The message you want to send.

Returns

Promise<void>


requireConnection()

requireConnection(predicate?): SingleConnection

Defined in: src/client/client.ts:448

Finds a connection from the list of connections that satisfies the given predicate, or if none was found, returns makes a new connection. This means that the given predicate must be specified in a way that a new connection always satisfies it.

Parameters

predicate?

ConnectionPredicate = ...

The predicate the connection must fulfill.

Returns

SingleConnection


say()

say(channelName, message): Promise<void>

Defined in: src/client/client.ts:220

Parameters

channelName

string

message

string

Returns

Promise<void>


sendRaw()

sendRaw(command): void

Defined in: src/client/client.ts:107

Sends a raw IRC command to the server, e.g. JOIN #forsen.

Throws an exception if the passed command contains one or more newline characters.

Parameters

command

string

Raw IRC command.

Returns

void


use()

use(mixin): void

Defined in: src/client/client.ts:320

Parameters

mixin

ClientMixin

Returns

void