UNPKG

@xiaohui-wang/mcpadvisor

Version:

MCP Advisor & Installation - Find the right MCP server for your needs

50 lines (49 loc) 1.55 kB
import { GetMcpSearchProvider } from './GetMcpSearchProvider.js'; import logger from '../../utils/logger.js'; /** * 搜索提供者类型 */ export var SearchProviderType; (function (SearchProviderType) { SearchProviderType["GETMCP"] = "getmcp"; // 未来可以添加更多搜索提供者类型 })(SearchProviderType || (SearchProviderType = {})); /** * 搜索提供者工厂 * 负责创建和管理不同类型的搜索提供者 */ export class SearchProviderFactory { static providers = new Map(); /** * 获取搜索提供者实例 * 如果实例不存在,则创建新实例 */ static getProvider(type) { // 检查是否已有实例 if (this.providers.has(type)) { return this.providers.get(type); } // 创建新实例 let provider; switch (type) { case SearchProviderType.GETMCP: logger.info(`Creating new GetMcpSearchProvider instance`); provider = new GetMcpSearchProvider(); break; default: logger.warn(`Unknown provider type: ${type}, falling back to GetMcpSearchProvider`); provider = new GetMcpSearchProvider(); } // 缓存实例 this.providers.set(type, provider); return provider; } /** * 清除所有提供者实例 * 主要用于测试和重置 */ static clearProviders() { this.providers.clear(); logger.debug('All search providers cleared'); } }