2022-10-22 22:44:42 +01:00
|
|
|
import { after } from "@lib/patcher";
|
2022-10-23 00:51:18 +01:00
|
|
|
import { getAssetIDByName } from "@ui/assets";
|
|
|
|
|
import { showToast } from "@ui/toasts";
|
2022-10-20 07:58:17 +01:00
|
|
|
import logger from "@lib/logger";
|
2022-10-19 23:11:44 +01:00
|
|
|
export let socket: WebSocket;
|
|
|
|
|
|
2022-10-28 18:50:40 +01:00
|
|
|
export function connectToDebugger(url: string) {
|
2022-10-19 23:11:44 +01:00
|
|
|
if (socket !== undefined && socket.readyState !== WebSocket.CLOSED) {
|
|
|
|
|
socket.close();
|
|
|
|
|
}
|
|
|
|
|
|
2022-10-23 00:51:18 +01:00
|
|
|
if (url === "") {
|
|
|
|
|
showToast("Invalid debugger URL!", getAssetIDByName("Small"));
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2022-10-19 23:11:44 +01:00
|
|
|
socket = new WebSocket(`ws://${url}`);
|
|
|
|
|
|
2022-10-23 00:51:18 +01:00
|
|
|
socket.addEventListener("open", () => showToast("Connected to debugger.", getAssetIDByName("Check")));
|
|
|
|
|
|
2022-10-19 23:11:44 +01:00
|
|
|
socket.addEventListener("message", (message: any) => {
|
|
|
|
|
try {
|
2023-01-08 22:33:41 +00:00
|
|
|
(0, eval)(message.data);
|
2022-10-19 23:11:44 +01:00
|
|
|
} catch (e) {
|
|
|
|
|
console.error(e);
|
|
|
|
|
}
|
|
|
|
|
});
|
2022-10-23 00:51:18 +01:00
|
|
|
|
|
|
|
|
socket.addEventListener("error", (err: any) => {
|
|
|
|
|
console.log(`Debugger error: ${err.message}`);
|
|
|
|
|
showToast("An error occurred with the debugger connection!", getAssetIDByName("Small"));
|
|
|
|
|
});
|
2022-10-19 23:11:44 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function patchLogHook() {
|
|
|
|
|
after("nativeLoggingHook", globalThis, (args, ret) => {
|
|
|
|
|
if (socket?.readyState === WebSocket.OPEN) {
|
|
|
|
|
socket.send(JSON.stringify({ message: args[0], level: args[1] }));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
logger.log(args[0]);
|
|
|
|
|
});
|
|
|
|
|
}
|