@yuebai008/cli
Version:
Command line interface for rapid qg-minigame development
92 lines (85 loc) • 5.7 kB
JavaScript
;var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");_Object$defineProperty(exports, "__esModule", { value: true });exports.initServer = initServer;_Object$defineProperty(exports, "notifyUpdate", { enumerable: true, get: function get() {return _notify["default"];} });exports.stopServer = stopServer;var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));var _koa = _interopRequireDefault(require("koa"));
var _path = _interopRequireDefault(require("path"));
var _koaStatic = _interopRequireDefault(require("koa-static"));
var _http = _interopRequireDefault(require("http"));
var _internalIp = _interopRequireDefault(require("internal-ip"));
var _koaBodyparser = _interopRequireDefault(require("koa-bodyparser"));
var _qrcode = _interopRequireDefault(require("qrcode"));
var _koaRouter = _interopRequireDefault(require("koa-router"));
var _portfinder = _interopRequireDefault(require("portfinder"));
var _router = require("./router.js");
var _logger = require("./logger.js");
var _recordClient = require("./record-client.js");
var _notify = _interopRequireDefault(require("./notify.js"));
var _wsserver = require("./wsserver.js");
var _index = require("./adb/index.js");
var compress = require('koa-compress');
var server = null;function
initServer(_x) {return _initServer.apply(this, arguments);}function _initServer() {_initServer = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(args) {var app, route, port, ip, url;return _regenerator["default"].wrap(function _callee$(_context) {while (1) switch (_context.prev = _context.next) {case 0:
app = new _koa["default"]();
route = new _koaRouter["default"]();_context.next = 4;return (
_portfinder["default"].getPortPromise());case 4:port = _context.sent;
app.use((0, _koaBodyparser["default"])());
app.use(compress());
app.use((0, _koaStatic["default"])(_path["default"].resolve(__dirname, './client'), {
maxAge: 2592000000, // 缓存时间为一年
gzip: true,
setHeaders: function setHeaders(res) {
res.setHeader('Cache-Control', 'public, max-age=2592000');
res.setHeader('Expires', new Date((0, _now["default"])() + 2592000000).toUTCString());
}
}));
app.use(_logger.logger);
app.use(route.get('/', _router.indexRouter).routes());
app.use(route.get('/bundle', _router.bundleRouter).routes());
app.use(route.post('/poststdbg', _router.poststdbgRouter).routes());
app.use(route.get('/debug', _router.debugRouter).routes());
server = _http["default"].Server(app.callback());
beforeStart(server, app, port);
app.on('error', function (err, ctx) {
console.error('server error', err);
});
ip = _internalIp["default"].v4.sync();
url = "http://".concat(ip, ":").concat(port);
// 下面的log不能随便改,否则cocos IDE预览会有问题
server.listen(port, function () {
console.log("\u5730\u5740 ".concat(url));
console.log("\u82E5\u4E8C\u7EF4\u7801\u65E0\u6CD5\u8BC6\u522B\uFF0C\u53EF\u6253\u5F00\u4EE5\u4E0A\u5730\u5740\u5C1D\u8BD5~");
console.log('请确保手机与App Server处于相同网段!');
_qrcode["default"].toString(url, { type: 'terminal', small: true }, function (err, url) {
if (err) {
// Handle the error, e.g., log it or deal with it appropriately
console.error('Failed to generate QR code:', err);
return; // Early return to prevent further processing
}
console.log(url);
});
});return _context.abrupt("return",
url);case 20:case "end":return _context.stop();}}, _callee);}));return _initServer.apply(this, arguments);}
function stopServer() {
return new _promise["default"](function (resolve) {
if (!server) {
resolve({ stopServerError: 'no server' });
return;
}
try {
server.close(function (data) {
resolve({ stopServerError: data });
});
} catch (err) {
console.error("### App Server ### \u670D\u52A1\u5668\u5173\u95ED\u5931\u8D25: ".concat(err.message));
resolve({ stopServerError: err });
throw err;
}
});
}function
beforeStart(_x2, _x3, _x4) {return _beforeStart.apply(this, arguments);}function _beforeStart() {_beforeStart = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(server, app, port) {return _regenerator["default"].wrap(function _callee2$(_context2) {while (1) switch (_context2.prev = _context2.next) {case 0:_context2.next = 2;return (
(0, _wsserver.createSocketServer)(server, app));case 2:
(0, _index.createADBDebugger)({
pathClientLog: _recordClient.clientRecordPath,
localReversePort: port
}).then(function (data) {
app.context.adbDebugger = data;
})["catch"](function (err) {
console.error(err);
});case 3:case "end":return _context2.stop();}}, _callee2);}));return _beforeStart.apply(this, arguments);}