@hap-toolkit/shared-utils
Advanced tools
Comparing version
@@ -73,5 +73,3 @@ /* | ||
// 是否启用性能检查 | ||
enablePerformanceCheck: false, | ||
// 是否提前编译dom序列 | ||
enableRenderAot: false | ||
enablePerformanceCheck: false | ||
} | ||
@@ -78,0 +76,0 @@ |
@@ -1,2 +0,2 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.logWarn=logWarn,exports.mkdirsSync=mkdirsSync,exports.getIPv4IPAddress=getIPv4IPAddress,exports.getServerIPAndPort=getServerIPAndPort,exports.getDefaultServerHost=getDefaultServerHost,exports.getClientIPAddress=getClientIPAddress,exports.stripPrefixForIPV4MappedIPV6Address=stripPrefixForIPV4MappedIPV6Address,exports.outputQRCodeOnTerminal=outputQRCodeOnTerminal,exports.relateCwd=relateCwd,exports.equals=equals,exports.extend=extend,exports.renderString=renderString,exports.KnownError=KnownError,exports.setCustomConfig=setCustomConfig,exports.getProjectDslName=getProjectDslName,exports.getDeviceInfo=getDeviceInfo,exports.readJson=readJson,Object.defineProperty(exports,"getLaunchPage",{enumerable:!0,get:function(){return _util.getLaunchPage}}),exports.colorconsole=exports.logger=void 0;var _os=_interopRequireDefault(require("os")),_fs=_interopRequireDefault(require("fs")),_path=_interopRequireDefault(require("path")),_http=_interopRequireDefault(require("http")),_console=require("console"),_chalk=_interopRequireDefault(require("chalk")),_qrcodeTerminal=_interopRequireDefault(require("qrcode-terminal")),_config=_interopRequireDefault(require("../config")),_util=require("./buildMode/util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const logLevelMap={};function prependLevel(e,r){if(!logLevelMap[e]){const r=e.toUpperCase().substr(0,4);logLevelMap[e]=r}"string"==typeof r[0]&&r[0].length>1&&"["!==r[0][0]&&(r[0]=`[${logLevelMap[e]}] ${r[0]}`)}const logger={logs:[],add(e){this.logs.push(e)},clear(){this.logs=[]},get(){return this.logs.join("\n")}};exports.logger=logger;let originConsole=global.console,console=_console.Console?new _console.Console(process.stdout,process.stderr):originConsole;const colorconsole={attach(e){e&&_console.Console&&(console=new _console.Console(e,e))},trace(...e){prependLevel("trace",e),console.trace(...e)},log(...e){prependLevel("log",e),console.log(_chalk.default.green(...e))},info(...e){prependLevel("info",e),console.info(_chalk.default.green(...e))},warn(...e){prependLevel("warn",e),console.warn(_chalk.default.yellow.bold(...e))},error(...e){prependLevel("error",e),console.error(_chalk.default.red.bold(...e))},throw(...e){throw new Error(_chalk.default.red.bold(...e))}};function logWarn(e,r,t){r&&r.length&&r.forEach(r=>{const o=r.line&&r.column?"\t@"+r.line+":"+r.column:"";t||(r.reason.startsWith("ERROR")?colorconsole.error(e.resourcePath,r.reason+o):colorconsole.warn(e.resourcePath,r.reason+o))})}function mkdirsSync(e){return!!_fs.default.existsSync(e)||(mkdirsSync(_path.default.dirname(e))?(_fs.default.mkdirSync(e),!0):void 0)}function getIPv4IPAddress(){const e=_os.default.networkInterfaces();let r;for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)){if(e[t].every(e=>!("IPv4"===e.family&&!e.internal&&"127.0.0.1"!==e.address)||(r=e,!1)),void 0!==r)break}return r&&r.address}function getServerIPAndPort(e){return(getIPv4IPAddress()||"127.0.0.1")+`${80===e?"":":"+e}`}function getDefaultServerHost(){return getServerIPAndPort(_config.default.server.port)}function getClientIPAddress(e){return stripPrefixForIPV4MappedIPV6Address(e.headers["x-forwarded-for"]||e.connection&&e.connection.remoteAddress||e.socket&&e.socket.remoteAddress||e.connection&&e.connection.socket&&e.connection.socket.remoteAddress)}function stripPrefixForIPV4MappedIPV6Address(e){return/^::1$/.test(e)&&(e="127.0.0.1"),/^::.{0,4}:(\d{1,3}\.){3}\d{1,3}/.test(e)&&(e=e.replace(/^.*:/,"")),e}function outputQRCodeOnTerminal(e){console.info(`\n生成HTTP服务器的二维码: ${e}`),_qrcodeTerminal.default.generate(e,{small:!0})}function relateCwd(e){const r=_config.default.projectPath;return _path.default.relative(r,e)}function equals(e,r,t,...o){if(t){if(t(e,r,...o))return!0}const n=Object.prototype.toString.call(e);if(n!==Object.prototype.toString.call(r))return!1;if("[object Null]"===n||"[object Undefined]"===n)return!0;if("[object Object]"!==n&&"[object Array]"!==n)return Object(e).toString()===Object(r).toString();const s={};Object.keys(e).forEach(e=>s[e]=!0),Object.keys(r).forEach(e=>s[e]=!0);const l=Object.keys(s);for(let o=0;o<l.length;o++){const n=l[o];if(!equals(e[n],r[n],t,n))return!1}return!0}function extend(e,...r){if("function"==typeof Object.assign)Object.assign(e,...r);else{const t=r.shift();for(const r in t)e[r]=t[r];r.length&&extend(e,...r)}return e}function renderString(e,r){return e.replace(/{{(.*?)}}/gm,(e,t)=>(t=t.trim(),void 0!==r[t]?r[t]:t))}function KnownError(e){const r=new Error(e);return r.name="KnownError",r.__KNOWN=!0,r}function setCustomConfig(e,r){e=_config.default.projectPath=e||_config.default.projectPath;const t=_path.default.join(e,"quickapp.config.js");if(_fs.default.existsSync(t)){let e={};try{e=require(t)}catch(e){colorconsole.error(`读取项目自定义配置文件出错: ${e.message}`)}const r=Object.assign(_config.default.server,e.server);Object.assign(_config.default,e,{server:r})}r&&(_config.default.server.port=r)}exports.colorconsole=colorconsole;const illegalExtsList=[".css",".less",".scss",".styl",".sass",".log",".json",".js"].map(e=>"app"+e);function getProjectDslName(e){const r=_fs.default.readdirSync(_path.default.join(e,_config.default.sourceRoot)).filter(e=>/^app\..*/.test(e)&&!illegalExtsList.includes(e));let t;return r&&r[0]?(t=_path.default.extname(r[0]).slice(1),colorconsole.info(`获取到app文件后缀: ${t}`)):colorconsole.error("无法获取正确的app文件后缀"),"ux"===t?"xvm":t}function getDeviceInfo(e,r){const t=_http.default.request({path:"/deviceinfo",host:e.ip,port:e.port,timeout:3e3},e=>{e.on("data",e=>{r(null,JSON.parse(e))})}).on("error",e=>{r(e)}).on("timeout",(function(){t.abort()}));t.end()}function readJson(e){try{return JSON.parse(_fs.default.readFileSync(e).toString())}catch(r){throw r instanceof SyntaxError?new SyntaxError(`解析 ${e} 失败, 格式错误`):r.message.startsWith("ENOENT:")?(r.message=`读取 ${e} 失败, 找不到该文件`,r):(r.message=`读取 ${e} 失败 ${r.message}`,r)}} | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.logWarn=logWarn,exports.mkdirsSync=mkdirsSync,exports.getIPv4IPAddress=getIPv4IPAddress,exports.getServerIPAndPort=getServerIPAndPort,exports.getDefaultServerHost=getDefaultServerHost,exports.getClientIPAddress=getClientIPAddress,exports.stripPrefixForIPV4MappedIPV6Address=stripPrefixForIPV4MappedIPV6Address,exports.outputQRCodeOnTerminal=outputQRCodeOnTerminal,exports.relateCwd=relateCwd,exports.equals=equals,exports.extend=extend,exports.renderString=renderString,exports.KnownError=KnownError,exports.setCustomConfig=setCustomConfig,exports.getProjectDslName=getProjectDslName,exports.getDeviceInfo=getDeviceInfo,exports.readJson=readJson,Object.defineProperty(exports,"getLaunchPage",{enumerable:!0,get:function(){return _util.getLaunchPage}}),exports.colorconsole=exports.logger=void 0;var _os=_interopRequireDefault(require("os")),_fs=_interopRequireDefault(require("fs")),_path=_interopRequireDefault(require("path")),_http=_interopRequireDefault(require("http")),_console=require("console"),_chalk=_interopRequireDefault(require("chalk")),_qrcodeTerminal=_interopRequireDefault(require("qrcode-terminal")),_config=_interopRequireDefault(require("../config")),_util=require("./buildMode/util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const logLevelMap={};function prependLevel(e,r){if(!logLevelMap[e]){const r=e.toUpperCase().substr(0,4);logLevelMap[e]=r}"string"==typeof r[0]&&r[0].length>1&&"["!==r[0][0]&&(r[0]=`[${logLevelMap[e]}] ${r[0]}`)}const logger={logs:[],add(e){this.logs.push(e)},clear(){this.logs=[]},get(){return this.logs.join("\n")}};exports.logger=logger;let originConsole=global.console,console=_console.Console?new _console.Console(process.stdout,process.stderr):originConsole;const colorconsole={attach(e){e&&_console.Console&&(console=new _console.Console(e,e))},trace(...e){prependLevel("trace",e),console.trace(...e)},log(...e){prependLevel("log",e),console.log(_chalk.default.green(...e))},info(...e){prependLevel("info",e),console.info(_chalk.default.green(...e))},warn(...e){prependLevel("warn",e),console.warn(_chalk.default.yellow.bold(...e))},error(...e){prependLevel("error",e),console.error(_chalk.default.red.bold(...e))},throw(...e){throw new Error(_chalk.default.red.bold(...e))}};function logWarn(e,r,t){r&&r.length&&r.forEach(r=>{const o=r.line&&r.column?"\t@"+r.line+":"+r.column:"";t||(r.reason.startsWith("ERROR")?colorconsole.error(e.resourcePath,r.reason+o):colorconsole.warn(e.resourcePath,r.reason+o))})}function mkdirsSync(e){return!!_fs.default.existsSync(e)||(mkdirsSync(_path.default.dirname(e))?(_fs.default.mkdirSync(e),!0):void 0)}function getIPv4IPAddress(){const e=_os.default.networkInterfaces();let r;for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)){if(e[t].every(e=>!("IPv4"===e.family&&!e.internal&&"127.0.0.1"!==e.address)||(r=e,!1)),void 0!==r)break}return r&&r.address}function getServerIPAndPort(e){return(getIPv4IPAddress()||"127.0.0.1")+""+(80===e?"":":"+e)}function getDefaultServerHost(){return getServerIPAndPort(_config.default.server.port)}function getClientIPAddress(e){return stripPrefixForIPV4MappedIPV6Address(e.headers["x-forwarded-for"]||e.connection&&e.connection.remoteAddress||e.socket&&e.socket.remoteAddress||e.connection&&e.connection.socket&&e.connection.socket.remoteAddress)}function stripPrefixForIPV4MappedIPV6Address(e){return/^::1$/.test(e)&&(e="127.0.0.1"),/^::.{0,4}:(\d{1,3}\.){3}\d{1,3}/.test(e)&&(e=e.replace(/^.*:/,"")),e}function outputQRCodeOnTerminal(e){console.info("\n生成HTTP服务器的二维码: "+e),_qrcodeTerminal.default.generate(e,{small:!0})}function relateCwd(e){const r=_config.default.projectPath;return _path.default.relative(r,e)}function equals(e,r,t,...o){if(t){if(t(e,r,...o))return!0}const n=Object.prototype.toString.call(e);if(n!==Object.prototype.toString.call(r))return!1;if("[object Null]"===n||"[object Undefined]"===n)return!0;if("[object Object]"!==n&&"[object Array]"!==n)return Object(e).toString()===Object(r).toString();const s={};Object.keys(e).forEach(e=>s[e]=!0),Object.keys(r).forEach(e=>s[e]=!0);const l=Object.keys(s);for(let o=0;o<l.length;o++){const n=l[o];if(!equals(e[n],r[n],t,n))return!1}return!0}function extend(e,...r){if("function"==typeof Object.assign)Object.assign(e,...r);else{const t=r.shift();for(const r in t)e[r]=t[r];r.length&&extend(e,...r)}return e}function renderString(e,r){return e.replace(/{{(.*?)}}/gm,(e,t)=>(t=t.trim(),void 0!==r[t]?r[t]:t))}function KnownError(e){const r=new Error(e);return r.name="KnownError",r.__KNOWN=!0,r}function setCustomConfig(e,r){e=_config.default.projectPath=e||_config.default.projectPath;const t=_path.default.join(e,"quickapp.config.js");if(_fs.default.existsSync(t)){let e={};try{e=require(t)}catch(e){colorconsole.error("读取项目自定义配置文件出错: "+e.message)}const r=Object.assign(_config.default.server,e.server);Object.assign(_config.default,e,{server:r})}r&&(_config.default.server.port=r)}exports.colorconsole=colorconsole;const illegalExtsList=[".css",".less",".scss",".styl",".sass",".log",".json",".js"].map(e=>"app"+e);function getProjectDslName(e){const r=_fs.default.readdirSync(_path.default.join(e,_config.default.sourceRoot)).filter(e=>/^app\..*/.test(e)&&!illegalExtsList.includes(e));let t;return r&&r[0]?(t=_path.default.extname(r[0]).slice(1),colorconsole.info("获取到app文件后缀: "+t)):colorconsole.error("无法获取正确的app文件后缀"),"ux"===t?"xvm":t}function getDeviceInfo(e,r){const t=_http.default.request({path:"/deviceinfo",host:e.ip,port:e.port,timeout:3e3},e=>{e.on("data",e=>{r(null,JSON.parse(e))})}).on("error",e=>{r(e)}).on("timeout",(function(){t.abort()}));t.end()}function readJson(e){try{return JSON.parse(_fs.default.readFileSync(e).toString())}catch(r){throw r instanceof SyntaxError?new SyntaxError(`解析 ${e} 失败, 格式错误`):r.message.startsWith("ENOENT:")?(r.message=`读取 ${e} 失败, 找不到该文件`,r):(r.message=`读取 ${e} 失败 ${r.message}`,r)}} | ||
//# sourceMappingURL=index.js.map |
@@ -1,2 +0,2 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getRecords=getRecords,exports.getProjectClients=getProjectClients,exports.recordClient=recordClient,exports.getRecordClient=getRecordClient,exports.clearProjectRecord=clearProjectRecord,exports.removeClientBySn=removeClientBySn;var _fs=_interopRequireDefault(require("fs")),_path=_interopRequireDefault(require("path")),_index=require("./index"),_config=_interopRequireDefault(require("../config"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getRecords(e){let t={records:{}};try{t=JSON.parse(_fs.default.readFileSync(e).toString())}catch(e){_index.colorconsole.error(`读取hap-toolkit-client-records.json文件出错: ${e.message}`)}return t}function writeRecords(e,t){_fs.default.writeFileSync(e,JSON.stringify(t,null,2))}function getProjectClients(e){const t=_config.default.projectPath;let r=e.records;r=r instanceof Object?r:{};const o=r[t];return o&&o instanceof Array?o:[]}function recordClient(e,t,r){const o=_path.default.dirname(e),i=_config.default.projectPath;let n;if((0,_index.mkdirsSync)(o),_fs.default.existsSync(e)){n=getRecords(e);let o=getProjectClients(n);for(r&&r(`writeClientLogFile(): before: ${JSON.stringify(n.records)}`),o=o.filter(e=>e.ip!==t.ip||e.port!==t.port);o.length>4;)o.shift();n.records[i]=o}else n={records:{}},n.records[i]=[];n.records[i].push(t),writeRecords(e,n),r&&r(`writeClientLogFile(): after: ${JSON.stringify(n.records)}`)}function getRecordClient(e,t,r){if(_fs.default.existsSync(e)){return getProjectClients(getRecords(e)).find(e=>e.sn===t&&e.ip===r&&e.port)}}function clearProjectRecord(e){if(_fs.default.existsSync(e)){const t=getRecords(e),r=_config.default.projectPath;t.records[r]=[],writeRecords(e,t),_index.colorconsole.info("### App Server ### 清空调试设备记录")}else _index.colorconsole.info("### App Server ### 没有需要清空的调试设备记录")}function removeClientBySn(e,t,r){if(_fs.default.existsSync(e)){const o=_config.default.projectPath,i=getRecords(e),n=i.records,c=getProjectClients(i);r&&r(`_removeItemFromClientLogFile(): before: ${JSON.stringify(n)}`),n[o]=c.filter(e=>e.sn!==t),writeRecords(e,i),r&&r(`_removeItemFromClientLogFile(): after: ${JSON.stringify(n)}`)}} | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getRecords=getRecords,exports.getProjectClients=getProjectClients,exports.recordClient=recordClient,exports.getRecordClient=getRecordClient,exports.clearProjectRecord=clearProjectRecord,exports.removeClientBySn=removeClientBySn;var _fs=_interopRequireDefault(require("fs")),_path=_interopRequireDefault(require("path")),_index=require("./index"),_config=_interopRequireDefault(require("../config"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getRecords(e){let t={records:{}};try{t=JSON.parse(_fs.default.readFileSync(e).toString())}catch(e){_index.colorconsole.error("读取hap-toolkit-client-records.json文件出错: "+e.message)}return t}function writeRecords(e,t){_fs.default.writeFileSync(e,JSON.stringify(t,null,2))}function getProjectClients(e){const t=_config.default.projectPath;let r=e.records;r=r instanceof Object?r:{};const o=r[t];return o&&o instanceof Array?o:[]}function recordClient(e,t,r){const o=_path.default.dirname(e),i=_config.default.projectPath;let n;if((0,_index.mkdirsSync)(o),_fs.default.existsSync(e)){n=getRecords(e);let o=getProjectClients(n);for(r&&r("writeClientLogFile(): before: "+JSON.stringify(n.records)),o=o.filter(e=>e.ip!==t.ip||e.port!==t.port);o.length>4;)o.shift();n.records[i]=o}else n={records:{}},n.records[i]=[];n.records[i].push(t),writeRecords(e,n),r&&r("writeClientLogFile(): after: "+JSON.stringify(n.records))}function getRecordClient(e,t,r){if(_fs.default.existsSync(e)){return getProjectClients(getRecords(e)).find(e=>e.sn===t&&e.ip===r&&e.port)}}function clearProjectRecord(e){if(_fs.default.existsSync(e)){const t=getRecords(e),r=_config.default.projectPath;t.records[r]=[],writeRecords(e,t),_index.colorconsole.info("### App Server ### 清空调试设备记录")}else _index.colorconsole.info("### App Server ### 没有需要清空的调试设备记录")}function removeClientBySn(e,t,r){if(_fs.default.existsSync(e)){const o=_config.default.projectPath,i=getRecords(e),n=i.records,c=getProjectClients(i);r&&r("_removeItemFromClientLogFile(): before: "+JSON.stringify(n)),n[o]=c.filter(e=>e.sn!==t),writeRecords(e,i),r&&r("_removeItemFromClientLogFile(): after: "+JSON.stringify(n))}} | ||
//# sourceMappingURL=record-client.js.map |
{ | ||
"name": "@hap-toolkit/shared-utils", | ||
"version": "0.7.7-beta.0", | ||
"version": "0.7.7-beta.1", | ||
"description": "hap shared utils", | ||
@@ -33,3 +33,3 @@ "engines": { | ||
}, | ||
"gitHead": "eb247bf54c8a828ce4292bb9cb27ea6f9983f35b" | ||
"gitHead": "87453ffdc690c7cc7bb5777c347df83e9c0386c7" | ||
} |
16240
-0.46%154
-1.28%