MCPcopy Create free account
hub / github.com/ZToolsCenter/ZTools / setupIPC

Method setupIPC

src/main/api/plugin/http.ts:29–106  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

27 }
28
29 private setupIPC(): void {
30 // 设置请求头
31 ipcMain.on('http-set-headers', (event, headers: Record<string, string>) => {
32 try {
33 const runtimeNamespace = this.getPluginRuntimeNamespaceFromWebContents(event.sender)
34 if (!runtimeNamespace) {
35 event.returnValue = { success: false, error: '无法识别插件' }
36 return
37 }
38
39 // 保存请求头配置
40 this.pluginHeaders.set(runtimeNamespace, headers)
41
42 // 获取插件的session
43 const sess = event.sender.session
44
45 // 移除旧的拦截器(如果存在)
46 this.removeRequestInterceptor(runtimeNamespace, sess)
47
48 // 设置新的请求拦截器
49 const listener = this.setupRequestInterceptor(sess, headers)
50 if (listener) {
51 this.interceptors.set(runtimeNamespace, listener)
52 }
53
54 event.returnValue = { success: true }
55 } catch (error: unknown) {
56 console.error('[PluginHttp] 设置请求头失败:', error)
57 event.returnValue = {
58 success: false,
59 error: error instanceof Error ? error.message : '未知错误'
60 }
61 }
62 })
63
64 // 获取当前请求头配置
65 ipcMain.on('http-get-headers', (event) => {
66 try {
67 const runtimeNamespace = this.getPluginRuntimeNamespaceFromWebContents(event.sender)
68 if (!runtimeNamespace) {
69 event.returnValue = null
70 return
71 }
72
73 const headers = this.pluginHeaders.get(runtimeNamespace) || {}
74 event.returnValue = headers
75 } catch (error: unknown) {
76 console.error('[PluginHttp] 获取请求头失败:', error)
77 event.returnValue = null
78 }
79 })
80
81 // 清除请求头配置
82 ipcMain.on('http-clear-headers', (event) => {
83 try {
84 const runtimeNamespace = this.getPluginRuntimeNamespaceFromWebContents(event.sender)
85 if (!runtimeNamespace) {
86 event.returnValue = { success: false, error: '无法识别插件' }

Callers 1

initMethod · 0.95

Calls 5

onMethod · 0.80
getMethod · 0.65

Tested by

no test coverage detected