From 45c63a7dccbc32602da99afe8b2967f053b78f8e Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Sun, 8 Nov 2020 01:59:00 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=B0=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/package.json | 2 +- packages/core/src/expose.js | 66 ++++++++++++++------------ packages/core/src/shell/shell.js | 2 +- packages/core/start.js | 22 --------- packages/core/start/index.js | 29 +++++++++++ packages/core/{ => start}/mitmproxy.js | 0 packages/core/start/user_config.json5 | 7 +++ 7 files changed, 73 insertions(+), 55 deletions(-) delete mode 100644 packages/core/start.js create mode 100644 packages/core/start/index.js rename packages/core/{ => start}/mitmproxy.js (100%) create mode 100644 packages/core/start/user_config.json5 diff --git a/packages/core/package.json b/packages/core/package.json index 78d8bf36..9bd8bcf3 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -9,7 +9,7 @@ "license": "MPL-2.0", "private": false, "scripts": { - "start": "node start.js", + "start": "node ./start", "serve": "vue-cli-service serve", "build": "vue-cli-service build", "lint": "vue-cli-service lint" diff --git a/packages/core/src/expose.js b/packages/core/src/expose.js index 365eca8f..8f8c39d3 100644 --- a/packages/core/src/expose.js +++ b/packages/core/src/expose.js @@ -53,22 +53,26 @@ module.exports = { console.error('开启系统代理失败:', err) } } - const plugins = [] - for (const key in plugin) { - if (conf.plugin[key].enabled) { - const start = async () => { - try { - await plugin[key].start() - console.log(`插件【${key}】已启动`) - } catch (err) { - console.log(`插件【${key}】启动失败`, err) + try { + const plugins = [] + for (const key in plugin) { + if (conf.plugin[key].enabled) { + const start = async () => { + try { + await plugin[key].start() + console.log(`插件【${key}】已启动`) + } catch (err) { + console.log(`插件【${key}】启动失败`, err) + } } + plugins.push(start()) } - plugins.push(start()) } - } - if (plugins && plugins.length > 0) { - await Promise.all(plugins) + if (plugins && plugins.length > 0) { + await Promise.all(plugins) + } + } catch (err) { + console.error('开启插件失败:', err) } }, shutdown: async () => { @@ -90,25 +94,25 @@ module.exports = { if (plugins.length > 0) { await Promise.all(plugins) } - - if (status.proxy.enabled) { - try { - await proxy.close() - console.log('系统代理已关闭') - } catch (err) { - console.log('系统代理关闭失败', err) - } - } - if (status.server.enabled) { - try { - await server.close() - console.log('代理服务已关闭') - } catch (err) { - console.log('代理服务关闭失败', err) - } - } } catch (error) { - console.log(error) + console.error('插件关闭失败'.error) + } + + if (status.proxy.enabled) { + try { + await proxy.close() + console.log('系统代理已关闭') + } catch (err) { + console.error('系统代理关闭失败', err) + } + } + if (status.server.enabled) { + try { + await server.close() + console.log('代理服务已关闭') + } catch (err) { + console.error('代理服务关闭失败', err) + } } }, status: { diff --git a/packages/core/src/shell/shell.js b/packages/core/src/shell/shell.js index 84e8d87f..c374bd1f 100644 --- a/packages/core/src/shell/shell.js +++ b/packages/core/src/shell/shell.js @@ -78,7 +78,7 @@ function childExec (composeCmds) { console.error('cmd 命令执行错误:', composeCmds, error, stderr) reject(error) } else { - console.log('cmd 命令完成:', stdout) + // console.log('cmd 命令完成:', stdout) resolve(stdout) } // console.log('关闭 cmd') diff --git a/packages/core/start.js b/packages/core/start.js deleted file mode 100644 index f1a98f9e..00000000 --- a/packages/core/start.js +++ /dev/null @@ -1,22 +0,0 @@ -const DevSidercar = require('.') -const fs = require('fs') -// require('json5/lib/register') -// const config = require('../../config/index.json5') -// 启动服务 -const mitmproxyPath = './mitmproxy' -async function startup () { - const banner = fs.readFileSync('./banner.txt') - console.log(banner.toString()) - await DevSidercar.api.startup({ mitmproxyPath }) - console.log('dev-sidecar 已启动') -} - -async function onClose () { - console.log('on sigint ') - await DevSidercar.api.shutdown() - console.log('on closed ') - process.exit(0) -} -process.on('SIGINT', onClose) - -startup() diff --git a/packages/core/start/index.js b/packages/core/start/index.js new file mode 100644 index 00000000..b21f9756 --- /dev/null +++ b/packages/core/start/index.js @@ -0,0 +1,29 @@ +const JSON5 = require('json5') +const DevSidecar = require('../index') +const fs = require('fs') +// 启动服务 +const mitmproxyPath = './start/mitmproxy' +async function startup () { + const banner = fs.readFileSync('./banner.txt') + console.log(banner.toString()) + + const configPath = './start/user_config.json5' + if (fs.existsSync(configPath)) { + const file = fs.readFileSync(configPath) + const userConfig = JSON5.parse(file.toString()) + DevSidecar.api.config.set(userConfig) + } + + await DevSidecar.api.startup({ mitmproxyPath }) + console.log('dev-sidecar 已启动') +} + +async function onClose () { + console.log('on sigint ') + await DevSidecar.api.shutdown() + console.log('on closed ') + process.exit(0) +} +process.on('SIGINT', onClose) + +startup() diff --git a/packages/core/mitmproxy.js b/packages/core/start/mitmproxy.js similarity index 100% rename from packages/core/mitmproxy.js rename to packages/core/start/mitmproxy.js diff --git a/packages/core/start/user_config.json5 b/packages/core/start/user_config.json5 new file mode 100644 index 00000000..e6c27525 --- /dev/null +++ b/packages/core/start/user_config.json5 @@ -0,0 +1,7 @@ +{ + plugin: { + node: { + enabled: true + } + } +}