Esempio n. 1
0
        /// <summary>
        /// Generates TypeScript files from a GenerationSpec
        /// </summary>
        /// <param name="generationSpec"></param>
        /// <returns>Generated TypeScript file paths (relative to the Options.BaseOutputDirectory)</returns>
        public IEnumerable <string> Generate(GenerationSpec generationSpec)
        {
            Requires.NotNull(generationSpec, nameof(generationSpec));

            IEnumerable <string> files = Enumerable.Empty <string>();

            var generationType = Options.UseAttributesWithGenerationSpec ? GenerationType.GenerationSpecWithAttributes : GenerationType.GenerationSpec;

            InitializeGeneration(generationType, generationSpec);
            _generationContext.InitializeGroupGeneratedTypes();

            files = generationSpec.TypeSpecs
                    .Aggregate(files, (acc, kvp) => acc.Concat(Generate(kvp.Key, false)));

            _generationContext.ClearGroupGeneratedTypes();

            files = files.Distinct();

            if (Options.CreateIndexFile)
            {
                files = files.Concat(Options.IndexFileGenerators.Generate(files));
            }

            return(files);
        }
Esempio n. 2
0
        /// <summary>
        /// Generates TypeScript files from a type
        /// </summary>
        /// <param name="type"></param>
        /// <returns>Generated TypeScript file paths (relative to the Options.BaseOutputDirectory)</returns>
        public IEnumerable <string> Generate(Type type)
        {
            Requires.NotNull(type, nameof(type));

            var            generationSpecProvider = new GenerationSpecProvider();
            GenerationSpec generationSpec         = generationSpecProvider.GetGenerationSpec(type);

            return(Generate(new[] { generationSpec }));
        }
Esempio n. 3
0
        /// <summary>
        /// Generates TypeScript files from multiple assemblies
        /// </summary>
        /// <param name="assemblies"></param>
        /// <returns>Generated TypeScript file paths (relative to the Options.BaseOutputDirectory)</returns>
        public IEnumerable <string> Generate(IEnumerable <Assembly> assemblies)
        {
            Requires.NotNullOrEmpty(assemblies, nameof(assemblies));

            var            generationSpecProvider = new GenerationSpecProvider();
            GenerationSpec generationSpec         = generationSpecProvider.GetGenerationSpec(assemblies);

            return(Generate(new[] { generationSpec }));
        }
Esempio n. 4
0
 private void InitializeGeneration(GenerationSpec generationSpec)
 {
     _metadataReaderFactory.GenerationSpec = generationSpec;
 }
 public GenerationSpecMetadataReader(GenerationSpec spec)
 {
     _spec = spec;
 }
Esempio n. 6
0
 private void InitializeGeneration(GenerationType generationType, GenerationSpec generationSpec = null)
 {
     _metadataReaderFactory.GenerationType = generationType;
     _metadataReaderFactory.GenerationSpec = generationSpec;
 }
Esempio n. 7
0
 public GenerationSpecAssemblyMetadataReader(GenerationSpec spec)
 {
     _spec = spec;
 }