Files
opsxshell/electron/ipc/index.ts
T
Logan.Li 484d850abd feat: v0.3.0 版本 - SSH终端、SFTP、端口转发功能实现
核心功能:
- SSH终端: 密码/密钥认证、XTerm.js终端、多主题配色、IP高亮
- SFTP管理: 双栏文件管理、上传下载、传输队列
- 端口转发: 本地/远程转发、SOCKS5动态代理、规则管理

架构改进:
- 拆分大型组件 (SFTPView/TabBar/Sidebar)
- 添加统一日志和错误处理
- 修复React严格模式下的终端黑屏问题

UI更新:
- 新增端口转发视图
- 更新UI预览文档
- 左侧栏右键菜单支持SFTP快捷打开
2026-04-06 01:20:47 +08:00

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'