public static void Generate(ICSharpToTypeScript info) { StringBuilder sb = new StringBuilder(); foreach (var u in info.Uses()) { sb.Append("/// <reference path=\""); sb.Append(u); sb.AppendLine("\" />"); } sb.Append("module "); sb.Append(info.Module()); sb.AppendLine(" {"); //if (info.getJsonMLMeta() != null) sb.AppendLine(" export var meta: { [type:string]:CourseModel.jsClassMeta;} = null;"); //{'~rootTag':<any>'" + info.getJsonMLMeta().root.Name + "' };"); foreach (var en in info.Enums()) GenEnum(en, sb); foreach (var en in info.Types()) { GenType(en, info.ExtendedTypes().ToArray(), info.Module(), sb); //finishCourseModelType(info, en, sb); } var meta = info.getJsonMLMeta(); if (meta != null) { sb.Append("export var meta: CourseModel.jsonMLMeta = <any>"); var json = JsonConvert.SerializeObject(meta, Formatting.None, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore, NullValueHandling = NullValueHandling.Ignore }); sb.Append(json.Replace("###\"", null).Replace("\"###", null)); sb.AppendLine(";"); foreach (var tp in meta.types.Values) { sb.Append(string.Format("export var t{0} = '{1}'; ", tp.name, tp.tagName)); } } if (info.generateFeature(FeatureType.LineNames)) generateLineNames(sb); if (info.generateFeature(FeatureType.LangToLineNames)) GenLangToLine(sb); if (info.generateFeature(FeatureType.LineToLangNames)) GenLinesToLang(sb); if (info.generateFeature(FeatureType.LangLists)) GenLangLists(sb); if (info.generateFeature(FeatureType.LangToEADir)) GenLangToEADir(sb); if (info.generateFeature(FeatureType.gaffFill_normTable)) GenGaffFill_normTable(sb); if (info.generateFeature(FeatureType.authorWebXSD)) GenAuthorWebXSD(sb); //GenInheritanceTree(info, sb); //sb.AppendLine(info.code()); sb.AppendLine("}"); File.WriteAllText(info.TsPath(), sb.ToString(), Encoding.ASCII); }
static bool isCourseModel(ICSharpToTypeScript info) { return info.Module() == "CourseModel"; }
public static void Generate(ICSharpToTypeScript info) { StringBuilder sb = new StringBuilder(); GenerateStr(sb, info); File.WriteAllText(info.TsPath(), sb.ToString(), Encoding.ASCII); }