"use strict";var _fs=_interopRequireDefault(require("fs")),_path=_interopRequireDefault(require("path")),_util=require("./util"),_eventBus=_interopRequireDefault(require("../../event-bus"));function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}const{PACKAGER_BUILD_DONE:PACKAGER_BUILD_DONE}=_eventBus.default;function BuildModeManager(t){(0,_util.initProjectConfig)(t),this.setRoot(t)}BuildModeManager.prototype._read=function(){let t={};try{t=(0,_util.readJson)(this._configFile)}catch(t){console.log("ENOENT"===t.code?t.message:t)}t.modeOptions||(t.modeOptions={current:-1,list:[]});const e=t.modeOptions;return e.list=e.list.filter(t=>null!==t.id&&-1!==t.id),t},BuildModeManager.prototype._write=function(t){const e=t.modeOptions;e.list=e.list.filter(t=>null!==t.id&&-1!==t.id).reduce((t,e)=>(t.find(t=>t.id===e.id)||t.push(e),t),[]),this._configFile&&_fs.default.writeFileSync(this._configFile,JSON.stringify(t,null,2))},BuildModeManager.prototype.getConfig=function(){return this._read().modeOptions},BuildModeManager.prototype.getAllPages=function(){if(!this.root)return[];const t=_path.default.join(this.root,"src/manifest.json");try{const e=(0,_util.readJson)(t).router.pages||{};return Object.keys(e)}catch(t){return console.log("ENOENT"===t.code?t.message:t),[]}},BuildModeManager.prototype._addMode=function(t,e,i){const o=t.modeOptions;let n;return n=o.list.length?Math.max.apply(null,o.list.map(t=>t.id))+1:0,e.id=n,o.list.push(e),o.current=e.id,i||this._write(t),o},BuildModeManager.prototype.addMode=function(t){const e=this._read();return this._addMode(e,t,!1)},BuildModeManager.prototype.addModes=function(t){const e=this._read();return t.forEach(t=>{this._addMode(e,t,!0)}),this._write(e),e.modeOptions},BuildModeManager.prototype.delete=function(t){const e=this._read(),i=e.modeOptions,o=i.list.findIndex(e=>e.id===t);return-1===o?i.current=-1:(i.list.splice(o,1),i.current===t&&(i.current=o>0?i[o-1].id:i.list.length?i.list[0].id:-1),this._write(e)),i},BuildModeManager.prototype.update=function(t){const e=this._read(),i=e.modeOptions,o=i.list.findIndex(e=>e.id===t.id);return-1!==o&&(i.list[o]=t),this._write(e),i},BuildModeManager.prototype.select=function(t){const e=this._read(),i=e.modeOptions;return-1!==i.list.findIndex(e=>e.id===t)&&(i.current=t,this._write(e),_eventBus.default.emit(PACKAGER_BUILD_DONE)),i},BuildModeManager.prototype.setToNormal=function(){const t=this._read(),e=t.modeOptions;return e.current=-1,this._write(t),_eventBus.default.emit(PACKAGER_BUILD_DONE),e},BuildModeManager.prototype.setRoot=function(t){if("string"==typeof t){return this.root=t,this._configFile=_path.default.resolve(t,_util.CONFIG_FILE),this._read().modeOptions}return null},module.exports=BuildModeManager; //# sourceMappingURL=BuildModeManager.js.map