@aiot-toolkit/packager
Version:
@aiot-toolkit/packager
3 lines (2 loc) • 4.53 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _fsExtra=_interopRequireDefault(require("fs-extra")),_path=_interopRequireDefault(require("path")),_qrImage=_interopRequireDefault(require("qr-image")),_moment=_interopRequireDefault(require("moment")),_sharedUtils=require("@aiot-toolkit/shared-utils"),_config=_interopRequireDefault(require("@aiot-toolkit/shared-utils/config")),_recordClient=require("@aiot-toolkit/shared-utils/lib/record-client"),_service=require("./service");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const CLIENT_PORT=39517,RPKS_SUPPORT_VERSION_FROM=1040;async function index(e,t){const r=e.app.server.address().port,o=(0,_service.getServerAddress)(r),a=_qrImage.default.image(o,{size:9});e.type="image/png",e.body=a,await t()}async function bundle(e,t){const{projectPath:r}=_config.default,o=_path.default.join(r,_config.default.releasePath);let a;const{options:i={}}=e.conf;if(i.rpkPath)a=i.rpkPath,_path.default.isAbsolute(a)||(a=_path.default.join(r,i.rpkPath)),_sharedUtils.colorconsole.log(`### App Server ### Specify to return rpk:${a}`);else{const t=(0,_service.getProjectInfo)(r,_config.default.sourceRoot),i=t.projectName,s=t.projectVersion,n=e.request.query.platformVersion;n&&n>=1040&&(a=(0,_service.getDistFilePath)(o,i,s,"rpks")),a||(a=(0,_service.getDistFilePath)(o,i,s,"rpk"))}a?(e.set("Content-Type","application/octet-stream"),e.set("Content-Transfer-Encoding","binary"),e.set("Content-Disposition",`attachment; filename=${_path.default.basename(a)}`),e.body=_fsExtra.default.createReadStream(a)):(_sharedUtils.colorconsole.error(`### App Server ### There is no rpk or rpks file ${o} in the project ${(0,_sharedUtils.relateCwd)(o)} directory`),e.throw("404","Cannot find the rpks or rpk file of the project")),await t()}async function logger(e,t){try{const{clientRecordPath:r}=_config.default,{sn:o,clientIp:a,linkMode:i}=(0,_service.getClientFromRequest)(e.request);let s={sn:o,ip:a,port:39517};switch(i){case _service.LINK_MODE.WIFI:_sharedUtils.colorconsole.info(`### App Server ### Record the incoming HTTP request from ${a}`),(0,_recordClient.recordClient)(r,s);break;case _service.LINK_MODE.ADB:if(s=(0,_recordClient.getRecordClient)(r,o,a),!s){const t=e.adbDebugger.emulators.get(o);_sharedUtils.colorconsole.warn(`### App Server ### Find the device ${t} through (${o})`),s=(0,_recordClient.getRecordClient)(r,t,a)}s?(_sharedUtils.colorconsole.info(`### App Server ### Record the incoming HTTP request from the device (${o})`),(0,_recordClient.recordClient)(r,s)):_sharedUtils.colorconsole.warn(`### App Server ### :Recording device (${o}) failed`)}await t()}catch(e){_sharedUtils.colorconsole.error(`### App Server ### Error recording log: ${e.message}`)}}async function notify(e,t){const r=e.conf.options.callback;if("function"==typeof r){r({action:"runCompile"})}e.status=200,await t()}async function qrCode(e,t){const r=e.app.server.address().port,o=(0,_service.getServerAddress)(r),a=_qrImage.default.image(o,{size:9});await t(),e.type="image/png",e.body=a}async function saveDataCoverage(e,t){const r=e.request.body.coverage;r||e.throw("Request error, please bring relevant code coverage data as request parameters!");const{projectPath:o,dataCoverage:a}=_config.default,i=_path.default.join(o,a);_fsExtra.default.existsSync(i)||_fsExtra.default.mkdirSync(i),_sharedUtils.colorconsole.info(`### App Server ### Save the code coverage data after the project is run to the directory:${a}`);const s=`${(0,_moment.default)().format("YYYYMMDD-HH-mm-ss")}.json`,n=_path.default.join(i,s);_fsExtra.default.writeFileSync(n,JSON.stringify(r)),e.status=200}async function saveDataLogs(e,t){const r=e.request.body.info,o=e.request.body.list,{deviceSerialId:a,deviceInfo:{brand:i,model:s}}=r;o||e.throw("Request error, please bring relevant log record data!");const n=_path.default.resolve(_config.default.projectPath,"logs");_fsExtra.default.ensureDirSync(n);const c=encodeURIComponent(a),l=s.split(" ").join("_"),d=_path.default.resolve(n,`quickapp-${c}-${i}-${l}.log`);let u=o.map((e=>{const{time:t,type:r,args:o}=e;return`${(0,_moment.default)(t).format("YYYY.MM.DD hh:mm:ss.SSS")} ${r.padStart(18," ")}: ${o}\n`})).join("");_fsExtra.default.appendFile(d,u,(e=>{e&&console.log(e)})),e.status=200}var _default={index:index,bundle:bundle,qrCode:qrCode,logger:logger,notify:notify,saveDataCoverage:saveDataCoverage,saveDataLogs:saveDataLogs};exports.default=_default;
//# sourceMappingURL=routes.js.map