fix: check for listener count before emitting error

This commit is contained in:
alina 🌸 2024-04-29 18:09:56 +03:00
parent 33515169ff
commit dc56deb08a
Signed by: teidesu
SSH key fingerprint: SHA256:uNeCpw6aTSU4aIObXLvHfLkDa82HWH9EiOj9AXOIRpI
3 changed files with 17 additions and 4 deletions

View file

@ -91,7 +91,10 @@ export abstract class BaseTcpTransport extends EventEmitter implements ITelegram
handleError(socket: unknown, error: Error): void { handleError(socket: unknown, error: Error): void {
this.log.error('error: %s', error.stack) this.log.error('error: %s', error.stack)
this.emit('error', error)
if (this.listenerCount('error') > 0) {
this.emit('error', error)
}
} }
handleConnect(socket: Socket): void { handleConnect(socket: Socket): void {
@ -109,7 +112,11 @@ export abstract class BaseTcpTransport extends EventEmitter implements ITelegram
this.emit('ready') this.emit('ready')
} }
}) })
.catch((err) => this.emit('error', err)) .catch((err) => {
if (this.listenerCount('error') > 0) {
this.emit('error', err)
}
})
} }
async send(bytes: Uint8Array): Promise<void> { async send(bytes: Uint8Array): Promise<void> {

View file

@ -87,7 +87,10 @@ export abstract class BaseTcpTransport extends EventEmitter implements ITelegram
handleError(error: unknown): void { handleError(error: unknown): void {
this.log.error('error: %s', error) this.log.error('error: %s', error)
this.emit('error', error)
if (this.listenerCount('error') > 0) {
this.emit('error', error)
}
} }
async handleConnect(socket: Deno.TcpConn): Promise<void> { async handleConnect(socket: Deno.TcpConn): Promise<void> {

View file

@ -84,7 +84,10 @@ export abstract class BaseTcpTransport extends EventEmitter implements ITelegram
handleError(error: Error): void { handleError(error: Error): void {
this.log.error('error: %s', error.stack) this.log.error('error: %s', error.stack)
this.emit('error', error)
if (this.listenerCount('error') > 0) {
this.emit('error', error)
}
} }
handleConnect(): void { handleConnect(): void {