Skip to content

Commit b3bb73a

Browse files
chore: bump @socket.io/component-emitter to version 3.0.0
The typed events have been moved from [1] to [2] in order to remove the intermediary class and reduce the bundle size. Diff: socketio/emitter@2.0.0...3.0.0 [1]: https://github.com/socketio/socket.io-client [2]: https://github.com/socketio/emitter/
1 parent 1524413 commit b3bb73a

File tree

5 files changed

+50
-28
lines changed

5 files changed

+50
-28
lines changed

lib/socket.ts

Lines changed: 39 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { installTimerFunctions } from "./util.js";
33
import parseqs from "parseqs";
44
import parseuri from "parseuri";
55
import debugModule from "debug"; // debug()
6-
import Emitter from "@socket.io/component-emitter";
6+
import { Emitter } from "@socket.io/component-emitter";
77
import { protocol } from "engine.io-parser";
88

99
const debug = debugModule("engine.io-client:socket"); // debug()
@@ -214,7 +214,26 @@ export interface SocketOptions {
214214
protocols: string | string[];
215215
}
216216

217-
export class Socket extends Emitter {
217+
interface SocketReservedEvents {
218+
open: () => void;
219+
handshake: (data) => void;
220+
packet: (packet) => void;
221+
packetCreate: (packet) => void;
222+
data: (data) => void;
223+
message: (data) => void;
224+
drain: () => void;
225+
flush: () => void;
226+
heartbeat: () => void;
227+
ping: () => void;
228+
pong: () => void;
229+
error: (err: string | Error) => void;
230+
upgrading: (transport) => void;
231+
upgrade: (transport) => void;
232+
upgradeError: (err: Error) => void;
233+
close: (reason: string, desc?: Error) => void;
234+
}
235+
236+
export class Socket extends Emitter<{}, {}, SocketReservedEvents> {
218237
public id: string;
219238
public transport: any;
220239
public binaryType: string;
@@ -408,7 +427,7 @@ export class Socket extends Emitter {
408427
} else if (0 === this.transports.length) {
409428
// Emit error on next tick so it can be listened to
410429
this.setTimeoutFn(() => {
411-
this.emit("error", "No transports available");
430+
this.emitReserved("error", "No transports available");
412431
}, 0);
413432
return;
414433
} else {
@@ -479,7 +498,7 @@ export class Socket extends Emitter {
479498
if ("pong" === msg.type && "probe" === msg.data) {
480499
debug('probe transport "%s" pong', name);
481500
this.upgrading = true;
482-
this.emit("upgrading", transport);
501+
this.emitReserved("upgrading", transport);
483502
if (!transport) return;
484503
Socket.priorWebsocketSuccess = "websocket" === transport.name;
485504

@@ -493,7 +512,7 @@ export class Socket extends Emitter {
493512

494513
this.setTransport(transport);
495514
transport.send([{ type: "upgrade" }]);
496-
this.emit("upgrade", transport);
515+
this.emitReserved("upgrade", transport);
497516
transport = null;
498517
this.upgrading = false;
499518
this.flush();
@@ -503,7 +522,7 @@ export class Socket extends Emitter {
503522
const err = new Error("probe error");
504523
// @ts-ignore
505524
err.transport = transport.name;
506-
this.emit("upgradeError", err);
525+
this.emitReserved("upgradeError", err);
507526
}
508527
});
509528
};
@@ -530,7 +549,7 @@ export class Socket extends Emitter {
530549

531550
debug('probe transport "%s" failed because of error: %s', name, err);
532551

533-
this.emit("upgradeError", error);
552+
this.emitReserved("upgradeError", error);
534553
};
535554

536555
function onTransportClose() {
@@ -578,7 +597,7 @@ export class Socket extends Emitter {
578597
debug("socket open");
579598
this.readyState = "open";
580599
Socket.priorWebsocketSuccess = "websocket" === this.transport.name;
581-
this.emit("open");
600+
this.emitReserved("open");
582601
this.flush();
583602

584603
// we check for `readyState` in case an `open`
@@ -610,10 +629,10 @@ export class Socket extends Emitter {
610629
) {
611630
debug('socket receive: type "%s", data "%s"', packet.type, packet.data);
612631

613-
this.emit("packet", packet);
632+
this.emitReserved("packet", packet);
614633

615634
// Socket is live - any packet counts
616-
this.emit("heartbeat");
635+
this.emitReserved("heartbeat");
617636

618637
switch (packet.type) {
619638
case "open":
@@ -623,8 +642,8 @@ export class Socket extends Emitter {
623642
case "ping":
624643
this.resetPingTimeout();
625644
this.sendPacket("pong");
626-
this.emit("ping");
627-
this.emit("pong");
645+
this.emitReserved("ping");
646+
this.emitReserved("pong");
628647
break;
629648

630649
case "error":
@@ -635,8 +654,8 @@ export class Socket extends Emitter {
635654
break;
636655

637656
case "message":
638-
this.emit("data", packet.data);
639-
this.emit("message", packet.data);
657+
this.emitReserved("data", packet.data);
658+
this.emitReserved("message", packet.data);
640659
break;
641660
}
642661
} else {
@@ -651,7 +670,7 @@ export class Socket extends Emitter {
651670
* @api private
652671
*/
653672
private onHandshake(data) {
654-
this.emit("handshake", data);
673+
this.emitReserved("handshake", data);
655674
this.id = data.sid;
656675
this.transport.query.sid = data.sid;
657676
this.upgrades = this.filterUpgrades(data.upgrades);
@@ -692,7 +711,7 @@ export class Socket extends Emitter {
692711
this.prevBufferLen = 0;
693712

694713
if (0 === this.writeBuffer.length) {
695-
this.emit("drain");
714+
this.emitReserved("drain");
696715
} else {
697716
this.flush();
698717
}
@@ -715,7 +734,7 @@ export class Socket extends Emitter {
715734
// keep track of current length of writeBuffer
716735
// splice writeBuffer and callbackBuffer on `drain`
717736
this.prevBufferLen = this.writeBuffer.length;
718-
this.emit("flush");
737+
this.emitReserved("flush");
719738
}
720739
}
721740

@@ -770,7 +789,7 @@ export class Socket extends Emitter {
770789
data: data,
771790
options: options
772791
};
773-
this.emit("packetCreate", packet);
792+
this.emitReserved("packetCreate", packet);
774793
this.writeBuffer.push(packet);
775794
if (fn) this.once("flush", fn);
776795
this.flush();
@@ -829,7 +848,7 @@ export class Socket extends Emitter {
829848
private onError(err) {
830849
debug("socket error %j", err);
831850
Socket.priorWebsocketSuccess = false;
832-
this.emit("error", err);
851+
this.emitReserved("error", err);
833852
this.onClose("transport error", err);
834853
}
835854

@@ -869,7 +888,7 @@ export class Socket extends Emitter {
869888
this.id = null;
870889

871890
// emit close event
872-
this.emit("close", reason, desc);
891+
this.emitReserved("close", reason, desc);
873892

874893
// clean buffers after, so users can still
875894
// grab the buffers on `close` event

lib/transport.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
import { decodePacket } from "engine.io-parser";
2-
import Emitter from "@socket.io/component-emitter";
2+
import { DefaultEventsMap, Emitter } from "@socket.io/component-emitter";
33
import { installTimerFunctions } from "./util.js";
44
import debugModule from "debug"; // debug()
55
import { SocketOptions } from "./socket.js";
66

77
const debug = debugModule("engine.io-client:transport"); // debug()
88

9-
export abstract class Transport extends Emitter {
9+
export abstract class Transport extends Emitter<
10+
DefaultEventsMap,
11+
DefaultEventsMap
12+
> {
1013
protected opts: SocketOptions;
1114
protected supportsBinary: boolean;
1215
protected query: object;

lib/transports/polling-xhr.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import * as XMLHttpRequestModule from "xmlhttprequest-ssl";
44
import debugModule from "debug"; // debug()
55
import globalThis from "../globalThis.js";
66
import { installTimerFunctions, pick } from "../util.js";
7-
import Emitter from "@socket.io/component-emitter";
7+
import { DefaultEventsMap, Emitter } from "@socket.io/component-emitter";
88
import { Polling } from "./polling.js";
99
import { SocketOptions } from "../socket.js";
1010

@@ -106,7 +106,7 @@ export class XHR extends Polling {
106106
}
107107
}
108108

109-
export class Request extends Emitter {
109+
export class Request extends Emitter<DefaultEventsMap, DefaultEventsMap> {
110110
private readonly opts: { xd; xs } & SocketOptions;
111111
private readonly method: string;
112112
private readonly uri: string;

package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
}
3434
],
3535
"dependencies": {
36-
"@socket.io/component-emitter": "~2.0.0",
36+
"@socket.io/component-emitter": "~3.0.0",
3737
"debug": "~4.3.1",
3838
"engine.io-parser": "~5.0.0",
3939
"has-cors": "1.1.0",

0 commit comments

Comments
 (0)