7303c785aa
* feat(MCPSettings): 为McpServerCard添加错误边界处理 在McpServerCard组件外层添加ErrorBoundary,防止组件内部错误导致整个页面崩溃 * feat(types): 添加 MCP 服务器配置的类型定义和验证函数 添加 MCP 服务器配置的 Zod schema 类型定义,包括服务器类型、配置和验证函数 将 MCPServer 的 type 字段更新为复用 McpServerType * feat(MCPSettings): 添加ErrorBoundary包装路由组件以捕获错误 * feat(types): 为McpServerConfigSchema添加url、headers和tags字段 添加服务器配置的URL地址、请求头配置和标签字段,以支持更灵活的服务器配置选项 * refactor(MCPSettings): 重构JSON解析逻辑为独立函数并使用zod验证 将原有的parseAndExtractServer函数重构为getServerFromJson,使用zod进行配置验证 移除重复的解析逻辑,简化代码结构 * feat(设置): 添加MCP服务器错误处理和详情展示功能 在MCP服务器卡片中添加错误边界处理,当服务器无效时显示错误提示和详情按钮 新增GeneralPopup组件用于展示错误详情 更新i18n翻译文件添加相关文本 * fix(MCPSettings): 修复导入服务器配置时的类型检查和错误处理 修正 getServerFromJson 返回类型定义,明确区分成功和错误状态 修复错误判断逻辑,使用 null 明确检查而非隐式转换 修复服务器名称存在时的错误提示,移除不必要的非空断言 * feat(MCPSettings): 添加临时测试用的无效服务器功能 添加一个临时测试按钮用于模拟添加无效服务器配置,方便测试错误处理流程 * feat(i18n): 添加错误处理页面的多语言翻译 添加"details"和"mcp.invalid"字段的翻译,用于错误处理页面 * fix(MCPSettings): 修复导入MCP服务器配置时的JSON解析和验证逻辑 将JSON解析和验证拆分为两个步骤,分别捕获解析和验证错误并记录日志 修复服务器配置名称赋值逻辑,使用正确的键名 * refactor(MCPSettings): 替换删除图标为DeleteIcon组件 * feat(MCPSettings): 在McpServerCard中添加错误详情点击展示功能 - 提取错误信息格式化逻辑到变量errorDetails - 添加点击卡片展示完整错误详情的功能 - 统一按钮点击事件处理,阻止事件冒泡 - 优化错误展示样式,增加内边距和文字省略效果 * refactor(utils): 移除错误处理模块中的日志记录 * docs(MCPSettings): 移除AddMcpServerModal中多余的t参数注释 * test(utils): 移除对console.error的冗余断言 * fix(types): 将args字段从必需改为可选并设置默认值 修改McpServerConfigSchema中的args字段,使其从必需字段变为可选字段并设置默认空数组 * fix(types): 将服务器配置的command和args字段改为可选 command字段现在默认为空字符串,args字段默认为空数组,以提供更灵活的配置方式 * feat(types): 扩展 MCP 服务器配置类型,新增 baseUrl 等字段 添加 baseUrl、description、registryUrl 和 provider 字段以增强服务器配置能力 * fix(MCPSettings): 修复导入MCP服务器时未设置名称的问题 当导入MCP服务器配置时,仅在名称未设置时使用key作为默认名称 * refactor(types): 重构 MCP 相关类型定义并添加更多配置字段 将 MCPConfigSample 从接口改为 zod 推断类型 为 McpServerConfigSchema 添加更多可选配置字段 重新组织 MCPServer 接口字段并添加内部使用注释 * refactor(types): 将 MCP 相关类型定义提取到独立文件 将 MCP 服务器配置相关的 Zod schema 和类型定义从 index.ts 移动到新的 mcp.ts 文件 保持原有功能不变,提高代码组织性和可维护性 * docs(types): 更新MCP服务器内部字段的注释说明 添加关于JSON数据格式暴露的额外警告信息 * feat(types): 添加 strip 工具函数用于移除对象属性 添加一个通用的 strip 工具函数,用于从对象中移除指定的属性并返回新对象 * refactor(types): 调整MCPServer接口和strip函数参数格式 将MCPServer接口中的disabledTools和disabledAutoApproveTools字段移动到文档注释下方 修改strip函数参数从可变参数改为数组形式 更新McpServerConfigSchema字段的默认值和描述 * feat(mcp): 改进 MCP 配置验证并添加 Zod 错误格式化功能 添加 formatZodError 工具函数用于格式化 Zod 验证错误 修改 MCP 配置验证逻辑,使用 safeValidateMcpConfig 替代直接验证 允许 inMemory 类型服务器并添加额外校验规则 更新相关组件使用新的验证方式和错误处理 * refactor(MCPSettings): 移除临时测试代码和无效server添加按钮 * fix(MCPSettings): 修复EditMcpJsonPopup中json错误显示样式问题
31 lines
668 B
TypeScript
31 lines
668 B
TypeScript
/**
|
|
* 判断字符串是否是 json 字符串
|
|
* @param {any} str 字符串
|
|
* @returns {boolean} 是否为 json 字符串
|
|
*/
|
|
export function isJSON(str: any): boolean {
|
|
if (typeof str !== 'string') {
|
|
return false
|
|
}
|
|
|
|
try {
|
|
return typeof JSON.parse(str) === 'object'
|
|
} catch (e) {
|
|
return false
|
|
}
|
|
}
|
|
|
|
// TODO: unknown 代替 any
|
|
/**
|
|
* 尝试解析 JSON 字符串,如果解析失败则返回 null。
|
|
* @param {string} str 要解析的字符串
|
|
* @returns {any | null} 解析后的对象,解析失败返回 null
|
|
*/
|
|
export function parseJSON(str: string): any | null {
|
|
try {
|
|
return JSON.parse(str)
|
|
} catch (e) {
|
|
return null
|
|
}
|
|
}
|