Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 37d9fc6

Browse files
committedOct 11, 2023
refactor(types): allow to apply types to socket.request
1 parent 9a2a83f commit 37d9fc6

File tree

6 files changed

+317
-52
lines changed

6 files changed

+317
-52
lines changed
 

Diff for: ‎lib/client.ts

+39-7
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ export class Client<
2929
ListenEvents extends EventsMap,
3030
EmitEvents extends EventsMap,
3131
ServerSideEvents extends EventsMap,
32-
SocketData = any
32+
SocketData = any,
33+
AdditionalRequestData = Record<string, never>
3334
> {
3435
public readonly conn: RawSocket;
3536

@@ -38,17 +39,30 @@ export class Client<
3839
ListenEvents,
3940
EmitEvents,
4041
ServerSideEvents,
41-
SocketData
42+
SocketData,
43+
AdditionalRequestData
4244
>;
4345
private readonly encoder: Encoder;
4446
private readonly decoder: Decoder;
4547
private sockets: Map<
4648
SocketId,
47-
Socket<ListenEvents, EmitEvents, ServerSideEvents, SocketData>
49+
Socket<
50+
ListenEvents,
51+
EmitEvents,
52+
ServerSideEvents,
53+
SocketData,
54+
AdditionalRequestData
55+
>
4856
> = new Map();
4957
private nsps: Map<
5058
string,
51-
Socket<ListenEvents, EmitEvents, ServerSideEvents, SocketData>
59+
Socket<
60+
ListenEvents,
61+
EmitEvents,
62+
ServerSideEvents,
63+
SocketData,
64+
AdditionalRequestData
65+
>
5266
> = new Map();
5367
private connectTimeout?: NodeJS.Timeout;
5468

@@ -60,7 +74,13 @@ export class Client<
6074
* @package
6175
*/
6276
constructor(
63-
server: Server<ListenEvents, EmitEvents, ServerSideEvents, SocketData>,
77+
server: Server<
78+
ListenEvents,
79+
EmitEvents,
80+
ServerSideEvents,
81+
SocketData,
82+
AdditionalRequestData
83+
>,
6484
conn: any
6585
) {
6686
this.server = server;
@@ -125,7 +145,13 @@ export class Client<
125145
auth,
126146
(
127147
dynamicNspName:
128-
| Namespace<ListenEvents, EmitEvents, ServerSideEvents, SocketData>
148+
| Namespace<
149+
ListenEvents,
150+
EmitEvents,
151+
ServerSideEvents,
152+
SocketData,
153+
AdditionalRequestData
154+
>
129155
| false
130156
) => {
131157
if (dynamicNspName) {
@@ -185,7 +211,13 @@ export class Client<
185211
* @private
186212
*/
187213
_remove(
188-
socket: Socket<ListenEvents, EmitEvents, ServerSideEvents, SocketData>
214+
socket: Socket<
215+
ListenEvents,
216+
EmitEvents,
217+
ServerSideEvents,
218+
SocketData,
219+
AdditionalRequestData
220+
>
189221
): void {
190222
if (this.sockets.has(socket.id)) {
191223
const nsp = this.sockets.get(socket.id)!.nsp.name;

Diff for: ‎lib/index.ts

+56-11
Original file line numberDiff line numberDiff line change
@@ -138,22 +138,25 @@ export class Server<
138138
ListenEvents extends EventsMap = DefaultEventsMap,
139139
EmitEvents extends EventsMap = ListenEvents,
140140
ServerSideEvents extends EventsMap = DefaultEventsMap,
141-
SocketData = any
141+
SocketData = any,
142+
AdditionalRequestData = Record<string, never>
142143
> extends StrictEventEmitter<
143144
ServerSideEvents,
144145
RemoveAcknowledgements<EmitEvents>,
145146
ServerReservedEventsMap<
146147
ListenEvents,
147148
EmitEvents,
148149
ServerSideEvents,
149-
SocketData
150+
SocketData,
151+
AdditionalRequestData
150152
>
151153
> {
152154
public readonly sockets: Namespace<
153155
ListenEvents,
154156
EmitEvents,
155157
ServerSideEvents,
156-
SocketData
158+
SocketData,
159+
AdditionalRequestData
157160
>;
158161
/**
159162
* A reference to the underlying Engine.IO server.
@@ -174,11 +177,23 @@ export class Server<
174177
*/
175178
_nsps: Map<
176179
string,
177-
Namespace<ListenEvents, EmitEvents, ServerSideEvents, SocketData>
180+
Namespace<
181+
ListenEvents,
182+
EmitEvents,
183+
ServerSideEvents,
184+
SocketData,
185+
AdditionalRequestData
186+
>
178187
> = new Map();
179188
private parentNsps: Map<
180189
ParentNspNameMatchFn,
181-
ParentNamespace<ListenEvents, EmitEvents, ServerSideEvents, SocketData>
190+
ParentNamespace<
191+
ListenEvents,
192+
EmitEvents,
193+
ServerSideEvents,
194+
SocketData,
195+
AdditionalRequestData
196+
>
182197
> = new Map();
183198

184199
/**
@@ -189,7 +204,13 @@ export class Server<
189204
*/
190205
private parentNamespacesFromRegExp: Map<
191206
RegExp,
192-
ParentNamespace<ListenEvents, EmitEvents, ServerSideEvents, SocketData>
207+
ParentNamespace<
208+
ListenEvents,
209+
EmitEvents,
210+
ServerSideEvents,
211+
SocketData,
212+
AdditionalRequestData
213+
>
193214
> = new Map();
194215

195216
private _adapter?: AdapterConstructor;
@@ -313,7 +334,13 @@ export class Server<
313334
auth: { [key: string]: any },
314335
fn: (
315336
nsp:
316-
| Namespace<ListenEvents, EmitEvents, ServerSideEvents, SocketData>
337+
| Namespace<
338+
ListenEvents,
339+
EmitEvents,
340+
ServerSideEvents,
341+
SocketData,
342+
AdditionalRequestData
343+
>
317344
| false
318345
) => void
319346
): void {
@@ -333,7 +360,7 @@ export class Server<
333360
if (this._nsps.has(name)) {
334361
// the namespace was created in the meantime
335362
debug("dynamic namespace %s already exists", name);
336-
return fn(this._nsps.get(name) as Namespace);
363+
return fn(this._nsps.get(name)!);
337364
}
338365
const namespace = this.parentNsps.get(nextFn.value)!.createChild(name);
339366
debug("dynamic namespace %s was created", name);
@@ -705,9 +732,21 @@ export class Server<
705732
public of(
706733
name: string | RegExp | ParentNspNameMatchFn,
707734
fn?: (
708-
socket: Socket<ListenEvents, EmitEvents, ServerSideEvents, SocketData>
735+
socket: Socket<
736+
ListenEvents,
737+
EmitEvents,
738+
ServerSideEvents,
739+
SocketData,
740+
AdditionalRequestData
741+
>
709742
) => void
710-
): Namespace<ListenEvents, EmitEvents, ServerSideEvents, SocketData> {
743+
): Namespace<
744+
ListenEvents,
745+
EmitEvents,
746+
ServerSideEvents,
747+
SocketData,
748+
AdditionalRequestData
749+
> {
711750
if (typeof name === "function" || name instanceof RegExp) {
712751
const parentNsp = new ParentNamespace(this);
713752
debug("initializing parent namespace %s", parentNsp.name);
@@ -785,7 +824,13 @@ export class Server<
785824
*/
786825
public use(
787826
fn: (
788-
socket: Socket<ListenEvents, EmitEvents, ServerSideEvents, SocketData>,
827+
socket: Socket<
828+
ListenEvents,
829+
EmitEvents,
830+
ServerSideEvents,
831+
SocketData,
832+
AdditionalRequestData
833+
>,
789834
next: (err?: ExtendedError) => void
790835
) => void
791836
): this {

0 commit comments

Comments
 (0)
Please sign in to comment.