public ClientTypesExporter(CsharpTypeInfoProvider typeInfoProvider, ClientTypescriptGenerator scriptGenerator) { _scriptGenerator = scriptGenerator; var d = TypeScript.Definitions(scriptGenerator) .WithTypeFormatter(FormatType) .WithMemberFormatter(FormatMember) .WithMemberTypeFormatter(FormatMemberType) .WithVisibility((@class, name) => false) .AsConstEnums(false) .For <DateInterval>() .For <AnalyzerBase>() .WithModuleNameFormatter(module => string.Empty); _definitions = typeInfoProvider.ExposedTypes.Aggregate(d, (def, t) => def.For(t)); }
private static int Generate(string definitionFile, string nestSourceFolder, RestSpec restSpec) { var sourceDirectory = new CSharpSourceDirectory(nestSourceFolder); var typeInfoProvider = new CsharpTypeInfoProvider(); var scriptGenerator = new ClientTypescriptGenerator(typeInfoProvider, sourceDirectory, restSpec); using (var pbar = new ProgressBar(3, "Generating typescript information from NEST sources/code", new ProgressBarOptions { ForegroundColor = ConsoleColor.Yellow })) { var generator = new ClientTypesExporter(typeInfoProvider, scriptGenerator); File.WriteAllText(definitionFile, generator.Generate()); pbar.Tick($"Generated {definitionFile}"); GenerateLineScrubber.LineBasedHacks(definitionFile); pbar.Tick($"Performed line based scrubber over {definitionFile}"); GeneratePrependDefinitions.PrependDefinitions(definitionFile); pbar.Tick($"Prepended known types and annotations {definitionFile}"); return(0); } }
public ClientTypescriptGenerator(CsharpTypeInfoProvider typeInfoProvider, CSharpSourceDirectory sourceDirectory, RestSpec restSpec) { _typeInfoProvider = typeInfoProvider; _sourceDirectory = sourceDirectory; _restSpec = restSpec; }