Beispiel #1
0
        public void JsonProperty(string typescriptType, string cSharpType, bool generateDeclarations, string typeType)
        {
            var input = string.Format(@"
using System;
using Newtonsoft.Json;

namespace Foo
{{
  public {1} Test
  {{
    [JsonProperty(""foo"")]
    {2}{0} Prop {{ get; set; }}
  }}
}}
", cSharpType, typeType, typeType != "interface" ? "public " : "");

            var processor = new TypeScriptProcessor(new[] { input }, new[] { typeof(JsonPropertyAttribute).Assembly.Location });
            var output    = processor.GetTypescriptAsString(generateDeclarations);

            Assert.Equal(string.Format(@"{2}interface Test {{
  foo{1}: {0};
}}

", typescriptType, cSharpType.ToLower().Contains("string") ? "?" : "", generateDeclarations ? "" : "export "), output);
        }
Beispiel #2
0
        public void Enumerable(string propertyTypeFormat, string expectedTypescriptType, string memberType, bool generateDeclarations, string typeType)
        {
            var input = string.Format(@"
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;

namespace Foo
{{
  public {1} Test
  {{
    {2}{0} Prop {{ get; set; }}
  }}
}}
", string.Format(propertyTypeFormat, memberType), typeType, typeType != "interface" ? "public " : "");

            var processor = new TypeScriptProcessor(new [] { input }, new[] { typeof(HashSet <>).Assembly.Location });
            var output    = processor.GetTypescriptAsString(generateDeclarations);

            Assert.Equal(string.Format(@"{1}interface Test {{
  Prop?: {0}[];
}}

", expectedTypescriptType, generateDeclarations ? "" : "export "), output);
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            System.Console.WriteLine("***   Weld 1.0          ***");
            System.Console.WriteLine("***   Martijn Muurman   ***");

            if (args.Length < 1 || args.Length > 2)
            {
                System.Console.WriteLine("usage :  Weld assemblyName [outputfoldername]");
                return;
            }

            var folderName = GetOrCreateFolderAndGetName(args);

            var fileName = Path.GetFullPath(args[0]);
            var assembly = Assembly.LoadFrom(fileName);

            System.Console.WriteLine("processing {0}",fileName);

            var processor = new TypeScriptProcessor();

            var results = processor.ProcessAssembly(assembly);
            System.Console.WriteLine("found {0} decorated types", results.Count);

            foreach (var result in results)
            {
                var fullFileName = Path.Combine(folderName, result.FileName);
                System.Console.WriteLine("Writing file {0}", fullFileName);
                File.WriteAllText(fullFileName, result.Content);
            }
        }
Beispiel #4
0
        public void Enum()
        {
            var input     = @"
public enum Foo
{
  Bar,
  B,
  Baz = 4,
  Boo = 5,
  Foo = 4,
  A
}";
            var processor = new TypeScriptProcessor(input);
            var output    = processor.GetTypescriptAsString(false);

            Assert.Equal(@"export enum Foo {
  Bar = 0,
  B = 1,
  Baz = 4,
  Boo = 5,
  Foo = 4,
  A = 5
}

", output);
        }
Beispiel #5
0
        static void Main(string[] args)
        {
            System.Console.WriteLine("***   Weld 1.0          ***");
            System.Console.WriteLine("***   Martijn Muurman   ***");

            if (args.Length < 1 || args.Length > 2)
            {
                System.Console.WriteLine("usage :  Weld assemblyName [outputfoldername]");
                return;
            }

            var folderName = GetOrCreateFolderAndGetName(args);

            var fileName = Path.GetFullPath(args[0]);
            var assembly = Assembly.LoadFrom(fileName);

            System.Console.WriteLine("processing {0}", fileName);

            var processor = new TypeScriptProcessor();

            var results = processor.ProcessAssembly(assembly);

            System.Console.WriteLine("found {0} decorated types", results.Count);


            foreach (var result in results)
            {
                var fullFileName = Path.Combine(folderName, result.FileName);
                System.Console.WriteLine("Writing file {0}", fullFileName);
                File.WriteAllText(fullFileName, result.Content);
            }
        }
Beispiel #6
0
        public void Property(
            string typescriptType,
            string cSharpType,
            bool generateDeclarations,
            string typeType)
        {
            var input = string.Format(@"
using System;

namespace Foo
{{
  public {1} Test
  {{
    {2}{0} Prop {{ get; set; }}
  }}
  public {1} Test2
  {{
    {2}Test Prop {{ get; set; }}
  }}
}}
", cSharpType, typeType, typeType != "interface" ? "public " : "");

            var processor = new TypeScriptProcessor(input);
            var output    = processor.GetTypescriptAsString(generateDeclarations);

            Assert.Equal(string.Format(@"{2}interface Test {{
  Prop{1}: {0};
}}

{2}interface Test2 {{
  Prop{3}: Test;
}}

", typescriptType, cSharpType.ToLower().Contains("string") ? "?" : "", generateDeclarations ? "" : "export ", typeType == "struct" ? "" : "?"), output);
        }
Beispiel #7
0
        public void Dictionary(string typescriptType, string cSharpType, bool generateDeclarations)
        {
            var input = string.Format(@"
using System.Collections.Generic;

namespace Foo
{{
  public class Test : Dictionary<int, {0}>
  {{
  }}
  public class Test2 : Dictionary<string, {0}>
  {{
  }}
  public class Test3 : Test2
  {{
    public {0} Prop {{ get; set; }}
    public Dictionary<string, {0}> Dict {{ get; set; }}
  }}
}}
", cSharpType);

            var processor = new TypeScriptProcessor(input);
            var output    = processor.GetTypescriptAsString(generateDeclarations);

            Assert.Equal(string.Format(@"{2}interface Test {{
  [key: number]: {0};
}}

{2}interface Test2 {{
  [key: string]: {0};
}}

{2}interface Test3 extends Test2 {{
  Prop{1}: {0};
  Dict?: {{ [key: string]: {0}; }};
}}

", typescriptType, cSharpType.ToLower().Contains("string") ? "?" : "", generateDeclarations ? "" : "export "), output);
        }
Beispiel #8
0
        public async Task Compile_Success()
        {
            var processor    = new TypeScriptProcessor();
            var pipeline     = new Mock <IAssetPipeline>().SetupAllProperties();
            var context      = new Mock <IAssetContext>().SetupAllProperties();
            var asset        = new Mock <IAsset>().SetupAllProperties();
            var env          = new Mock <IHostingEnvironment>();
            var fileProvider = new Mock <IFileProvider>();

            string temp = Path.GetTempPath();
            string path = Path.Combine(temp, "foo.ts");

            File.WriteAllText(path, "const i = 1;");

            var inputFile = new PhysicalFileInfo(new FileInfo(path));

            context.Object.Content = new Dictionary <string, byte[]> {
                { "/file.md", "const i = 1;".AsByteArray() },
            };

            context.Setup(s => s.HttpContext.RequestServices.GetService(typeof(IHostingEnvironment)))
            .Returns(env.Object);

            context.SetupGet(s => s.Asset)
            .Returns(asset.Object);

            env.SetupGet(e => e.WebRootFileProvider)
            .Returns(fileProvider.Object);

            fileProvider.Setup(f => f.GetFileInfo(It.IsAny <string>()))
            .Returns(inputFile);

            await processor.ExecuteAsync(context.Object);

            var result = context.Object.Content.First().Value;

            Assert.Equal("var i = 1;", result.AsString().Trim());
        }
Beispiel #9
0
        public void MultipleFieldStruct(string typescriptType, string cSharpType, bool generateDeclarations, string typeType)
        {
            var input = string.Format(@"
using System;

namespace Foo
{{
  public {1} Test
  {{
    {2}{0} x, y;
  }}
}}
", cSharpType, typeType, typeType != "interface" ? "public " : "");

            var processor = new TypeScriptProcessor(input);
            var output    = processor.GetTypescriptAsString(generateDeclarations);

            Assert.Equal(string.Format(@"{2}interface Test {{
  x{1}: {0};
  y{1}: {0};
}}

", typescriptType, cSharpType.ToLower().Contains("string") ? "?" : "", generateDeclarations ? "" : "export "), output);
        }
Beispiel #10
0
        public static void TestSampleType <T>(string folder = "Scenarios")
        {
            var processor = new TypeScriptProcessor();
            //switch between testing and writing expectations
            var writeExpectations = false;

            var name          = typeof(T).Name;
            var fileName      = String.Format("{0}.ts", name);
            var filePath      = String.Format("./../../{0}/{1}", folder, fileName);
            var expectContent = File.ReadAllText(filePath);


            var result = processor.Process(typeof(T));

            if (!writeExpectations)
            {
                Assert.AreEqual(fileName, result.FileName);
                Assert.AreEqual(expectContent, result.Content);
            }
            else
            {
                File.WriteAllText(filePath, result.Content);
            }
        }