import Package from "../../data/Package"; import Path from '../../Path'; import TsPathTemplate from "./TsPathTemplate"; import TsPathOut from "./TsPathOut"; import { TemplateSystem } from "../../TemplateSystem"; import PathHelper from "../../PathHelper"; export default class TSExportBinder { public static Export(pkg: Package) { let path = pkg.tsBinderPath; let coms = []; let imports = []; let importDict = new Map(); for(let component of pkg.ComponentList) { if (component.isIgnore) continue; coms.push([ component .classNameExtend ]); if (!importDict.has(component.classNameExtend)) { importDict.set(component.classNameExtend, true); imports.push([ component.classNameExtend, PathHelper.GetImportPath(path, component.tsExtendPath) ]); } } // 没有组件被导出 if(imports.length == 0) { pkg.genCodeNoExport = true; return; } let template: TemplateSystem = new TemplateSystem(Path.ReadTxt(TsPathTemplate.Binder)); template.AddVariable("imports",imports); template.AddVariable("coms",coms); template.AddVariable("className",pkg.classNameBinder); let content = template.Parse(); Path.CheckPath(path); Path.WriteTxt(path,content); } }