Files
DeskClaw/electron/main/proxy.ts
2026-03-02 17:33:06 +08:00

23 lines
894 B
TypeScript

import { session } from 'electron';
import { getAllSettings, type AppSettings } from '../utils/store';
import { buildElectronProxyConfig } from '../utils/proxy';
import { logger } from '../utils/logger';
export async function applyProxySettings(
partialSettings?: Pick<AppSettings, 'proxyEnabled' | 'proxyServer' | 'proxyBypassRules'>
): Promise<void> {
const settings = partialSettings ?? await getAllSettings();
const config = buildElectronProxyConfig(settings);
await session.defaultSession.setProxy(config);
try {
await session.defaultSession.closeAllConnections();
} catch (error) {
logger.debug('Failed to close existing connections after proxy update:', error);
}
logger.info(
`Applied Electron proxy (${config.mode}${config.proxyRules ? `, server=${config.proxyRules}` : ''}${config.proxyBypassRules ? `, bypass=${config.proxyBypassRules}` : ''})`
);
}