configIpc.cjs 852 B

123456789101112131415161718192021222324
  1. const fs = require('node:fs');
  2. const path = require('node:path');
  3. const { ipcMain, shell } = require('electron');
  4. function registerConfigIpc({ configStore, aiService }) {
  5. ipcMain.handle('config:load', () => configStore.load());
  6. ipcMain.handle('config:save', (_event, config) => configStore.save(config));
  7. ipcMain.handle('config:list-models', (_event, config) => aiService.listModels(config));
  8. ipcMain.handle('config:open-config-folder', async () => {
  9. const configFolder = path.dirname(configStore.getConfigFilePath());
  10. fs.mkdirSync(configFolder, { recursive: true });
  11. const errorMessage = await shell.openPath(configFolder);
  12. if (errorMessage) {
  13. throw new Error(`打开配置文件夹失败:${errorMessage}`);
  14. }
  15. return { success: true, path: configFolder };
  16. });
  17. }
  18. module.exports = {
  19. registerConfigIpc,
  20. };