turboci-admin/src/websocket/events/client-kill-all-ports.ts
2026-03-10 16:53:06 +00:00

34 lines
1.1 KiB
TypeScript

import { WebSocketMessageParam } from "@/src/types";
import sendData from "../(utils)/send-data";
import sendError from "../(utils)/send-error";
import grabConnectedWebsocketUserdata from "../(utils)/grab-connected-websocket-user-data";
import killPort from "../(utils)/kill-port";
export default async function socketClientKillAllPorts({
ws,
data,
}: WebSocketMessageParam) {
try {
const user = ws.data.user;
const connected_user_data = grabConnectedWebsocketUserdata({ user });
for (let i = 0; i < connected_user_data.ports.length; i++) {
const port = connected_user_data.ports[i];
if (port) {
await killPort({ port, exec_options: { stdio: "inherit" } });
connected_user_data.ports = connected_user_data.ports.filter(
(p) => p != port,
);
}
}
sendData(ws, {
event: "server:killed-all-ports",
});
} catch (error: any) {
sendError(ws, "Service Server Logs Error! " + error.message);
}
}