Files
NapCatQQ/.pnpm-store/v3/files/27/32237d236f32a8ed6dbe804058e424a1b0ad181a4d0973bc3077d688d777283dfced2343f065a25850f570f5a7eafabd5da4a1b74f5ef375f8b4a499c0f132
T
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

92 lines
3.0 KiB
Plaintext

import { PluginRouterRegistry, PluginRequestHandler, PluginPageDefinition, HttpMethod, MemoryStaticFile } from './types';
/**
* 插件路由注册器实现
* 为每个插件创建独立的路由注册器,收集路由定义
*/
/** 内存静态路由定义 */
interface MemoryStaticRoute {
urlPath: string;
files: MemoryStaticFile[];
}
export declare class PluginRouterRegistryImpl implements PluginRouterRegistry {
private readonly pluginId;
private readonly pluginPath;
private apiRoutes;
private apiNoAuthRoutes;
private pageDefinitions;
private staticRoutes;
private memoryStaticRoutes;
constructor(pluginId: string, pluginPath: string);
api(method: HttpMethod, routePath: string, handler: PluginRequestHandler): void;
get(routePath: string, handler: PluginRequestHandler): void;
post(routePath: string, handler: PluginRequestHandler): void;
put(routePath: string, handler: PluginRequestHandler): void;
delete(routePath: string, handler: PluginRequestHandler): void;
apiNoAuth(method: HttpMethod, routePath: string, handler: PluginRequestHandler): void;
getNoAuth(routePath: string, handler: PluginRequestHandler): void;
postNoAuth(routePath: string, handler: PluginRequestHandler): void;
putNoAuth(routePath: string, handler: PluginRequestHandler): void;
deleteNoAuth(routePath: string, handler: PluginRequestHandler): void;
page(pageDef: PluginPageDefinition): void;
pages(pageDefs: PluginPageDefinition[]): void;
static(urlPath: string, localPath: string): void;
staticOnMem(urlPath: string, files: MemoryStaticFile[]): void;
/**
* 构建 Express Router(用于 API 路由)
* 注意:静态资源路由不在此处挂载,由 webui-backend 直接在不需要鉴权的路径下处理
*/
buildApiRouter(): Router;
/**
* 包装处理器,添加错误处理和请求/响应包装
*/
private wrapHandler;
/**
* 检查是否有注册的 API 路由(需要认证)
*/
hasApiRoutes(): boolean;
/**
* 检查是否有注册的无认证 API 路由
*/
hasApiNoAuthRoutes(): boolean;
/**
* 构建无认证 Express Router(用于 /plugin/{pluginId}/api/ 路径)
*/
buildApiNoAuthRouter(): Router;
/**
* 检查是否有注册的静态资源路由
*/
hasStaticRoutes(): boolean;
/**
* 检查是否有注册的页面
*/
hasPages(): boolean;
/**
* 获取所有注册的页面定义
*/
getPages(): PluginPageDefinition[];
/**
* 获取插件 ID
*/
getPluginId(): string;
/**
* 获取插件路径
*/
getPluginPath(): string;
/**
* 获取所有注册的静态路由
*/
getStaticRoutes(): Array<{
urlPath: string;
localPath: string;
}>;
/**
* 获取所有注册的内存静态路由
*/
getMemoryStaticRoutes(): MemoryStaticRoute[];
/**
* 清空路由(用于插件卸载)
*/
clear(): void;
}
export {};