UNPKG

4.36 kBJavaScriptView Raw
1"use strict";exports.__esModule=!0;var tslib_1=require("tslib"),LarkLogger_1=require("@kemao/lark/Server/Log/LarkLogger/LarkLogger"),child_process_1=require("child_process"),fs=require("fs-extra"),klaw=require("klaw"),Notifier=require("node-notifier"),Path=require("path"),yargs_1=require("yargs"),CleanTask_1=require("./CleanTask"),ConfigHelper_1=require("./ConfigHelper"),logger=new LarkLogger_1.LarkLogger("Task/HelperTask"),HelperTask=function(){function r(){}return r.taking=function(){var e=new Date,t=e.getTime()-r.prevDateTime.getTime();return r.prevDateTime=e,t/1e3+" s"},r.showVersion=function(){logger.log("showVersion","node@"+child_process_1.execSync("node -v").toString().replace(/\r|\n/g,""),"npm@v"+child_process_1.execSync("npm -v").toString().replace(/\r|\n/g,""),"typescipt@"+child_process_1.execSync("tsc -v").toString().replace(/\r|\n/g,""))},r.setWatchModel=function(e){return this.watchModel=e,this},r.sendMessage=function(e,t,r){void 0===t&&(t="通知"),void 0===r&&(r="info");var n={message:"string"==typeof e?e.substr(0,100):JSON.stringify(e),title:t,wait:!1};Notifier.notify(n)},r.start=function(){this.clean(),process.once("SIGINT",function(){logger.log("安全退出"),process.exit()}),this.startDateTime=new Date,logger.log("-------------------------------编译详细信息-------------------------------------")},r.end=function(){this.endDateTime=new Date,logger.log("-------------------------------编译信息结束-------------------------------------"),logger.log("编译总耗时",(this.endDateTime.getTime()-this.startDateTime.getTime())/1e3,"s"),this.sendMessage("编译总耗时 "+(this.endDateTime.getTime()-this.startDateTime.getTime())/1e3+" s","首次编译结束")},r.cleanAsync=function(){return tslib_1.__awaiter(this,void 0,void 0,function(){return tslib_1.__generator(this,function(e){switch(e.label){case 0:return[4,(new CleanTask_1.CleanTask).start()];case 1:return e.sent(),[2]}})})},r.setVersion=function(e){this.version=e},r.getVersion=function(){return this.version},r.cleanAndReplaceAsync=function(){return tslib_1.__awaiter(this,void 0,void 0,function(){return tslib_1.__generator(this,function(e){switch(e.label){case 0:return[4,this.cleanAsync()];case 1:return e.sent(),[2]}})})},r.getSourceRoot=function(){return yargs_1.argv.sourceRoot?yargs_1.argv.sourceRoot:ConfigHelper_1.ConfigHelper.getConfig().sourceRoot?ConfigHelper_1.ConfigHelper.getConfig().sourceRoot:"src"},r.getOutDir=function(){return ConfigHelper_1.ConfigHelper.getConfig().outDir?ConfigHelper_1.ConfigHelper.getConfig().outDir:"build"},r.getWatchModel=function(){return!!ConfigHelper_1.ConfigHelper.getConfig().watch},r.isProduction=function(){return!1===this.getWatchModel()},r.isDebug=function(){return this.getWatchModel()},r.clean=function(){fs.pathExistsSync("./build")&&fs.removeSync("./build"),fs.ensureDirSync("./build")},r.walkFile=function(a,c,l){return tslib_1.__awaiter(this,void 0,void 0,function(){var n=this;return tslib_1.__generator(this,function(e){return[2,new Promise(function(e,o){var t=klaw(a);t.on("data",function(r){return tslib_1.__awaiter(n,void 0,void 0,function(){var n,i,t,s=this;return tslib_1.__generator(this,function(e){switch(e.label){case 0:if(n=r.path,"function"!=typeof(i=l[Path.extname(n).replace(".","")]))return[3,5];e.label=1;case 1:return e.trys.push([1,3,,4]),[4,this.walkFileHander(n,i,a)];case 2:return e.sent(),[3,4];case 3:return t=e.sent(),o(t),[3,4];case 4:c&&fs.watchFile(n,function(r){return tslib_1.__awaiter(s,void 0,void 0,function(){var t;return tslib_1.__generator(this,function(e){switch(e.label){case 0:if(!r.isFile())return[3,4];e.label=1;case 1:return e.trys.push([1,3,,4]),[4,this.walkFileHander(n,i,a)];case 2:return e.sent(),[3,4];case 3:return t=e.sent(),o(t),[3,4];case 4:return[2]}})})}),e.label=5;case 5:return[2]}})})}),t.on("end",function(){e()}),t.on("error",function(e){logger.error(e),o(e)})})]})})},r.walkFileHander=function(i,s,o){return tslib_1.__awaiter(this,void 0,void 0,function(){var t,r,n;return tslib_1.__generator(this,function(e){switch(e.label){case 0:return t=fs.readFileSync(i),[4,s(t,i)];case 1:return r=e.sent(),n="build"+i.replace(Path.resolve(o),""),logger.log("walkFileHander",i+"->"+n),fs.ensureDirSync(Path.dirname(n)),fs.writeFileSync(n,r),[2]}})})},r.version="",r.prevDateTime=new Date,r.watchModel=!1,r}();exports.HelperTask=HelperTask;
\No newline at end of file