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> /// Creates <see cref="CodeTranslator"/> with default dependencies for TypeScript. /// </summary> /// <param name="options"></param> /// <param name="configureServices"></param> /// <returns></returns> public static ICodeTranslator Create(CodeTranslatorOptions options, Action <CodeTranslatorBuilder> configureServices = null) { var builder = new CodeTranslatorBuilder(); builder .AddDependency(options) .AddDependency <ICodeTranslator, CodeTranslator>() .AddDependency <ICodeGenerator, TypeScriptCodeGenerator>() .AddDependency <ITypePartsCodeGenerator, TypeScriptTypePartsGenerator>() .AddDependency <IMetadataGenerator, MetadataGenerator>() .AddDependency <IPropertyInfoResolver, PropertyInfoResolver>() .AddDependency <IOutputTypeProvider, TypeScriptOutputTypeProvider>() .AddDependency <IDependenciesGraph, DependenciesGraph>() .AddDependency <IOutputTypeMetadataGenerator, TypeScriptOutputTypeMetadataGenerator>() .AddDependency <IIndentedStringBuilder, IndentedStringBuilder>(); configureServices?.Invoke(builder); return(builder.Build()); }
public TypeScriptCodeGenerator(ITypePartsCodeGenerator generator, CodeTranslatorOptions options) { _generator = generator ?? throw new ArgumentNullException(nameof(generator)); _options = options ?? throw new ArgumentNullException(nameof(options)); }
public TypeScriptTypePartsGenerator(CodeTranslatorOptions options) { _options = options; }