public static void Main(string[] args) { Directory.CreateDirectory(TargetDirectory); var scripter = new Scripter() .UsingFormatter(new TsFormatter { EnumsAsString = true }); scripter .WithTypeMapping(TsPrimitive.String, typeof(Guid)) .WithTypeMapping(TsPrimitive.String, typeof(TimeSpan)) .WithTypeMapping(new TsInterface(new TsName("Array")), typeof(HashSet <>)) .WithTypeMapping(new TsInterface(new TsName("Array")), typeof(List <>)) .WithTypeMapping(TsPrimitive.Any, typeof(RavenJObject)) .WithTypeMapping(TsPrimitive.Any, typeof(RavenJValue)) .WithTypeMapping(TsPrimitive.Any, typeof(TreePage)) .WithTypeMapping(TsPrimitive.String, typeof(DateTime)) .WithTypeMapping(new TsArray(TsPrimitive.Any, 1), typeof(RavenJArray)) .WithTypeMapping(TsPrimitive.Any, typeof(RavenJToken)) .WithTypeMapping(TsPrimitive.Any, typeof(BlittableJsonReaderObject)); scripter = ConfigureTypes(scripter); Directory.Delete(TargetDirectory, true); Directory.CreateDirectory(TargetDirectory); scripter .SaveToDirectory(TargetDirectory); }
public static void CreateMetaDataTypescript() { //TODO Arash: How to add this file to output. var fileToCompile = @"C:\Users\u045992\source\repos\AngularTsGenerator\Generator\TypeScripter\TypeScript\TypeScriptObject\ValidatorModelBase.cs"; var source = File.ReadAllText(fileToCompile); var parsedSyntaxTree = Parse(source, "", CSharpParseOptions.Default.WithLanguageVersion(LanguageVersion.CSharp5)); var compilation = CSharpCompilation.Create("Test.dll", new SyntaxTree[] { parsedSyntaxTree }, DefaultReferences, DefaultCompilationOptions); Scripter scripter = new Scripter(compilation); GetAllSymbolsVisitor visitor = new GetAllSymbolsVisitor(scripter); visitor.Visit(compilation.Assembly.GlobalNamespace); scripter.SaveToDirectory(@"c:\temp\TypeScriptOutput"); }
public static void Open() { Compilation compilation; var msWorkspace = MSBuildWorkspace.Create(); msWorkspace.WorkspaceFailed += (object sender, WorkspaceDiagnosticEventArgs e) => { Debug.WriteLine(e.Diagnostic.ToString()); }; string solutionPath = @"C:\Users\u045992\source\Projects\TestedLibrary\TestedLibrary.sln"; try { var solution = msWorkspace.OpenSolutionAsync(solutionPath).Result; var proj = solution.Projects.Single(p => p.Name == "TargetLibrary"); compilation = proj.GetCompilationAsync().Result; //CreateMetaDataTypescript(); var typeByMetadataName = compilation.GetTypeByMetadataName(typeof(Guid).FullName); Scripter scripter = new Scripter(compilation); scripter.TypeFilter = t => t.Name != "IExtensibleDataObject" && t.Name != "ClientBase"; scripter.WithTypeMapping(new TsExternalReference(nameof(DayOfWeek), "TypeScriptModels.ts"), typeof(DayOfWeek)); GetAllSymbolsVisitor visitor = new GetAllSymbolsVisitor(scripter); visitor.Visit(compilation.Assembly.GlobalNamespace); scripter.SaveToDirectory(@"c:\temp\TypeScriptOutput"); } catch (Exception) { } }