Files
J-Board-Lite/src/services/node-panel/factory.ts
2026-04-29 15:03:00 +10:00

15 lines
664 B
TypeScript

import type { NodeServer } from "@prisma/client";
import type { NodePanelAdapter } from "./adapter";
import { ThreeXUIAdapter } from "./three-x-ui";
export function createPanelAdapter(server: NodeServer): NodePanelAdapter {
const panelType = server.panelType ?? "3x-ui";
if (panelType !== "3x-ui") {
throw new Error(`节点 ${server.name} 面板类型不支持:${panelType},当前仅支持 3x-ui`);
}
if (!server.panelUrl || !server.panelUsername || !server.panelPassword) {
throw new Error(`节点 ${server.name} 未配置 3x-ui 面板信息`);
}
return new ThreeXUIAdapter(server.panelUrl, server.panelUsername, server.panelPassword);
}