web2api-server
Version:
server part of web2api service(1/2)
40 lines (33 loc) • 1.05 kB
text/typescript
import { serverInfo } from "@/variables.js";
import { globalClientManager } from "@/ws/client-manage.js";
import { Hono, type Handler } from "hono";
import type { ModelId } from "@/ws/type.js";
/**
* server control/manage api
*/
export type ServerState = {
clientVersion: string;
serverVersion: string;
supportModels: Record<string, string[]>;
clientWebsocketState: number;
};
export const controlApiHandler = new Hono();
export const stateHandler: Handler = async (c) => {
/*
* same <Major version>.<Minor version> are compatible
*/
const clientVersion = globalClientManager.clientVersion;
const serverVersion = serverInfo.version;
const supportModels = globalClientManager.provideModels;
const clientWebsocketState = globalClientManager.state;
return c.json({
clientVersion,
serverVersion,
supportModels,
clientWebsocketState,
} as ServerState);
};
controlApiHandler.get("/state", stateHandler);
controlApiHandler.get("/serverFullVersion", async (c) => {
return c.text(serverInfo.fullVersion);
});