- 新增 `shared/` 目录,统一管理前后端共享的类型定义与工具函数,消除重复代码 - 重构 IPC 数据传输,使用 `toIpcSafeSnapshot` 确保序列化安全 - 新增系统托盘独立窗口 (`/tray` 路由) 与主窗口关闭行为设置,提升用户体验 - 优化 Sing-box 配置校验错误提示,增强可读性 - 修复订阅更新无新节点时的提示逻辑 - 更新项目依赖与构建配置,支持共享层路径别名 (`@shared`) - 补充单元测试,完善国际化词条
14 lines
380 B
TypeScript
14 lines
380 B
TypeScript
/**
|
|
* 安全地将对象转换为可序列化的纯对象
|
|
*
|
|
* 用于确保通过 IPC 传输的数据不含不可序列化的内容(如 Proxy、函数等)。
|
|
*/
|
|
export function toIpcSafeSnapshot(snapshot: unknown): any {
|
|
if (snapshot == null) return undefined
|
|
try {
|
|
return JSON.parse(JSON.stringify(snapshot))
|
|
} catch {
|
|
return undefined
|
|
}
|
|
}
|