Skip to content

Commit b84ed1e

Browse files
fix(typings): properly type server-side events
See also: 93cce05
1 parent fb6b0ef commit b84ed1e

File tree

5 files changed

+9
-8
lines changed

5 files changed

+9
-8
lines changed

lib/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ interface ServerOptions extends EngineAttachOptions {
168168
export class Server<
169169
ListenEvents extends EventsMap = DefaultEventsMap,
170170
EmitEvents extends EventsMap = ListenEvents,
171-
ServerSideEvents extends EventsMap = {}
171+
ServerSideEvents extends EventsMap = DefaultEventsMap
172172
> extends StrictEventEmitter<
173173
ServerSideEvents,
174174
EmitEvents,

lib/namespace.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ export const RESERVED_EVENTS: ReadonlySet<string | Symbol> = new Set<
5050
export class Namespace<
5151
ListenEvents extends EventsMap = DefaultEventsMap,
5252
EmitEvents extends EventsMap = ListenEvents,
53-
ServerSideEvents extends EventsMap = {}
53+
ServerSideEvents extends EventsMap = DefaultEventsMap
5454
> extends StrictEventEmitter<
5555
ServerSideEvents,
5656
EmitEvents,
@@ -306,9 +306,8 @@ export class Namespace<
306306
*
307307
* @private
308308
*/
309-
_onServerSideEmit(args: any[]) {
310-
const event = args.shift();
311-
this.emitUntyped(event, args);
309+
_onServerSideEmit(args: [eventName: string, ...args: any[]]) {
310+
super.emitUntyped.apply(this, args);
312311
}
313312

314313
/**

lib/parent-namespace.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import type { BroadcastOptions } from "socket.io-adapter";
1111
export class ParentNamespace<
1212
ListenEvents extends EventsMap = DefaultEventsMap,
1313
EmitEvents extends EventsMap = ListenEvents,
14-
ServerSideEvents extends EventsMap = {}
14+
ServerSideEvents extends EventsMap = DefaultEventsMap
1515
> extends Namespace<ListenEvents, EmitEvents, ServerSideEvents> {
1616
private static count: number = 0;
1717
private children: Set<

lib/socket.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ export interface Handshake {
111111
export class Socket<
112112
ListenEvents extends EventsMap = DefaultEventsMap,
113113
EmitEvents extends EventsMap = ListenEvents,
114-
ServerSideEvents extends EventsMap = {}
114+
ServerSideEvents extends EventsMap = DefaultEventsMap
115115
> extends StrictEventEmitter<
116116
ListenEvents,
117117
EmitEvents,

test/socket.io.test-d.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,9 @@ describe("server", () => {
117117

118118
it("does not accept arguments of wrong types", (done) => {
119119
const srv = createServer();
120-
const sio = new Server<BidirectionalEvents>(srv);
120+
const sio = new Server<BidirectionalEvents, BidirectionalEvents, {}>(
121+
srv
122+
);
121123
expectError(sio.on("random", (a, b, c) => {}));
122124
srv.listen(() => {
123125
expectError(sio.on("wrong name", (s) => {}));

0 commit comments

Comments
 (0)