From adaba603d22ae28feb2d4d1a5eda43a52f8ad9ba Mon Sep 17 00:00:00 2001 From: Tyler Schicke Date: Fri, 22 Mar 2019 02:53:34 -0400 Subject: Added optional logging for socket.io calls --- src/Utils.ts | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/Utils.ts b/src/Utils.ts index be97dc90b..3849372b0 100644 --- a/src/Utils.ts +++ b/src/Utils.ts @@ -37,26 +37,49 @@ export class Utils { document.body.removeChild(textArea); } + public static loggingEnabled: Boolean = false; + private static log(prefix: string, messageName: string, message: any, receiving: boolean) { + if (!this.loggingEnabled) { + return; + } + !message && console.log(prefix, messageName) + message = message || {}; + let idString = (message._id || message.id || "").padStart(36, ' '); + prefix = prefix.padEnd(16, ' '); + console.log(`${prefix}: ${idString}, ${receiving ? 'receiving' : 'sending'} ${messageName} with data ${JSON.stringify(message)}`); + } + private static loggingCallback(prefix: string, func: (args: any) => any, messageName: string) { + return (args: any) => { + this.log(prefix, messageName, args, true); + func(args); + } + }; + public static Emit(socket: Socket | SocketIOClient.Socket, message: Message, args: T) { + this.log("Emit", message.Name, args, false); socket.emit(message.Message, args); } public static EmitCallback(socket: Socket | SocketIOClient.Socket, message: Message, args: T): Promise; public static EmitCallback(socket: Socket | SocketIOClient.Socket, message: Message, args: T, fn: (args: any) => any): void; public static EmitCallback(socket: Socket | SocketIOClient.Socket, message: Message, args: T, fn?: (args: any) => any): void | Promise { + this.log("Emit", message.Name, args, false); if (fn) { - socket.emit(message.Message, args, fn); + socket.emit(message.Message, args, this.loggingCallback('Receiving', fn, message.Name)); } else { - return new Promise(res => socket.emit(message.Message, args, res)); + return new Promise(res => socket.emit(message.Message, args, this.loggingCallback('Receiving', res, message.Name))); } } - public static AddServerHandler(socket: Socket, message: Message, handler: (args: T) => any) { - socket.on(message.Message, handler); + public static AddServerHandler(socket: Socket | SocketIOClient.Socket, message: Message, handler: (args: T) => any) { + socket.on(message.Message, this.loggingCallback('Incoming', handler, message.Name)); } public static AddServerHandlerCallback(socket: Socket, message: Message, handler: (args: [T, (res: any) => any]) => any) { - socket.on(message.Message, (arg: T, fn: (res: any) => any) => handler([arg, fn])); + socket.on(message.Message, (arg: T, fn: (res: any) => any) => { + this.log('S receiving', message.Name, arg, true); + handler([arg, this.loggingCallback('S sending', fn, message.Name)]) + }); } } -- cgit v1.2.3-70-g09d2