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; }
protected DynamicOutputType(TypeMetadata metadata, IOutputTypeProvider provider) { TypeProvider = provider; TypeMetadata = metadata; }
public Dictionary(TypeMetadata metadata, IOutputTypeProvider provider) : base(metadata, provider) { Name = new Any().Name; }
public Class(TypeMetadata metadata, IOutputTypeProvider provider) : base(metadata, provider) { }
public Array(OutputTypeName name, TypeMetadata metadata, IOutputTypeProvider provider) : base(metadata, provider) { Name = GetName(name); }