Esempio n. 1
0
        /// <summary>
        /// Creates a <see cref="TypeScriptTranspiler"/>.
        /// </summary>
        /// <param name="typeDefinitionTranslator">Translator used to translate type definitions.</param>
        /// <exception cref="ArgumentNullException">Thrown when <paramref name="typeDefinitionTranslator"/> is null.</exception>
        public TypeScriptTranspiler(IConfigurationSource configurationSource, ITypeDefinitionTranslator typeDefinitionTranslator)
        {
            if (configurationSource == null)
            {
                throw new ArgumentNullException(nameof(configurationSource));
            }

            _configuration            = configurationSource.GetSection <TranspilationConfiguration>() ?? TranspilationConfiguration.Default;
            _typeDefinitionTranslator = typeDefinitionTranslator ?? throw new ArgumentNullException(nameof(typeDefinitionTranslator));
        }
Esempio n. 2
0
        private string GetDefaultConstructorCall(Type type, TranspilationConfiguration configuration, ITypeReferenceTranslator typeReferenceTranslator)
        {
            var unconstructables = new[] { typeof(string), typeof(object) };

            if (configuration.CustomTypeMaps.Any(map => map.MapsType(type)) ||
                !type.IsClass ||
                unconstructables.Contains(type) ||
                type.IsGenericParameter)
            {
                return(_defaultValueAssignments[DefaultValueStrategy.PrimitiveDefaults](type));
            }

            return($" = new {typeReferenceTranslator.Translate(type).ReferencedTypeName}()");
        }
Esempio n. 3
0
        /// <summary>
        /// Creates a DefaultValueProvider.
        /// </summary>
        /// <param name="configurationSource">Configuration that the provider should respect.</param>
        /// <param name="logger">Logger to use for writing log messages.</param>
        public DefaultValueProvider(IConfigurationSource configurationSource, ILogger logger, ITypeReferenceTranslator typeReferenceTranslator)
        {
            if (configurationSource is null)
            {
                throw new ArgumentNullException(nameof(configurationSource));
            }

            _logger        = logger ?? throw new ArgumentNullException(nameof(logger));
            _configuration = configurationSource.GetSection <TranspilationConfiguration>()
                             ?? TranspilationConfiguration.Default;

            _defaultValueAssignments.Add(DefaultValueStrategy.DefaultConstructor,
                                         type => GetDefaultConstructorCall(type, _configuration, typeReferenceTranslator));
        }
Esempio n. 4
0
 /// <summary>
 /// Creates a <see cref="CustomMappedTranslationStrategy"/>.
 /// </summary>
 /// <param name="configurationSource">Source for the configuration that should be used.</param>
 /// <param name="translator">Full translator that can be used to translate parts of the complete type reference.</param>
 public CustomMappedTranslationStrategy(IConfigurationSource configurationSource, ITypeReferenceTranslator translator)
     : base(translator)
 {
     _configuration = configurationSource.GetSection <TranspilationConfiguration>()
                      ?? TranspilationConfiguration.Default;
 }
Esempio n. 5
0
 /// <summary>
 /// Creates a <see cref="DefaultTypeReferenceTranslator"/>.
 /// </summary>
 /// <param name="configurationSource">Source for the configuration that should be used.</param>
 public DecoratorTranslator(IConfigurationSource configurationSource)
 {
     _configuration = configurationSource.GetSection <TranspilationConfiguration>();
 }