UNPKG

socket.io-react-hooks-advanced

Version:

A modular and extensible React + Socket.IO hook library designed for real-world applications. Supports namespaced sockets, reconnection strategies, offline queues, latency monitoring, middleware, encryption, and more.

41 lines (40 loc) 1.14 kB
export class MiddlewareManager { constructor() { this.middlewares = []; } addMiddleware(entry) { this.middlewares.push(entry); return entry.id; } removeMiddleware(id) { this.middlewares = this.middlewares.filter((m) => m.id !== id); } runEmit(event, data, finalEmit) { let index = -1; const middlewares = this.middlewares.filter((m) => m.emit !== undefined); const next = (ev, dt) => { index++; if (index < middlewares.length) { middlewares[index].emit(ev, dt, next); } else { finalEmit(ev, dt); } }; next(event, data); } runOn(event, data, finalHandler) { let index = -1; const middlewares = this.middlewares.filter((m) => m.on !== undefined); const next = (dt) => { index++; if (index < middlewares.length) { middlewares[index].on(event, dt, next); } else { finalHandler(dt); } }; next(data); } }