Skip to content

Commit 1f54ee0

Browse files
refactor(sio): simplify middleware execution
1 parent 923a12e commit 1f54ee0

File tree

3 files changed

+12
-11
lines changed

3 files changed

+12
-11
lines changed

packages/socket.io/lib/namespace.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,7 @@ export class Namespace<
150150
SocketData
151151
>;
152152

153-
/** @private */
154-
_fns: Array<
153+
protected _fns: Array<
155154
(
156155
socket: Socket<ListenEvents, EmitEvents, ServerSideEvents, SocketData>,
157156
next: (err?: ExtendedError) => void,
@@ -221,18 +220,19 @@ export class Namespace<
221220
*/
222221
private run(
223222
socket: Socket<ListenEvents, EmitEvents, ServerSideEvents, SocketData>,
224-
fn: (err: ExtendedError | null) => void,
223+
fn: (err?: ExtendedError) => void,
225224
) {
225+
if (!this._fns) return fn();
226+
226227
const fns = this._fns.slice(0);
227-
if (!fns.length) return fn(null);
228228

229229
function run(i: number) {
230-
fns[i](socket, function (err) {
230+
fns[i](socket, (err) => {
231231
// upon error, short-circuit
232232
if (err) return fn(err);
233233

234234
// if no middleware left, summon callback
235-
if (!fns[i + 1]) return fn(null);
235+
if (!fns[i + 1]) return fn();
236236

237237
// go on to next
238238
run(i + 1);

packages/socket.io/lib/parent-namespace.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export class ParentNamespace<
6767
): Namespace<ListenEvents, EmitEvents, ServerSideEvents, SocketData> {
6868
debug("creating child namespace %s", name);
6969
const namespace = new Namespace(this.server, name);
70-
namespace._fns = this._fns.slice(0);
70+
this._fns.forEach((fn) => namespace.use(fn));
7171
this.listeners("connect").forEach((listener) =>
7272
namespace.on("connect", listener),
7373
);

packages/socket.io/lib/socket.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -961,17 +961,18 @@ export class Socket<
961961
* @param {Function} fn - last fn call in the middleware
962962
* @private
963963
*/
964-
private run(event: Event, fn: (err: Error | null) => void): void {
964+
private run(event: Event, fn: (err?: Error) => void): void {
965+
if (!this.fns.length) return fn();
966+
965967
const fns = this.fns.slice(0);
966-
if (!fns.length) return fn(null);
967968

968969
function run(i: number) {
969-
fns[i](event, function (err) {
970+
fns[i](event, (err) => {
970971
// upon error, short-circuit
971972
if (err) return fn(err);
972973

973974
// if no middleware left, summon callback
974-
if (!fns[i + 1]) return fn(null);
975+
if (!fns[i + 1]) return fn();
975976

976977
// go on to next
977978
run(i + 1);

0 commit comments

Comments
 (0)