MCPcopy Index your code
hub / github.com/ChatLab/ChatLab / applyProxyConfigToSession

Function applyProxyConfigToSession

apps/desktop/main/network/proxy.ts:126–180  ·  view source on GitHub ↗

* 将代理设置应用到 Electron session * 这会影响所有通过 Electron 发起的网络请求(包括主进程的 fetch)

(config: ProxyConfig)

Source from the content-addressed store, hash-verified

124 * 这会影响所有通过 Electron 发起的网络请求(包括主进程的 fetch)
125 */
126async function applyProxyConfigToSession(config: ProxyConfig): Promise<void> {
127 try {
128 switch (config.mode) {
129 case 'off':
130 // 直接连接,不使用代理
131 await session.defaultSession.setProxy({
132 mode: 'direct',
133 })
134 console.log('[Proxy] Proxy disabled (direct connection)')
135 break
136
137 case 'system':
138 // 使用系统代理设置
139 await session.defaultSession.setProxy({
140 mode: 'system',
141 })
142 console.log('[Proxy] Using system proxy')
143 break
144
145 case 'manual':
146 // 手动配置代理
147 if (config.url) {
148 const validation = validateProxyUrl(config.url)
149 if (validation.valid) {
150 await session.defaultSession.setProxy({
151 proxyRules: config.url,
152 })
153 console.log(`[Proxy] Manual proxy enabled: ${config.url}`)
154 } else {
155 // URL 无效,回退到系统代理
156 await session.defaultSession.setProxy({
157 mode: 'system',
158 })
159 console.log('[Proxy] Invalid manual proxy URL, falling back to system proxy')
160 }
161 } else {
162 // 没有填写 URL,回退到系统代理
163 await session.defaultSession.setProxy({
164 mode: 'system',
165 })
166 console.log('[Proxy] Manual proxy URL not configured, falling back to system proxy')
167 }
168 break
169
170 default:
171 // 未知模式,使用系统代理
172 await session.defaultSession.setProxy({
173 mode: 'system',
174 })
175 console.log('[Proxy] Unknown proxy mode, using system proxy')
176 }
177 } catch (error) {
178 console.error('[Proxy] Failed to set proxy:', error)
179 }
180}
181
182export function applyProxyToSession(): Promise<void> {
183 return proxyApplyQueue.apply(() => applyProxyConfigToSession(loadProxyConfig()))

Callers 2

applyProxyToSessionFunction · 0.85
testProxyConnectionFunction · 0.85

Calls 2

validateProxyUrlFunction · 0.85
errorMethod · 0.65

Tested by

no test coverage detected