@@ -3,25 +3,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
33 return ( mod && mod . __esModule ) ? mod : { "default" : mod } ;
44} ;
55Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
6- exports . Socket = void 0 ;
6+ exports . Socket = exports . RESERVED_EVENTS = void 0 ;
77const events_1 = require ( "events" ) ;
88const socket_io_parser_1 = require ( "socket.io-parser" ) ;
99const has_binary2_1 = __importDefault ( require ( "has-binary2" ) ) ;
1010const url_1 = __importDefault ( require ( "url" ) ) ;
1111const debug_1 = __importDefault ( require ( "debug" ) ) ;
1212const base64id_1 = __importDefault ( require ( "base64id" ) ) ;
1313const debug = debug_1 . default ( "socket.io:socket" ) ;
14- /**
15- * Blacklisted events.
16- */
17- const events = [
14+ exports . RESERVED_EVENTS = new Set ( [
1815 "error" ,
1916 "connect" ,
2017 "disconnect" ,
2118 "disconnecting" ,
19+ // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener
2220 "newListener" ,
2321 "removeListener"
24- ] ;
22+ ] ) ;
2523class Socket extends events_1 . EventEmitter {
2624 /**
2725 * Interface to a `Client` for a given `Namespace`.
@@ -69,12 +67,11 @@ class Socket extends events_1.EventEmitter {
6967 * @return {Socket } self
7068 */
7169 // @ts -ignore
72- emit ( ev ) {
73- if ( ~ events . indexOf ( ev ) ) {
74- super . emit . apply ( this , arguments ) ;
75- return this ;
70+ emit ( ev , ...args ) {
71+ if ( exports . RESERVED_EVENTS . has ( ev ) ) {
72+ throw new Error ( `"${ ev } " is a reserved event name` ) ;
7673 }
77- const args = Array . prototype . slice . call ( arguments ) ;
74+ args . unshift ( ev ) ;
7875 const packet = {
7976 type : ( this . flags . binary !== undefined
8077 ? this . flags . binary
0 commit comments