/** * Settings IPC Handlers * 处理应用设置读写 */ import { ipcMain, IpcMainInvokeEvent } from 'electron' import type { DatabaseService } from '../services/database-service' // IPC channel names export const SETTINGS_CHANNELS = { GET: 'settings:get', SET: 'settings:set', } as const export interface SettingsIPCOptions { dbService: DatabaseService } export function registerSettingsIPCHandlers(options: SettingsIPCOptions): void { const { dbService } = options // Get setting ipcMain.handle(SETTINGS_CHANNELS.GET, async (_event: IpcMainInvokeEvent, key: string) => { try { const value = dbService.getSetting(key) return { success: true, value } } catch (error: unknown) { return { success: false, error: error instanceof Error ? error.message : String(error) } } }) // Set setting ipcMain.handle(SETTINGS_CHANNELS.SET, async (_event: IpcMainInvokeEvent, key: string, value: unknown) => { try { dbService.setSetting(key, value) return { success: true } } catch (error: unknown) { return { success: false, error: error instanceof Error ? error.message : String(error) } } }) }