import FairyManager from "../../reader/FairyManager"; import Path from "../../Path"; import TsPathOut from "./TsPathOut"; import Setting from "../../Setting"; import { FileUtils } from "../../FileUtils"; import TsExportComponent from "./TsExportComponent"; import TSExportBinder from "./TSExportBinder"; import TSExportGuiPackageNames from "./TSExportGuiPackageNames"; import TSExportGuiBinderList from "./TSExportGuiBinderList"; import Package from "../../data/Package"; import TSExportSoundKey from "./TSExportSoundKey"; export class TsExportAll { fairyManager: FairyManager; get packageList() { return this.fairyManager.packageList; } public GetPackageByName(packageName: string): Package { return this.fairyManager.GetPackageByName(packageName); } constructor(fairyManager: FairyManager) { this.fairyManager = fairyManager; } public async ExportAll() { Path.Delete(TsPathOut.genCodePath); Path.CheckPath(TsPathOut.genCodePath, false) this.ExportTSComponent(); this.ExportTSBinder(); this.ExportTSExportGuiPackageNames(); this.ExportTSExportGuiBinderList(); this.ExportTSExportSoundKey(); await this.CopyToClient(); } public async CopyToClient() { var s = TsPathOut.GeneratesPath; var t = Setting.Options.outCodePath + "/Generates/"; FileUtils.copy(s, t, true); var s = TsPathOut.ExtendsPath; var t = Setting.Options.outCodePath + "/Extends/"; FileUtils.copy(s, t, false); FileUtils.contrastCleaningAskHas = false; FileUtils.contrastCleaningAskResult = false; // 清理删除了的组件 var s = Setting.Options.outCodePath + "/Generates/"; var t = TsPathOut.GeneratesPath; await FileUtils.contrastCleaning(s, t, false, true); var s = Setting.Options.outCodePath + "/Extends/"; var t = TsPathOut.ExtendsPath; await FileUtils.contrastCleaning(s, t, false, true); } private ExportTSComponent() { for(let pkg of this.packageList) { for(let component of pkg.ComponentList) { if(component.isIgnore) continue; let ept: TsExportComponent = new TsExportComponent(component); ept.Export(); } } } private ExportTSBinder() { for(let pkg of this.packageList) { if(pkg.genCode) TSExportBinder.Export(pkg); } } ExportTSExportGuiPackageNames() { TSExportGuiPackageNames.Export(this.packageList); } private ExportTSExportGuiBinderList() { TSExportGuiBinderList.Export(this.packageList); } ExportTSExportSoundKey() { let sound: Package = this.GetPackageByName(Setting.Options.soundPackageName); if(sound != null) { TSExportSoundKey.Export(sound); } } }