UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

92 lines (85 loc) 5.7 kB
"use strict";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);}