Refactor version API to GetNapCatVersion endpoint

Replaces the PackageInfo API and related frontend usage with a dedicated GetNapCatVersion endpoint that returns only the NapCat version string. Updates backend handler, helper, types, router, and frontend components to use the new API for improved clarity and separation of concerns.
This commit is contained in:
手瓜一十雪 2025-11-14 12:10:57 +08:00
parent f553f9dc8d
commit e9856ac80f
7 changed files with 13 additions and 15 deletions

View File

@ -4,9 +4,9 @@ import { WebUiDataRuntime } from '@/napcat-webui-backend/helper/Data';
import { sendSuccess } from '@/napcat-webui-backend/utils/response'; import { sendSuccess } from '@/napcat-webui-backend/utils/response';
import { WebUiConfig } from '@/napcat-webui-backend/index'; import { WebUiConfig } from '@/napcat-webui-backend/index';
export const PackageInfoHandler: RequestHandler = (_, res) => { export const GetNapCatVersion: RequestHandler = (_, res) => {
const data = WebUiDataRuntime.getPackageJson(); const data = WebUiDataRuntime.GetNapCatVersion();
sendSuccess(res, data); sendSuccess(res, { version: data });
}; };
export const QQVersionHandler: RequestHandler = (_, res) => { export const QQVersionHandler: RequestHandler = (_, res) => {

View File

@ -1,5 +1,4 @@
import type { LoginRuntimeType } from '../types/data'; import type { LoginRuntimeType } from '../types/data';
import packageJson from '../../../../package.json';
import store from 'napcat-common/src/store'; import store from 'napcat-common/src/store';
import { napCatVersion } from 'napcat-common/src/version'; import { napCatVersion } from 'napcat-common/src/version';
@ -31,12 +30,11 @@ const LoginRuntime: LoginRuntimeType = {
QQLoginList: [], QQLoginList: [],
NewQQLoginList: [], NewQQLoginList: [],
}, },
packageJson, NapCatVersion: napCatVersion,
WebUiConfigQuickFunction: async () => { WebUiConfigQuickFunction: async () => {
}, },
}; };
packageJson.version = napCatVersion;
export const WebUiDataRuntime = { export const WebUiDataRuntime = {
setWebUiTokenChangeCallback (func: (token: string) => Promise<void>): void { setWebUiTokenChangeCallback (func: (token: string) => Promise<void>): void {
LoginRuntime.onWebUiTokenChange = func; LoginRuntime.onWebUiTokenChange = func;
@ -131,8 +129,8 @@ export const WebUiDataRuntime = {
return LoginRuntime.NapCatHelper.onOB11ConfigChanged(ob11); return LoginRuntime.NapCatHelper.onOB11ConfigChanged(ob11);
} as LoginRuntimeType['NapCatHelper']['onOB11ConfigChanged'], } as LoginRuntimeType['NapCatHelper']['onOB11ConfigChanged'],
getPackageJson () { GetNapCatVersion () {
return LoginRuntime.packageJson; return LoginRuntime.NapCatVersion;
}, },
setQQVersion (version: string) { setQQVersion (version: string) {

View File

@ -1,12 +1,12 @@
import { Router } from 'express'; import { Router } from 'express';
import { GetThemeConfigHandler, PackageInfoHandler, QQVersionHandler, SetThemeConfigHandler } from '../api/BaseInfo'; import { GetThemeConfigHandler, GetNapCatVersion, QQVersionHandler, SetThemeConfigHandler } from '../api/BaseInfo';
import { StatusRealTimeHandler } from '@/napcat-webui-backend/api/Status'; import { StatusRealTimeHandler } from '@/napcat-webui-backend/api/Status';
import { GetProxyHandler } from '../api/Proxy'; import { GetProxyHandler } from '../api/Proxy';
const router = Router(); const router = Router();
// router: 获取nc的package.json信息 // router: 获取nc的package.json信息
router.get('/QQVersion', QQVersionHandler); router.get('/QQVersion', QQVersionHandler);
router.get('/PackageInfo', PackageInfoHandler); router.get('/GetNapCatVersion', GetNapCatVersion);
router.get('/GetSysStatusRealTime', StatusRealTimeHandler); router.get('/GetSysStatusRealTime', StatusRealTimeHandler);
router.get('/proxy', GetProxyHandler); router.get('/proxy', GetProxyHandler);
router.get('/Theme', GetThemeConfigHandler); router.get('/Theme', GetThemeConfigHandler);

View File

@ -18,5 +18,5 @@ interface LoginRuntimeType {
QQLoginList: string[]; QQLoginList: string[];
NewQQLoginList: LoginListItem[]; NewQQLoginList: LoginListItem[];
}; };
packageJson: object; NapCatVersion: string;
} }

View File

@ -201,7 +201,7 @@ const NapCatVersion = () => {
data: packageData, data: packageData,
loading: packageLoading, loading: packageLoading,
error: packageError, error: packageError,
} = useRequest(WebUIManager.getPackageInfo); } = useRequest(WebUIManager.GetNapCatVersion);
const currentVersion = packageData?.version; const currentVersion = packageData?.version;

View File

@ -42,9 +42,9 @@ export default class WebUIManager {
return data.data as ServerResponse<T>; return data.data as ServerResponse<T>;
} }
public static async getPackageInfo () { public static async GetNapCatVersion () {
const { data } = const { data } =
await serverRequest.get<ServerResponse<PackageInfo>>('/base/PackageInfo'); await serverRequest.get<ServerResponse<PackageInfo>>('/base/GetNapCatVersion');
return data.data; return data.data;
} }

View File

@ -19,7 +19,7 @@ import logo from '@/assets/images/logo.png';
import WebUIManager from '@/controllers/webui_manager'; import WebUIManager from '@/controllers/webui_manager';
function VersionInfo () { function VersionInfo () {
const { data, loading, error } = useRequest(WebUIManager.getPackageInfo); const { data, loading, error } = useRequest(WebUIManager.GetNapCatVersion);
return ( return (
<div className='flex items-center gap-2 text-2xl font-bold'> <div className='flex items-center gap-2 text-2xl font-bold'>
<div className='flex items-center gap-2'> <div className='flex items-center gap-2'>