public TypeScriptOutputTypeMetadataGenerator(CodeTranslatorOptions options, IOutputTypeProvider provider)
            : base(new MapCollection(), provider)
        {
            Collection
            .AddMap <Dictionary>(metadata => metadata.IsDictionary, GetDictionaryMetadata)
            .AddMap <Class>(metadata => metadata.ClrType.IsClass && !metadata.IsDictionary && metadata.ClrType != typeof(string), GetClassMetadata)
            .AddMap <Array>(metadata => metadata.IsEnumerable && !metadata.IsDictionary && metadata.ClrType != typeof(string), GetArrayMetadata)
            .AddMap <Enum>(metadata => metadata.IsEnum, GetEnumMetadata)
            .AddMap <int, Number>()
            .AddMap <decimal, Number>()
            .AddMap <double, Number>()
            .AddMap <long, Number>()
            .AddMap <short, Number>()
            .AddMap <float, Number>()
            .AddMap <string, String>()
            .AddMap <bool, Boolean>()
            .AddMap <Guid, String>()
            .AddMap <DateTime, Date>()
            .AddMap <DateTimeOffset, Date>()
            .AddMap <Uri, String>()
            .AddMap <JObject, Any>()
            .AddMap <JToken, Any>();

            options.ConfigureTypeMap?.Invoke(Collection);
        }
 /// <summary>
 /// Initialize instance of type <see cref="OutputTypeMetadataGenerator"/> using passed mapping.
 /// </summary>
 /// <param name="collection"></param>
 /// <param name="provider"></param>
 protected OutputTypeMetadataGenerator(MapCollection collection, IOutputTypeProvider provider)
 {
     Collection   = collection;
     TypeProvider = provider;
 }
示例#3
0
 protected DynamicOutputType(TypeMetadata metadata, IOutputTypeProvider provider)
 {
     TypeProvider = provider;
     TypeMetadata = metadata;
 }
 public Dictionary(TypeMetadata metadata, IOutputTypeProvider provider) : base(metadata, provider)
 {
     Name = new Any().Name;
 }
示例#5
0
 public Class(TypeMetadata metadata, IOutputTypeProvider provider)
     : base(metadata, provider)
 {
 }
示例#6
0
 public Array(OutputTypeName name, TypeMetadata metadata, IOutputTypeProvider provider)
     : base(metadata, provider)
 {
     Name = GetName(name);
 }