核心功能: - SSH终端: 密码/密钥认证、XTerm.js终端、多主题配色、IP高亮 - SFTP管理: 双栏文件管理、上传下载、传输队列 - 端口转发: 本地/远程转发、SOCKS5动态代理、规则管理 架构改进: - 拆分大型组件 (SFTPView/TabBar/Sidebar) - 添加统一日志和错误处理 - 修复React严格模式下的终端黑屏问题 UI更新: - 新增端口转发视图 - 更新UI预览文档 - 左侧栏右键菜单支持SFTP快捷打开
69 lines
2.2 KiB
TypeScript
69 lines
2.2 KiB
TypeScript
/**
|
|
* IPC Handler Registration
|
|
* 统一注册所有 IPC 处理器
|
|
*/
|
|
|
|
import type { SSHService } from '../services/ssh-service'
|
|
import type { DatabaseService } from '../services/database-service'
|
|
import type { ZmodemService } from '../services/zmodem-service'
|
|
import type { BrowserWindow } from 'electron'
|
|
import { createLogger } from '../utils/logger'
|
|
|
|
const logger = createLogger('IPC')
|
|
|
|
import { registerSSHIPCHandlers } from './ssh.ipc'
|
|
import { registerSFTPIPCHandlers } from './sftp.ipc'
|
|
import { registerSessionIPCHandlers } from './session.ipc'
|
|
import { registerSettingsIPCHandlers } from './settings.ipc'
|
|
import { registerDialogIPCHandlers } from './dialog.ipc'
|
|
import { registerFileIPCHandlers } from './file.ipc'
|
|
import { registerZmodemIPCHandlers } from './zmodem.ipc'
|
|
import { registerAppIPCHandlers } from './app.ipc'
|
|
|
|
export interface IPCOptions {
|
|
sshService: SSHService
|
|
databaseService: DatabaseService
|
|
zmodemService: ZmodemService
|
|
mainWindowGetter: () => BrowserWindow | null
|
|
}
|
|
|
|
export function registerAllIPCHandlers(options: IPCOptions): void {
|
|
const { sshService, databaseService, zmodemService, mainWindowGetter } = options
|
|
|
|
// SSH handlers
|
|
registerSSHIPCHandlers({ sshService, zmodemService, mainWindowGetter })
|
|
|
|
// SFTP handlers
|
|
registerSFTPIPCHandlers({ sshService, mainWindowGetter })
|
|
|
|
// Session handlers
|
|
registerSessionIPCHandlers({ dbService: databaseService })
|
|
|
|
// Settings handlers
|
|
registerSettingsIPCHandlers({ dbService: databaseService })
|
|
|
|
// Dialog handlers
|
|
registerDialogIPCHandlers({ mainWindowGetter })
|
|
|
|
// File handlers
|
|
registerFileIPCHandlers()
|
|
|
|
// Zmodem handlers
|
|
registerZmodemIPCHandlers({ sshService, zmodemService, mainWindowGetter })
|
|
|
|
// App handlers
|
|
registerAppIPCHandlers()
|
|
|
|
logger.info('[IPC] All handlers registered')
|
|
}
|
|
|
|
// Re-export channel constants for external use
|
|
export { SSH_CHANNELS } from './ssh.ipc'
|
|
export { SFTP_CHANNELS } from './sftp.ipc'
|
|
export { SESSION_CHANNELS } from './session.ipc'
|
|
export { SETTINGS_CHANNELS } from './settings.ipc'
|
|
export { DIALOG_CHANNELS } from './dialog.ipc'
|
|
export { FILE_CHANNELS } from './file.ipc'
|
|
export { ZMODEM_CHANNELS } from './zmodem.ipc'
|
|
export { APP_CHANNELS } from './app.ipc'
|