public override void Render(GenContext ctx) { ctx.Tasks.Add(Task.Run(() => { GenArgs args = ctx.GenArgs; var brightRequirePath = args.TypescriptBrightRequirePath; var brightPackageName = args.TypescriptBrightPackageName; var render = ctx.Render; var ass = ctx.Assembly; var fileContent = new List <string>(); if (args.TypescriptUsePuertsByteBuf) { fileContent.Add(TypescriptStringTemplate.PuertsByteBufImports); } else { fileContent.Add(TypescriptStringTemplate.GetByteBufImports(brightRequirePath, brightPackageName)); } if (args.TypescriptEmbedBrightTypes) { fileContent.Add(StringTemplateManager.Ins.GetTemplateString("config/typescript_bin/vectors")); fileContent.Add(TypescriptStringTemplate.SerializeTypes); fileContent.Add(TypescriptStringTemplate.ProtoTypes); } else { fileContent.Add(TypescriptStringTemplate.GetSerializeImports(brightRequirePath, brightPackageName)); fileContent.Add(TypescriptStringTemplate.GetProtocolImports(brightRequirePath, brightPackageName)); fileContent.Add(TypescriptStringTemplate.GetVectorImports(brightRequirePath, brightPackageName)); } fileContent.Add(@$ "export namespace {ass.TopModule} {{"); foreach (var type in ctx.ExportTypes) { fileContent.Add(render.RenderAny(type)); } fileContent.Add(render.RenderStubs("ProtocolStub", ass.TopModule, ctx.ExportTypes.Where(t => t is DefProto).Cast <DefProto>().ToList(), ctx.ExportTypes.Where(t => t is DefRpc).Cast <DefRpc>().ToList())); fileContent.Add("}"); // end of topmodule var content = FileHeaderUtil.ConcatAutoGenerationHeader(string.Join('\n', fileContent), ELanguage.TYPESCRIPT); var file = "Types.ts"; var md5 = CacheFileUtil.GenMd5AndAddCache(file, content); ctx.GenCodeFilesInOutputCodeDir.Add(new FileInfo() { FilePath = file, MD5 = md5 }); })); }
public void Load(Defines defines, RemoteAgent agent, GenArgs args) { LoadCommon(defines, agent, args); foreach (var e in defines.Enums) { AddType(new DefEnum(e)); } foreach (var b in defines.Beans) { AddType(new DefBean(b)); } foreach (var p in defines.Protos) { AddType(new DefProto(p)); } foreach (var r in defines.Rpcs) { AddType(new DefRpc(r)); } foreach (var type in Types.Values) { type.AssemblyBase = this; } foreach (var type in Types.Values) { try { s_logger.Trace("precompile type:{0} begin", type.FullName); type.PreCompile(); s_logger.Trace("precompile type:{0} end", type.FullName); } catch (Exception) { agent.Error("precompile type:{0} error", type.FullName); throw; } } foreach (var type in Types.Values) { try { s_logger.Trace("compile type:{0} begin", type.FullName); type.Compile(); s_logger.Trace("compile type:{0} end", type.FullName); } catch (Exception) { agent.Error("compile type:{0} error", type.FullName); s_logger.Error("compile type:{0} error", type.FullName); throw; } } foreach (var type in Types.Values) { try { s_logger.Trace("post compile type:{0} begin", type.FullName); type.PostCompile(); s_logger.Trace("post compile type:{0} end", type.FullName); } catch (Exception) { agent.Error("post compile type:{0} error", type.FullName); s_logger.Error("post compile type:{0} error", type.FullName); throw; } } }