/// <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); }
/// <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 })); }
/// <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 })); }
private void InitializeGeneration(GenerationSpec generationSpec) { _metadataReaderFactory.GenerationSpec = generationSpec; }
public GenerationSpecMetadataReader(GenerationSpec spec) { _spec = spec; }
private void InitializeGeneration(GenerationType generationType, GenerationSpec generationSpec = null) { _metadataReaderFactory.GenerationType = generationType; _metadataReaderFactory.GenerationSpec = generationSpec; }
public GenerationSpecAssemblyMetadataReader(GenerationSpec spec) { _spec = spec; }