UNPKG

mockm

Version:

Analog interface server, painless parallel development of front and back ends.

93 lines (75 loc) 2.32 kB
#!/usr/bin/env node "use strict"; var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault"); var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes")); var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise")); var _every = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/every")); var _context; const { logHelper, print } = require(`./util/log.js`); process.setMaxListeners(0); // 不限制监听数量 process.send = process.send || new Function(); (0, _includes.default)(_context = process.argv).call(_context, `--log-line`) && logHelper(); const util = require(`./util/index.js`); new _promise.default(async () => { global.config = await require(`./config.js`); process.send({ type: 'process:msg', data: { action: 'config', data: global.config } }); util.tool.file.fileChange([global.config._configFile, ...global.config.watch], files => process.send({ type: 'process:msg', data: { action: 'reboot', data: files } })); const { tool, business } = util; const portIsOkRes = await tool.os.portIsOk([global.config.port, global.config.testPort, global.config.replayPort]).catch(err => console.log(`err`, err)); if ((0, _every.default)(portIsOkRes).call(portIsOkRes, item => item === true) === false) { print(`Port is occupied:`, portIsOkRes); process.exit(); } const { isIp, hostname } = global.config._proxyTargetInfo; if (global.config.hostMode && isIp === false) { await tool.os.sysHost(`set`, { hostname }); tool.os.clearProcess({ hostname }); } else { tool.os.clearProcess(); } const { initHandle, customApi } = business; initHandle().init(); await business.pluginRun(`hostFileCreated`); const { allRoute, allRouteTest } = await customApi(); global.HTTPHISTORY = util.tool.file.fileStore(global.config._httpHistory).get(); // 请求历史 global.STORE = tool.file.fileStore(global.config._store); // 自动注入下次调试请求的数据 require(`./proxy.js`)({ allRoute }); require(`./test.js`)(); require(`./replay.js`)({ allRoute, allRouteTest }); });