@hap-toolkit/server 1.9.17-alpha.12 → 1.9.17-alpha.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/config/index.js +1 -1
- package/lib/index.js +1 -1
- package/lib/preview/create-router.js +1 -1
- package/lib/preview/views/page.html +1 -0
- package/lib/server.js +1 -1
- package/package.json +5 -5
package/lib/config/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _path=_interopRequireDefault(require("path"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const pathToolkit=_path.default.resolve(__dirname,"../../..");var _default={defaults:{pathToolkit:pathToolkit},options:{moduleList:[]}};exports.default=_default;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.browerOptions=void 0;var _path=_interopRequireDefault(require("path"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const pathToolkit=_path.default.resolve(__dirname,"../../..");var _default={defaults:{pathToolkit:pathToolkit},options:{moduleList:[]}};exports.default=_default;let browerOptions={options:{}};exports.browerOptions=browerOptions;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"beforeStart",{enumerable:!0,get:function(){return _preview.beforeStart}}),Object.defineProperty(exports,"createPreview",{enumerable:!0,get:function(){return _preview.createPreview}}),exports.default=void 0,exports.launchServer=launchServer,Object.defineProperty(exports,"remotePreview",{enumerable:!0,get:function(){return _remotePreview.remotePreview}}),exports.stopServer=stopServer;var _sharedUtils=require("@hap-toolkit/shared-utils"),_config=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"beforeStart",{enumerable:!0,get:function(){return _preview.beforeStart}}),Object.defineProperty(exports,"createPreview",{enumerable:!0,get:function(){return _preview.createPreview}}),exports.default=void 0,exports.launchServer=launchServer,Object.defineProperty(exports,"remotePreview",{enumerable:!0,get:function(){return _remotePreview.remotePreview}}),exports.stopServer=stopServer,exports.updateWebViewOptions=updateWebViewOptions;var _sharedUtils=require("@hap-toolkit/shared-utils"),_config=_interopRequireWildcard(require("./config")),_server=require("./server"),_remotePreview=require("./preview/remote-preview"),_preview=require("./preview");function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function(e){return e?t:r})(e)}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var o={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if("default"!==n&&Object.prototype.hasOwnProperty.call(e,n)){var a=i?Object.getOwnPropertyDescriptor(e,n):null;a&&(a.get||a.set)?Object.defineProperty(o,n,a):o[n]=e[n]}return o.default=e,t&&t.set(e,o),o}function launchServer(e){try{_sharedUtils.colorconsole.attach(e.log),Object.assign(_config.default.options,e),(0,_sharedUtils.setCustomConfig)(e.cwd,e.port)}catch(e){return Promise.reject(e)}return(0,_server.launch)(_config.default)}function stopServer(){return(0,_server.stop)()}function updateWebViewOptions(e){_config.browerOptions.options=Object.assign(_config.browerOptions.options,e)}var _default={launchServer:launchServer,remotePreview:_remotePreview.remotePreview,stopServer:stopServer,beforeStart:_preview.beforeStart,createPreview:_preview.createPreview};exports.default=_default;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=createRouter;var _fs=_interopRequireDefault(require("fs")),_path=_interopRequireDefault(require("path")),_stream=require("stream"),_util=_interopRequireDefault(require("util")),_koaRouter=_interopRequireDefault(require("koa-router")),_koaSend=_interopRequireDefault(require("koa-send")),_jszip=_interopRequireDefault(require("jszip")),_sharedUtils=require("@hap-toolkit/shared-utils"),_shared=require("./shared");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{PACKAGER_BUILD_DONE:PACKAGER_BUILD_DONE,PACKAGER_WATCH_START:PACKAGER_WATCH_START,PACKAGER_BUILD_PROGRESS:PACKAGER_BUILD_PROGRESS}=_sharedUtils.eventBus,allowFiles=["sitemap.json","app-chunks.json","page-chunks.json"];function genWebJsUrl(e){return`https://statres.quickapp.cn/quickapp/ide/web${e=e?"-"+e:""}.js`}function jsonParse(e){try{return JSON.parse(e)}catch(e){console.error("Json Parse Error :",e)}}async function createRouter(e){const t=_util.default.debuglog("server.render"),r=new _koaRouter.default;let s=!1;t("preview target",e);_fs.default.existsSync(e)&&(s=_fs.default.lstatSync(e).isFile());const a=_util.default.promisify(_fs.default.readFile),n=_path.default.resolve(__dirname,"./views/page.html"),i=_path.default.resolve(__dirname,"./views/404.html"),o=new Map;let u,l,d;if(s){const t=await a(e);d=await _jszip.default.loadAsync(t),u=async function(){const t=d.file("manifest.json");if(!t)throw new _sharedUtils.KnownError(`从 ${e} 读取 manifest.json 失败!`);return t.async("string").then(jsonParse)},l=function(e){return null!==d.file(e)}}else{const t=_path.default.resolve(e,"manifest.json");u=async function(){let r,s=o.get(t);if(s&&Date.now()-s.timestamp<2e3)r=s.payload;else{if(!_fs.default.existsSync(e))throw new _sharedUtils.KnownError("找不到 build 目录");if(!_fs.default.existsSync(t))throw new _sharedUtils.KnownError("找不到 build 目录下的 manifest.json");r=jsonParse(await a(t)),o.set(t,{timestamp:Date.now(),payload:r})}return r},l=function(t){return _fs.default.existsSync(_path.default.resolve(e,t))}}return r.get("/__stream",(async function(e){const t=new _stream.PassThrough;function r(){e.req.destroyed||(t.write("event: watch\n"),t.write("data: ''\n\n"))}function s(r){e.req.destroyed||(t.write("event: progress\n"),t.write(`data: ${JSON.stringify(r)}\n\n`))}function a(){if(!e.req.destroyed){const e=_sharedUtils.logger.get(),r=(0,_sharedUtils.getLaunchPage)(),s={error:escape((0,_shared.removeAnsiColor)(e)),page:r};t.write("event: reload\n"),t.write(`data: ${JSON.stringify(s)}\n\n`)}}function n(){e.res.end(),t.end(),_sharedUtils.eventBus.off&&(_sharedUtils.eventBus.off(PACKAGER_WATCH_START,r),_sharedUtils.eventBus.off(PACKAGER_BUILD_PROGRESS,s),_sharedUtils.eventBus.off(PACKAGER_BUILD_DONE,a))}_sharedUtils.eventBus.on(PACKAGER_WATCH_START,r),_sharedUtils.eventBus.on(PACKAGER_BUILD_PROGRESS,s),_sharedUtils.eventBus.on(PACKAGER_BUILD_DONE,a),e.req.on("close",n),e.req.on("finish",n),e.req.on("error",n),e.type="text/event-stream",e.res.connection.setTimeout(0),t.write("event: start\n"),t.write("data: waing for signal\n\n"),e.body=t})),r.get("/",(async function(e,r){const s=await u();if(s&&s.router&&s.router.entry){t("preview home","entry",s.router.entry);const r=(0,_sharedUtils.getLaunchPage)()||s.router.entry;e.redirect(`/preview/${r}`)}else await r()})),r.get("/*",(async function(e,r){const s=await u(),a=await async function(e){let t={};if(e&&e.router&&(e.router.pages||e.router.widgets)){const r=e.router.pages||{},s=e.router.widgets||{},a=Object.keys(r),n=Object.keys(s);a.concat(n).forEach((e=>{const a=(0,_shared.trimSlash)(e),n=r[e]||s[e],i=(0,_shared.trimSlash)(n.component);t[a]=`${e}/${i}.js`}))}else new _sharedUtils.KnownError("未配置页面路由信息").__KNOWN=!0;return t}(s),o=Object.keys(a);let d=(0,_shared.trimSlash)(e.path);if(t("requestRoute",d,e.appRoutes),o.indexOf(d)>-1){const t=d in(s.router.widgets||{})?"card":"app",r=a[d],i=JSON.parse(process.env.VSCODE_NLS_CONFIG||'{"locale":"zh-CN"}').locale,o=await(0,_shared.renderPage)(n,{title:s.name,routeName:d,routes:JSON.stringify(a),type:t,script:r,scriptNotFound:!l(r),webJsUrl:genWebJsUrl(e.conf.options.webVersion),language:i});e.type="text/html",e.body=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=createRouter;var _fs=_interopRequireDefault(require("fs")),_path=_interopRequireDefault(require("path")),_stream=require("stream"),_util=_interopRequireDefault(require("util")),_koaRouter=_interopRequireDefault(require("koa-router")),_koaSend=_interopRequireDefault(require("koa-send")),_jszip=_interopRequireDefault(require("jszip")),_config=require("../config"),_sharedUtils=require("@hap-toolkit/shared-utils"),_shared=require("./shared");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{PACKAGER_BUILD_DONE:PACKAGER_BUILD_DONE,PACKAGER_WATCH_START:PACKAGER_WATCH_START,PACKAGER_BUILD_PROGRESS:PACKAGER_BUILD_PROGRESS}=_sharedUtils.eventBus,allowFiles=["sitemap.json","app-chunks.json","page-chunks.json"];function genWebJsUrl(e){return`https://statres.quickapp.cn/quickapp/ide/web${e=e?"-"+e:""}.js`}function jsonParse(e){try{return JSON.parse(e)}catch(e){console.error("Json Parse Error :",e)}}async function createRouter(e){const t=_util.default.debuglog("server.render"),r=new _koaRouter.default;let s=!1;t("preview target",e);_fs.default.existsSync(e)&&(s=_fs.default.lstatSync(e).isFile());const a=_util.default.promisify(_fs.default.readFile),n=_path.default.resolve(__dirname,"./views/page.html"),i=_path.default.resolve(__dirname,"./views/404.html"),o=new Map;let u,l,d;if(s){const t=await a(e);d=await _jszip.default.loadAsync(t),u=async function(){const t=d.file("manifest.json");if(!t)throw new _sharedUtils.KnownError(`从 ${e} 读取 manifest.json 失败!`);return t.async("string").then(jsonParse)},l=function(e){return null!==d.file(e)}}else{const t=_path.default.resolve(e,"manifest.json");u=async function(){let r,s=o.get(t);if(s&&Date.now()-s.timestamp<2e3)r=s.payload;else{if(!_fs.default.existsSync(e))throw new _sharedUtils.KnownError("找不到 build 目录");if(!_fs.default.existsSync(t))throw new _sharedUtils.KnownError("找不到 build 目录下的 manifest.json");r=jsonParse(await a(t)),o.set(t,{timestamp:Date.now(),payload:r})}return r},l=function(t){return _fs.default.existsSync(_path.default.resolve(e,t))}}return r.get("/__stream",(async function(e){const t=new _stream.PassThrough;function r(){e.req.destroyed||(t.write("event: watch\n"),t.write("data: ''\n\n"))}function s(r){e.req.destroyed||(t.write("event: progress\n"),t.write(`data: ${JSON.stringify(r)}\n\n`))}function a(){if(!e.req.destroyed){const e=_sharedUtils.logger.get(),r=(0,_sharedUtils.getLaunchPage)(),s={error:escape((0,_shared.removeAnsiColor)(e)),page:r};t.write("event: reload\n"),t.write(`data: ${JSON.stringify(s)}\n\n`)}}function n(){e.res.end(),t.end(),_sharedUtils.eventBus.off&&(_sharedUtils.eventBus.off(PACKAGER_WATCH_START,r),_sharedUtils.eventBus.off(PACKAGER_BUILD_PROGRESS,s),_sharedUtils.eventBus.off(PACKAGER_BUILD_DONE,a))}_sharedUtils.eventBus.on(PACKAGER_WATCH_START,r),_sharedUtils.eventBus.on(PACKAGER_BUILD_PROGRESS,s),_sharedUtils.eventBus.on(PACKAGER_BUILD_DONE,a),e.req.on("close",n),e.req.on("finish",n),e.req.on("error",n),e.type="text/event-stream",e.res.connection.setTimeout(0),t.write("event: start\n"),t.write("data: waing for signal\n\n"),e.body=t})),r.get("/",(async function(e,r){const s=await u();if(s&&s.router&&s.router.entry){t("preview home","entry",s.router.entry);const r=(0,_sharedUtils.getLaunchPage)()||s.router.entry;e.redirect(`/preview/${r}`)}else await r()})),r.get("/*",(async function(e,r){const s=await u(),a=await async function(e){let t={};if(e&&e.router&&(e.router.pages||e.router.widgets)){const r=e.router.pages||{},s=e.router.widgets||{},a=Object.keys(r),n=Object.keys(s);a.concat(n).forEach((e=>{const a=(0,_shared.trimSlash)(e),n=r[e]||s[e],i=(0,_shared.trimSlash)(n.component);t[a]=`${e}/${i}.js`}))}else new _sharedUtils.KnownError("未配置页面路由信息").__KNOWN=!0;return t}(s),o=Object.keys(a);let d=(0,_shared.trimSlash)(e.path);if(t("requestRoute",d,e.appRoutes),o.indexOf(d)>-1){const t=d in(s.router.widgets||{})?"card":"app",r=a[d],i=JSON.parse(process.env.VSCODE_NLS_CONFIG||'{"locale":"zh-CN"}').locale,o=_config.browerOptions.options.mediaQueryParams||{},u=await(0,_shared.renderPage)(n,{title:s.name,routeName:d,routes:JSON.stringify(a),type:t,script:r,scriptNotFound:!l(r),webJsUrl:genWebJsUrl(e.conf.options.webVersion),language:i,mediaQueryParams:JSON.stringify(o)});e.type="text/html",e.body=u}else if(await r(),404===e.status){if(d.endsWith(".js"))e.type="text/javascript",e.body=`/* 404 */console.log(new Error('找不到 ${d}'))`;else{const t=await(0,_shared.renderPage)(i,{message:`找不到 /preview/${d}`});e.type="text/html",e.body=t}e.status=404}})),s?r.get("/*",(async function(e,t){let r=(0,_shared.trimSlash)(e.path);const s=d.file(r);if(allowFiles.includes(r))return e.status=200,void(s&&(e.body=await s.nodeStream()));s?e.body=await s.nodeStream():(e.status=404,await t())})):r.get("/*",(async function(t,r){let s=(0,_shared.trimSlash)(t.path);if(allowFiles.includes(s)){const r=_path.default.join(e,s);if(_fs.default.existsSync(r))try{const e=require(r);t.type="json",t.body=e}catch(e){}t.status=200}else try{await(0,_koaSend.default)(t,s,{root:e})}catch(e){if(404!==e.status)throw console.error("Build Static File Error",e),e;await r()}})),r}
|
|
2
2
|
//# sourceMappingURL=create-router.js.map
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
--><!DOCTYPE html><html><head><meta charset="utf-8"><title>{{ title }}</title><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><meta name="apple-touch-fullscreen" content="yes"><meta name="format-detection" content="telephone=no, email=no"><meta name="referrer" content="no-referrer"><style>#mask{position:fixed;top:0;bottom:0;left:0;right:0;background:rgba(42,43,46,.9);padding:.8rem .27rem .27rem .27rem;z-index:1002}#btn{width:.67rem;height:.67rem;border:.04rem solid #ccc;border-radius:50%;color:#ccc;line-height:.59rem;font-size:.67rem;text-align:center;margin:auto}#text{height:95%;color:#f60;font-size:.35rem;white-space:break-spaces;word-break:break-word;overflow:auto;margin-top:.27rem}#text::-webkit-scrollbar{display:none}#loading{position:fixed;top:0;bottom:0;left:0;right:0;background:url(/preview-static/loading.gif) no-repeat center;background-size:15%;background-position:center;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:1001}.dark{background-color:#252526!important;color:rgba(255,255,255,.8)}.light{background-color:#fff!important;color:rgba(0,0,0,.8)}#loading:after{display:block;font-size:.45rem;transform:translateY(200%)}#progress-bar{position:fixed;top:55%;width:100%;font-size:.45rem;text-align:center;z-index:1002}</style><script src="hap-preview://index.js"></script><!-- https://statres.quickapp.cn/quickapp/ide/web.js --><script src="{{webJsUrl}}"></script><script type="text/javascript">window.Hap||document.write('<script src="/preview-static/web.js"><\/script>')</script><script type="text/javascript">var base = '/preview'
|
|
5
5
|
var type = '{{ type }}'
|
|
6
6
|
window.language = `{{language}}`
|
|
7
|
+
window.mediaQueryParams = JSON.parse(`{{mediaQueryParams}}`)
|
|
7
8
|
;(function preview() {
|
|
8
9
|
var routeName = '{{ routeName }}'
|
|
9
10
|
Hap.init({
|
package/lib/server.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.launch=launch,exports.stop=stop;var _http=_interopRequireDefault(require("http")),_koa=_interopRequireDefault(require("koa")),_opn=_interopRequireDefault(require("opn")),_portfinder=_interopRequireDefault(require("portfinder")),_sharedUtils=require("@hap-toolkit/shared-utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,o=new WeakMap;return(_getRequireWildcardCache=function(e){return e?o:r})(e)}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var o=_getRequireWildcardCache(r);if(o&&o.has(e))return o.get(e);var t={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if("default"!==n&&Object.prototype.hasOwnProperty.call(e,n)){var l=s?Object.getOwnPropertyDescriptor(e,n):null;l&&(l.get||l.set)?Object.defineProperty(t,n,l):t[n]=e[n]}return t.default=e,o&&o.set(e,t),t}const moduler=[require("@hap-toolkit/debugger")];let server=null;async function launch(e){return new Promise((async r=>{try{"debug"!==_sharedUtils.globalConfig.command&&moduler.push((await Promise.resolve().then((()=>_interopRequireWildcard(require("@hap-toolkit/packager"))))).router,require("./preview/index.js"));const o=new _koa.default;let t=_sharedUtils.globalConfig.server.port;t=await _portfinder.default.getPortPromise({port:t}),Object.assign(e.defaults,{serverPort:t}),o.context.conf=e;const{clearRecords:s,openBrowser:n}=e.options;if(s){const{clientRecordPath:e}=_sharedUtils.globalConfig;(0,_sharedUtils.clearProjectRecord)(e)}moduler.forEach((e=>{e.applyRouter&&o.use(e.applyRouter(o).routes())})),server=_http.default.Server(o.callback()),o.server=server;for(const e of moduler)e.beforeStart&&await e.beforeStart(server,o);server.listen(t,(()=>{const e=`http://localhost:${t}`,o=(0,_sharedUtils.getIPv4IPAddress)();if(!o)return _sharedUtils.colorconsole.warn("### App Server ### 本机IP地址为空,无法通过WIFI调试"),void r({launchServerError:null,server:server,address:e,previewAddress:e+"/previewAddress"});const s=`http://${o}:${t}`;_sharedUtils.colorconsole.info(`### App Server ### 服务器地址: ${e}, ${s}`),_sharedUtils.colorconsole.info("### App Server ### 请确保手机与App Server处于相同网段"),(0,_sharedUtils.outputQRCodeOnTerminal)(s),n&&(0,_opn.default)(s),r({launchServerError:null,server:server,address:s,previewAddress:e+"/preview"})})),o.on("error",((e,o)=>{_sharedUtils.colorconsole.error(`### App Server ### 服务器错误: ${e.message}`);const t=`出错了!HTTP error code: ${e.status}, 出错信息: ${e.message}`;o&&(o.body=t),r({launchServerError:e,server:server})})),server.on("error",(e=>{_sharedUtils.colorconsole.error(`### App Server ### 服务器错误: ${e.message}`),"EADDRINUSE"===e.code&&_sharedUtils.colorconsole.error(`### App Server ### 服务器错误:端口 ${t} 被占用, 请检查`),r({launchServerError:e,server:server})})),process.on("SIGINT",(()=>{_sharedUtils.colorconsole.info("### App Server ### SIGINT信号"),_sharedUtils.colorconsole.info(`### App Server ### 退出server进程 pid: ${process.pid}`),o.context.adbDebugger._stop(),process.exit()})),process.on("uncaughtException",(e=>{_sharedUtils.colorconsole.error(`### App Server ### 未定义的异常, 出错信息: ${e.message}`),console.error(e)})),process.on("unhandledRejection",((e,r)=>{_sharedUtils.colorconsole.error(`### App Server ### 未处理的 rejection, 出错信息: ${e}`),r.catch((e=>{console.error(e)}))}))}catch(e){throw _sharedUtils.colorconsole.error(`### App Server ### 服务器启动失败: ${e.message}`),r({launchServerError:e,server:null}),e}}))}function stop(){return new Promise((e=>{if(server)try{server.close((r=>{e({stopServerError:r})}))}catch(r){throw _sharedUtils.colorconsole.error(`### App Server ### 服务器关闭失败: ${r.message}`),e({stopServerError:r}),r}else e({stopServerError:"no server"})}))}
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.launch=launch,exports.stop=stop;var _http=_interopRequireDefault(require("http")),_koa=_interopRequireDefault(require("koa")),_opn=_interopRequireDefault(require("opn")),_portfinder=_interopRequireDefault(require("portfinder")),_sharedUtils=require("@hap-toolkit/shared-utils"),_config=require("./config");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,o=new WeakMap;return(_getRequireWildcardCache=function(e){return e?o:r})(e)}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var o=_getRequireWildcardCache(r);if(o&&o.has(e))return o.get(e);var t={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if("default"!==n&&Object.prototype.hasOwnProperty.call(e,n)){var l=s?Object.getOwnPropertyDescriptor(e,n):null;l&&(l.get||l.set)?Object.defineProperty(t,n,l):t[n]=e[n]}return t.default=e,o&&o.set(e,t),t}const moduler=[require("@hap-toolkit/debugger")];let server=null;async function launch(e){return new Promise((async r=>{try{"debug"!==_sharedUtils.globalConfig.command&&moduler.push((await Promise.resolve().then((()=>_interopRequireWildcard(require("@hap-toolkit/packager"))))).router,require("./preview/index.js"));const o=new _koa.default;let t=_sharedUtils.globalConfig.server.port;t=await _portfinder.default.getPortPromise({port:t}),Object.assign(e.defaults,{serverPort:t}),o.context.conf=e,_config.browerOptions.options=Object.assign(_config.browerOptions.options,e);const{clearRecords:s,openBrowser:n}=e.options;if(s){const{clientRecordPath:e}=_sharedUtils.globalConfig;(0,_sharedUtils.clearProjectRecord)(e)}moduler.forEach((e=>{e.applyRouter&&o.use(e.applyRouter(o).routes())})),server=_http.default.Server(o.callback()),o.server=server;for(const e of moduler)e.beforeStart&&await e.beforeStart(server,o);server.listen(t,(()=>{const e=`http://localhost:${t}`,o=(0,_sharedUtils.getIPv4IPAddress)();if(!o)return _sharedUtils.colorconsole.warn("### App Server ### 本机IP地址为空,无法通过WIFI调试"),void r({launchServerError:null,server:server,address:e,previewAddress:e+"/previewAddress"});const s=`http://${o}:${t}`;_sharedUtils.colorconsole.info(`### App Server ### 服务器地址: ${e}, ${s}`),_sharedUtils.colorconsole.info("### App Server ### 请确保手机与App Server处于相同网段"),(0,_sharedUtils.outputQRCodeOnTerminal)(s),n&&(0,_opn.default)(s),r({launchServerError:null,server:server,address:s,previewAddress:e+"/preview"})})),o.on("error",((e,o)=>{_sharedUtils.colorconsole.error(`### App Server ### 服务器错误: ${e.message}`);const t=`出错了!HTTP error code: ${e.status}, 出错信息: ${e.message}`;o&&(o.body=t),r({launchServerError:e,server:server})})),server.on("error",(e=>{_sharedUtils.colorconsole.error(`### App Server ### 服务器错误: ${e.message}`),"EADDRINUSE"===e.code&&_sharedUtils.colorconsole.error(`### App Server ### 服务器错误:端口 ${t} 被占用, 请检查`),r({launchServerError:e,server:server})})),process.on("SIGINT",(()=>{_sharedUtils.colorconsole.info("### App Server ### SIGINT信号"),_sharedUtils.colorconsole.info(`### App Server ### 退出server进程 pid: ${process.pid}`),o.context.adbDebugger._stop(),process.exit()})),process.on("uncaughtException",(e=>{_sharedUtils.colorconsole.error(`### App Server ### 未定义的异常, 出错信息: ${e.message}`),console.error(e)})),process.on("unhandledRejection",((e,r)=>{_sharedUtils.colorconsole.error(`### App Server ### 未处理的 rejection, 出错信息: ${e}`),r.catch((e=>{console.error(e)}))}))}catch(e){throw _sharedUtils.colorconsole.error(`### App Server ### 服务器启动失败: ${e.message}`),r({launchServerError:e,server:null}),e}}))}function stop(){return new Promise((e=>{if(server)try{server.close((r=>{e({stopServerError:r})}))}catch(r){throw _sharedUtils.colorconsole.error(`### App Server ### 服务器关闭失败: ${r.message}`),e({stopServerError:r}),r}else e({stopServerError:"no server"})}))}
|
|
2
2
|
//# sourceMappingURL=server.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hap-toolkit/server",
|
|
3
|
-
"version": "1.9.17-alpha.
|
|
3
|
+
"version": "1.9.17-alpha.13",
|
|
4
4
|
"description": "hap server",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=14.0.0"
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@babel/runtime": "^7.9.6",
|
|
29
|
-
"@hap-toolkit/debugger": "1.9.17-alpha.
|
|
30
|
-
"@hap-toolkit/packager": "1.9.17-alpha.
|
|
31
|
-
"@hap-toolkit/shared-utils": "1.9.17-alpha.
|
|
29
|
+
"@hap-toolkit/debugger": "1.9.17-alpha.13",
|
|
30
|
+
"@hap-toolkit/packager": "1.9.17-alpha.13",
|
|
31
|
+
"@hap-toolkit/shared-utils": "1.9.17-alpha.13",
|
|
32
32
|
"@jayfate/path": "^0.0.13",
|
|
33
33
|
"crypto-js": "^4.1.1",
|
|
34
34
|
"fs-extra": "^10.0.0",
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"request": "^2.88.2",
|
|
47
47
|
"resolve": "^1.22.2"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "ec45f197c9e1b1d0295ccafc1db2a3bfbce0fdd1"
|
|
50
50
|
}
|