49 lines
1.0 KiB
JavaScript
49 lines
1.0 KiB
JavaScript
const ProxyPlugin = function (context) {
|
|
const { config, event, shell, log } = context
|
|
const api = {
|
|
async start () {
|
|
return api.setProxy()
|
|
},
|
|
|
|
async close () {
|
|
return api.unsetProxy()
|
|
},
|
|
|
|
async setProxy () {
|
|
const ip = '127.0.0.1'
|
|
const port = config.get().server.port
|
|
await shell.setSystemProxy({ ip, port })
|
|
log.info(`开启系统代理成功:${ip}:${port}`)
|
|
event.fire('status', { key: 'proxy.enabled', value: true })
|
|
return { ip, port }
|
|
},
|
|
|
|
async unsetProxy () {
|
|
try {
|
|
await shell.setSystemProxy()
|
|
event.fire('status', { key: 'proxy.enabled', vlaue: false })
|
|
log.info('关闭系统代理成功')
|
|
return true
|
|
} catch (err) {
|
|
log.error('关闭系统代理失败', err)
|
|
return false
|
|
}
|
|
}
|
|
}
|
|
return api
|
|
}
|
|
module.exports = {
|
|
key: 'proxy',
|
|
config: {
|
|
enabled: true,
|
|
name: '系统代理',
|
|
use: 'local',
|
|
other: []
|
|
},
|
|
status: {
|
|
enabled: false,
|
|
proxyTarget: ''
|
|
},
|
|
plugin: ProxyPlugin
|
|
}
|