| 
					
				 | 
			
			
				@@ -1,7 +1,31 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { WebSocket as WSWebSocket } from "ws"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import LogBook, { Log } from "./LogBook"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export default class WebSocket extends WSWebSocket { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	protected logBook: LogBook = LogBook.getPrimaryInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	public dispatch(name: string, ...args: any[]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		this.send(JSON.stringify([name, ...args])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * log - Add log to logbook 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param log - Log message or object 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public log(log: string | Omit<Log, "timestamp" | "category">) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		const { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			message, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			type = undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			data = {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			...(typeof log === "string" ? { message: log } : log) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this.logBook.log({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			message, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			category: "modules.websocket.socket", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |