/** * API 方法元数据接口 */ export interface ApiMethodMeta { method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path: string; } // 使用 WeakMap 存储元数据,避免内存泄漏 const metaStore = new WeakMap>(); /** * 设置函数的元数据 * @param target 目标函数 * @param key 元数据键名 * @param value 元数据值 */ export function setMeta(target: Function, _key: string, value: ApiMethodMeta): void { let map = metaStore.get(target); if (!map) { map = new Map(); metaStore.set(target, map); } map.set(_key, value); } /** * 获取函数的元数据 * @param target 目标函数 * @param key 元数据键名 * @returns 元数据值或undefined */ export function getMeta(target: Function, key: string): ApiMethodMeta | undefined { return metaStore.get(target)?.get(key); }