From dc56deb08a3f6c689dedc5b4faef2855d48732fa Mon Sep 17 00:00:00 2001 From: alina sireneva Date: Mon, 29 Apr 2024 18:09:56 +0300 Subject: [PATCH] fix: check for listener count before emitting error --- packages/bun/src/utils/tcp.ts | 11 +++++++++-- packages/deno/src/utils/tcp.ts | 5 ++++- packages/node/src/utils/tcp.ts | 5 ++++- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/packages/bun/src/utils/tcp.ts b/packages/bun/src/utils/tcp.ts index 5bfcc7b5..e8141d8b 100644 --- a/packages/bun/src/utils/tcp.ts +++ b/packages/bun/src/utils/tcp.ts @@ -91,7 +91,10 @@ export abstract class BaseTcpTransport extends EventEmitter implements ITelegram handleError(socket: unknown, error: Error): void { this.log.error('error: %s', error.stack) - this.emit('error', error) + + if (this.listenerCount('error') > 0) { + this.emit('error', error) + } } handleConnect(socket: Socket): void { @@ -109,7 +112,11 @@ export abstract class BaseTcpTransport extends EventEmitter implements ITelegram 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 { diff --git a/packages/deno/src/utils/tcp.ts b/packages/deno/src/utils/tcp.ts index 848ded1e..f1a3faab 100644 --- a/packages/deno/src/utils/tcp.ts +++ b/packages/deno/src/utils/tcp.ts @@ -87,7 +87,10 @@ export abstract class BaseTcpTransport extends EventEmitter implements ITelegram handleError(error: unknown): void { 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 { diff --git a/packages/node/src/utils/tcp.ts b/packages/node/src/utils/tcp.ts index 3fadbeb2..56d952ba 100644 --- a/packages/node/src/utils/tcp.ts +++ b/packages/node/src/utils/tcp.ts @@ -84,7 +84,10 @@ export abstract class BaseTcpTransport extends EventEmitter implements ITelegram handleError(error: Error): void { this.log.error('error: %s', error.stack) - this.emit('error', error) + + if (this.listenerCount('error') > 0) { + this.emit('error', error) + } } handleConnect(): void {