// src/bridge/featureBridge.js const { ipcMain } = require('electron'); const settingsService = require('../features/settings/settingsService'); const askService = require('../features/ask/askService'); const listenService = require('../features/listen/listenService'); module.exports = { // Renderer로부터의 요청을 수신 initialize() { ipcMain.handle('settings:getPresets', async () => { console.log('[FeatureBridge] settings:getPresets 호출됨'); return await settingsService.getPresets(); }); ipcMain.handle('settings:get-auto-update', async () => { console.log('[FeatureBridge] settings:get-auto-update 호출됨'); return await settingsService.getAutoUpdateSetting(); }); ipcMain.handle('settings:set-auto-update', async (event, isEnabled) => { console.log('[FeatureBridge] settings:set-auto-update 호출됨', isEnabled); return await settingsService.setAutoUpdateSetting(isEnabled); }); // New IPC handler for loadInitialData ipcMain.handle('settings:loadInitialData', async () => { console.log('[FeatureBridge] settings:loadInitialData called'); return await settingsService.loadInitialData(); }); console.log('[FeatureBridge] Initialized with settings handlers.'); ipcMain.handle('listen:changeSession', async (event, listenButtonText) => { console.log('[FeatureBridge] listen:changeSession from mainheader', listenButtonText); try { await listenService.handleListenRequest(listenButtonText); return { success: true }; } catch (error) { console.error('[FeatureBridge] listen:changeSession failed', error.message); return { success: false, error: error.message }; } }); }, // Renderer로 상태를 전송 sendAskProgress(win, progress) { win.webContents.send('feature:ask:progress', progress); }, };