UNPKG

5.93 kBJavaScriptView Raw
1"use strict";exports.__esModule=!0;var tslib_1=require("tslib"),LarkLogger_1=require("@kemao/lark/Server/Log/LarkLogger/LarkLogger"),PackageTools_1=require("@kemao/package-tools/PackageTools/PackageTools"),fs=require("fs-extra"),Path=require("path"),Version_1=require("./Core/Version"),BrowserAsset_1=require("./Task/BrowserAsset"),BrowserPack_1=require("./Task/BrowserPack"),ConfigAsset_1=require("./Task/ConfigAsset"),DebugServer_1=require("./Task/DebugServer"),HelperTask_1=require("./Task/HelperTask"),ServerPack_1=require("./Task/ServerPack"),VendorPack_1=require("./Task/VendorPack"),logger=new LarkLogger_1.LarkLogger("ProjectTools"),ProjectTools=function(){function e(){this.watch=!1,this.autoReloadServer=!1,this.packageTools=null,this.vendorPack=null,this.browserPack=null,this.version=null,this.serverPack=null,this.browserAsset=null,this.configAsset=null,this.online=!1}return e.showVersion=function(e){if(e=Path.resolve(e),fs.existsSync(e)){var s=fs.readJSONSync(Path.resolve(e));logger.log("version",s.version)}},e.prototype.setOnline=function(e){logger.log("ProjectTools.setOnline",e),this.online=e},e.prototype.setAutoReloadServer=function(e){this.autoReloadServer=e},e.prototype.setWatch=function(e){this.watch=e},e.prototype.build=function(){return tslib_1.__awaiter(this,void 0,void 0,function(){var s;return tslib_1.__generator(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),HelperTask_1.HelperTask.start(),[4,this.buildProject()];case 1:return e.sent(),HelperTask_1.HelperTask.end(),[3,3];case 2:return s=e.sent(),logger.error(s),process.exit(1),[3,3];case 3:return[2]}})})},e.prototype.getVersion=function(){return tslib_1.__awaiter(this,void 0,void 0,function(){return tslib_1.__generator(this,function(e){return[2]})})},e.prototype.initProjectConfig=function(){if(fs.existsSync("./config/project-tools.json")){var e=fs.readJSONSync("./config/project-tools.json");"object"==typeof e.browserDto&&(logger.log(e.browserDto),e.browserDto.vendorList instanceof Array&&this.vendorPack.setVendorList(e.browserDto.vendorList),"string"==typeof e.browserDto.outDir&&(this.vendorPack.setOutDir(e.browserDto.outDir),this.browserPack.setOutDir(e.browserDto.outDir),this.browserAsset.setOutDir(e.browserDto.outDir)),"string"==typeof e.browserDto.publicPath&&this.browserPack.setPublicPath(e.browserDto.publicPath),"object"==typeof e.browserDto.env&&this.browserPack.setENV(e.browserDto.env),"string"==typeof e.browserDto.versionType&&(this.version.setVersionType(e.browserDto.versionType),this.browserPack.setVersionType(e.browserDto.versionType),this.vendorPack.setVersionType(e.browserDto.versionType),this.browserAsset.setVersionType(e.browserDto.versionType)),"number"==typeof e.browserDto.assetsLimit&&this.browserPack.setAssetsLimit(e.browserDto.assetsLimit),"string"==typeof e.browserDto.cdn&&(this.browserAsset.setCDN(e.browserDto.cdn),this.vendorPack.setCDN(e.browserDto.cdn),this.browserPack.setCDN(e.browserDto.cdn))),"object"==typeof e.serverDto&&"object"==typeof e.serverDto.env&&this.serverPack.setENV(e.serverDto.env),this.browserAsset.setEjsData(e)}},e.prototype.buildProject=function(){return tslib_1.__awaiter(this,void 0,void 0,function(){var s=this;return tslib_1.__generator(this,function(e){switch(e.label){case 0:return this.packageTools=new PackageTools_1.PackageTools,this.configAsset=new ConfigAsset_1.ConfigAsset,this.browserAsset=new BrowserAsset_1.BrowserAsset,this.vendorPack=new VendorPack_1.VendorPack,this.browserPack=new BrowserPack_1.BrowserPack,this.serverPack=new ServerPack_1.ServerPack,this.version=new Version_1.Version,this.initProjectConfig(),this.packageTools.init(),[4,this.version.initVersion()];case 1:return e.sent(),this.packageTools.setOnline(this.online),[4,this.packageTools.buildPackageJSON()];case 2:return e.sent(),this.version.packageTools=this.packageTools,this.browserPack.packageTools=this.packageTools,this.vendorPack.packageTools=this.packageTools,this.browserAsset.packageTools=this.packageTools,this.serverPack.packageTools=this.packageTools,this.browserPack.version=this.version,this.vendorPack.version=this.version,this.browserAsset.version=this.version,this.serverPack.version=this.version,this.browserAsset.ejsData.version=this.version.getVersion(),this.serverPack.setBrowserPack(this.browserPack),this.configAsset.watch=this.watch,this.configAsset.addEventListener("change",function(){DebugServer_1.DebugServer.run("index","./build")}),[4,this.configAsset.build()];case 3:return e.sent(),this.browserAsset.setSourceDir("./src/Browser"),this.browserAsset.setWatch(this.watch),[4,this.browserAsset.scan()];case 4:return e.sent(),this.vendorPack.setProduciton(!1===this.watch),[4,this.vendorPack.build()];case 5:return e.sent(),logger.log(this.vendorPack.getVendorJSON()),this.browserPack.setBootFileList(this.browserAsset.getBootScriptFileList()),this.browserPack.setSourceDir("./src/Browser"),this.browserPack.setWatch(this.watch),this.browserPack.setVendorPack(this.vendorPack),[4,this.browserPack.build()];case 6:return e.sent(),this.browserAsset.addEventListener("rebuild",function(){return tslib_1.__awaiter(s,void 0,void 0,function(){return tslib_1.__generator(this,function(e){switch(e.label){case 0:return logger.log("fire browserAsset rebuild"),this.browserPack.setBootFileList(this.browserAsset.getBootScriptFileList()),[4,this.browserPack.rebuild()];case 1:return e.sent(),[2]}})})}),this.serverPack.packageTools=this.packageTools,this.serverPack.setSourceFile("./src/Server/index.bootstrap.ts"),this.serverPack.setOutFile("./build/index"),this.serverPack.setWatch(this.watch),!0===this.autoReloadServer&&this.serverPack.addEventListener("build",function(){return tslib_1.__awaiter(s,void 0,void 0,function(){return tslib_1.__generator(this,function(e){return DebugServer_1.DebugServer.run("index","./build"),[2]})})}),[4,this.serverPack.build()];case 7:return e.sent(),[2]}})})},e}();exports.ProjectTools=ProjectTools;
\No newline at end of file