From b94e18fdd0772ebbfeb4657861cac134a1214587 Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Wed, 9 Apr 2025 20:42:28 +0000 Subject: [PATCH] added experimentation with events --- server/src/classes/rtengineng/event.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 server/src/classes/rtengineng/event.js diff --git a/server/src/classes/rtengineng/event.js b/server/src/classes/rtengineng/event.js new file mode 100644 index 0000000..498406b --- /dev/null +++ b/server/src/classes/rtengineng/event.js @@ -0,0 +1,21 @@ +export default class WSEvent { + constructor(fn, middlewares = []) { + this.fn = fn + this.middlewares = middlewares + } + + execute = async (socket, body) => { + try { + // execute middlewares + for await (const middleware of this.middlewares) { + await middleware(socket, body) + } + + await this.fn(socket, body) + } catch (error) { + await this.onError(socket, body, error) + } + } + + onError = async (socket, body, error) => {} +}