/// <summary> /// Create the template output /// </summary> public override string TransformText() { #line 21 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt" var modelName = this.ModelName.ToCamelCase(); var className = this.ModelName; var module = new ESModule(className); var modelVariable = this.EntityName.ToCamelCase(); var builder = new StringBuilder(); var lambdaParameter = modelVariable.Left(1); this.Modules.Add(module); foreach (var import in this.Imports) { this.WriteLine(import.DeclarationCode); } #line default #line hidden this.Write("\r\nexport class "); #line 37 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(className)); #line default #line hidden this.Write(" {\r\n"); #line 38 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt" foreach (var formField in this.FormFields) { if (!this.IsIdentityEntity || formField.IsClientIdentity()) { var variableName = formField.Name; var name = formField.Name; var type = formField.ClientDataType; builder.AppendWithLeadingIfLength(", ", string.Format("{0}: {1}", variableName.ToCamelCase(), type)); #line default #line hidden this.Write(" public "); #line 49 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.MakeVariable(modelVariable, variableName))); #line default #line hidden this.Write(": "); #line 49 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(type)); #line default #line hidden this.Write(";\r\n"); #line 50 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt" } } #line default #line hidden this.Write("\r\n constructor(options: { "); #line 55 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(builder.ToString())); #line default #line hidden this.Write(" })\r\n constructor("); #line 56 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(lambdaParameter)); #line default #line hidden this.Write(": any)\r\n {\r\n"); #line 58 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt" builder = new StringBuilder(); foreach (var formField in this.FormFields) { if (!this.IsIdentityEntity || formField.IsClientIdentity()) { string variableName; var name = formField.Name; var type = formField.ClientDataType; if (formField.IsKey) { variableName = "id"; } else { variableName = formField.Name.ToCamelCase(); } builder.AppendWithLeadingIfLength(" && ", string.Format("{0}.{1} !== undefined", lambdaParameter, variableName)); } } #line default #line hidden this.Write(" if ("); #line 82 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(builder.ToString())); #line default #line hidden this.Write(") {\r\n"); #line 83 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt" builder = new StringBuilder(); foreach (var formField in this.FormFields) { if (!this.IsIdentityEntity || formField.IsClientIdentity()) { var variableName = formField.Name; var name = formField.Name; var type = formField.ClientDataType; builder.AppendWithLeadingIfLength(", ", string.Format("{0}: {1}", variableName, type)); #line default #line hidden this.Write(" this."); #line 96 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.MakeVariable(modelVariable, variableName))); #line default #line hidden this.Write(" = "); #line 96 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(lambdaParameter)); #line default #line hidden this.Write("."); #line 96 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(variableName)); #line default #line hidden this.Write(";\r\n"); #line 97 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt" } } #line default #line hidden this.Write(" }\r\n else if ("); #line 102 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(lambdaParameter)); #line default #line hidden this.Write(" !== undefined) {\r\n (<any>Object).assign(this, "); #line 103 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(lambdaParameter)); #line default #line hidden this.Write(");\r\n } else {\r\n throw new TypeError(\"Unexpected arguments to Course const" + "ructor\")\r\n }\r\n }\r\n"); #line 108 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt" builder = new StringBuilder(); foreach (var formField in this.FormFields) { if (!this.IsIdentityEntity || formField.IsClientIdentity()) { var variableName = formField.Name; var name = formField.Name; var type = formField.ClientDataType; builder.AppendWithLeadingIfLength(", ", string.Format("{0}: this.{0}", this.MakeVariable(modelVariable, variableName))); } } #line default #line hidden this.Write("\r\n public get "); #line 124 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(modelVariable)); #line default #line hidden this.Write("Data() {\r\n return { "); #line 125 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(builder.ToString())); #line default #line hidden this.Write(" };\r\n }\r\n}\r\n"); return(this.GenerationEnvironment.ToString()); }
public static List <Module> GetModules(string contents, string fileName) { var currentAst = new TypeScriptAST(); var modules = new List <Module>(); currentAst.MakeAST(contents, fileName); foreach (var functionDeclaration in currentAst.RootNode.Children.OfType <FunctionDeclaration>().Where(f => f.Modifiers != null && f.Modifiers.Any(m => m.Kind == SyntaxKind.ExportKeyword))) { var module = new ExportedFunction(functionDeclaration.IdentifierStr); modules.Add(module); } foreach (var classDeclaration in currentAst.GetDescendants().OfType <ClassDeclaration>()) { Module module = null; if (classDeclaration.Decorators != null) { foreach (var decorator in classDeclaration.Decorators) { if (decorator.Expression is CallExpression) { var callExpression = (CallExpression)decorator.Expression; switch (callExpression.IdentifierStr) { case "NgModule": { module = new AngularModule(classDeclaration.IdentifierStr); modules.Add(module); } break; case "Component": { module = new Page(classDeclaration.IdentifierStr); modules.Add(module); } break; case "Pipe": { module = new Pipe(classDeclaration.IdentifierStr); modules.Add(module); } break; case "Directive": { module = new Directive(classDeclaration.IdentifierStr); modules.Add(module); } break; case "Injectable": { module = new Provider(classDeclaration.IdentifierStr); modules.Add(module); } break; default: { DebugUtils.Break(); break; } } } else { DebugUtils.Break(); } } } if (module == null) { module = new ESModule(classDeclaration.IdentifierStr); modules.Add(module); } } return(modules); }