Files
ZenEcho b48e639490 feat: 引入共享类型与工具层,重构代码结构并优化用户体验
- 新增 `shared/` 目录,统一管理前后端共享的类型定义与工具函数,消除重复代码
- 重构 IPC 数据传输,使用 `toIpcSafeSnapshot` 确保序列化安全
- 新增系统托盘独立窗口 (`/tray` 路由) 与主窗口关闭行为设置,提升用户体验
- 优化 Sing-box 配置校验错误提示,增强可读性
- 修复订阅更新无新节点时的提示逻辑
- 更新项目依赖与构建配置,支持共享层路径别名 (`@shared`)
- 补充单元测试,完善国际化词条
2026-03-01 16:50:40 +08:00

68 lines
1.6 KiB
TypeScript

import type { NodeConfig } from './node'
import type { AccelNetworkMode, SessionNetworkTuningOptions } from './settings'
/**
* Sing-box DNS 配置选项
*/
export interface DnsConfigOptions {
mode?: 'secure' | 'system'
/** 主 DNS 服务器地址 */
primary?: string
/** 备用 DNS 服务器地址 */
secondary?: string
/** Bootstrap DNS(用于解析 DNS 服务器域名) */
bootstrap?: string
/** TUN 接口名称 */
tunInterfaceName?: string
/** 代理绕过列表 */
proxyBypassList?: string
/** 加速网络模式 */
accelNetworkMode?: AccelNetworkMode
/** 是否禁用 TUN */
disableTun?: boolean
/** 本地代理节点配置 */
localProxyNode?: NodeConfig
/** 是否严格使用指定本地代理节点 */
localProxyStrictNode?: boolean
/** 本地代理入站配置 */
localProxy?: {
enabled: boolean
port: number
}
/** 系统代理入站配置 */
systemProxy?: {
enabled: boolean
port: number
}
/** 会话级网络调优参数 */
sessionTuning?: SessionNetworkTuningOptions
}
/**
* Sing-box 配置结构
*/
export interface SingboxConfig {
log: {
level: string
timestamp: boolean
}
dns: {
servers: any[]
rules: any[]
final?: string
}
inbounds: any[]
outbounds: any[]
route: {
rules: any[]
rule_set?: any[]
auto_detect_interface: boolean
final?: string
}
experimental?: {
cache_file?: {
enabled: boolean
}
}
}