aboutsummaryrefslogtreecommitdiff
path: root/src/Utils.ts
diff options
context:
space:
mode:
authorTyler Schicke <tyler_schicke@brown.edu>2019-04-05 01:41:22 -0400
committerTyler Schicke <tyler_schicke@brown.edu>2019-04-05 01:41:22 -0400
commit0fb53a4b5fb430e67ef4af2323c886e77985ca52 (patch)
treeca2826992a817d9944ab0163717c7644b1216d69 /src/Utils.ts
parent8faacc6b8da0082823ec92cb1c862b6373596264 (diff)
parent4fde212cd00bd2f8fc2fa122309af3bb71bba2fd (diff)
Merge branch 'master' of github-tsch-brown:browngraphicslab/Dash-Web
Diffstat (limited to 'src/Utils.ts')
-rw-r--r--src/Utils.ts42
1 files changed, 37 insertions, 5 deletions
diff --git a/src/Utils.ts b/src/Utils.ts
index a4db94809..a5d9bd0ca 100644
--- a/src/Utils.ts
+++ b/src/Utils.ts
@@ -37,20 +37,52 @@ export class Utils {
document.body.removeChild(textArea);
}
+ public static loggingEnabled: Boolean = false;
+ public static logFilter: number | undefined = undefined;
+ private static log(prefix: string, messageName: string, message: any, receiving: boolean) {
+ if (!this.loggingEnabled) {
+ return;
+ }
+ message = message || {};
+ if (this.logFilter !== undefined && this.logFilter !== message.type) {
+ return;
+ }
+ 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<T>(socket: Socket | SocketIOClient.Socket, message: Message<T>, args: T) {
+ this.log("Emit", message.Name, args, false);
socket.emit(message.Message, args);
}
- public static EmitCallback<T>(socket: Socket | SocketIOClient.Socket, message: Message<T>, args: T, fn: (args: any) => any) {
- socket.emit(message.Message, args, fn);
+ public static EmitCallback<T>(socket: Socket | SocketIOClient.Socket, message: Message<T>, args: T): Promise<any>;
+ public static EmitCallback<T>(socket: Socket | SocketIOClient.Socket, message: Message<T>, args: T, fn: (args: any) => any): void;
+ public static EmitCallback<T>(socket: Socket | SocketIOClient.Socket, message: Message<T>, args: T, fn?: (args: any) => any): void | Promise<any> {
+ this.log("Emit", message.Name, args, false);
+ if (fn) {
+ socket.emit(message.Message, args, this.loggingCallback('Receiving', fn, message.Name));
+ } else {
+ return new Promise<any>(res => socket.emit(message.Message, args, this.loggingCallback('Receiving', res, message.Name)));
+ }
}
- public static AddServerHandler<T>(socket: Socket, message: Message<T>, handler: (args: T) => any) {
- socket.on(message.Message, handler);
+ public static AddServerHandler<T>(socket: Socket | SocketIOClient.Socket, message: Message<T>, handler: (args: T) => any) {
+ socket.on(message.Message, this.loggingCallback('Incoming', handler, message.Name));
}
public static AddServerHandlerCallback<T>(socket: Socket, message: Message<T>, 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)])
+ });
}
}