66using System . Collections . Generic ;
77using System . IO ;
88using System . Linq ;
9- using System . Threading . Tasks ;
9+ using System . Threading ;
10+ using System . Threading . Tasks ;
1011using ApiGenerator . Configuration ;
1112using ApiGenerator . Domain ;
1213using ApiGenerator . Domain . Specification ;
@@ -20,17 +21,17 @@ public class ApiGenerator
2021 {
2122 public static List < string > Warnings { get ; private set ; } = new List < string > ( ) ;
2223
23- public static async Task Generate ( string downloadBranch , bool lowLevelOnly , RestApiSpec spec )
24+ public static async Task Generate ( string downloadBranch , bool lowLevelOnly , RestApiSpec spec , CancellationToken token )
2425 {
25- static async Task DoGenerate ( ICollection < RazorGeneratorBase > generators , RestApiSpec restApiSpec , bool highLevel )
26+ static async Task DoGenerate ( ICollection < RazorGeneratorBase > generators , RestApiSpec restApiSpec , bool highLevel , CancellationToken token )
2627 {
27- var pbarOpts = new ProgressBarOptions { BackgroundColor = ConsoleColor . DarkGray } ;
28+ var pbarOpts = new ProgressBarOptions { ProgressCharacter = '─' , BackgroundColor = ConsoleColor . Yellow } ;
2829 var message = $ "Generating { ( highLevel ? "high" : "low" ) } level code";
2930 using var pbar = new ProgressBar ( generators . Count , message , pbarOpts ) ;
3031 foreach ( var generator in generators )
3132 {
3233 pbar . Message = "Generating " + generator . Title ;
33- await generator . Generate ( restApiSpec , pbar ) ;
34+ await generator . Generate ( restApiSpec , pbar , token ) ;
3435 pbar . Tick ( "Generated " + generator . Title ) ;
3536 }
3637 }
@@ -55,23 +56,10 @@ static async Task DoGenerate(ICollection<RazorGeneratorBase> generators, RestApi
5556 new RequestsGenerator ( ) ,
5657 } ;
5758
58- await DoGenerate ( lowLevelGenerators , spec , highLevel : false ) ;
59+ await DoGenerate ( lowLevelGenerators , spec , highLevel : false , token ) ;
5960 if ( ! lowLevelOnly )
60- await DoGenerate ( highLevelGenerators , spec , highLevel : true ) ;
61+ await DoGenerate ( highLevelGenerators , spec , highLevel : true , token ) ;
6162
62- // Check if there are any non-Stable endpoints present.
63- foreach ( var endpoint in spec . Endpoints )
64- {
65- if ( endpoint . Value . Stability != Stability . Stable )
66- Warnings . Add ( $ "Endpoint { endpoint . Value . Name } is not marked as Stable ({ endpoint . Value . Stability } )") ;
67- }
68-
69- if ( Warnings . Count == 0 ) return ;
70-
71- Console . ForegroundColor = ConsoleColor . Yellow ;
72- foreach ( var warning in Warnings . Distinct ( ) . OrderBy ( w => w ) )
73- Console . WriteLine ( warning ) ;
74- Console . ResetColor ( ) ;
7563 }
7664
7765 public static RestApiSpec CreateRestApiSpecModel ( string downloadBranch , params string [ ] folders )
@@ -84,7 +72,7 @@ public static RestApiSpec CreateRestApiSpecModel(string downloadBranch, params s
8472 var endpoints = new SortedDictionary < string , ApiEndpoint > ( ) ;
8573 var seenFiles = new HashSet < string > ( ) ;
8674 using ( var pbar = new ProgressBar ( directories . Count , $ "Listing { directories . Count } directories",
87- new ProgressBarOptions { BackgroundColor = ConsoleColor . DarkGray , CollapseWhenFinished = false } ) )
75+ new ProgressBarOptions { ProgressCharacter = '─' , BackgroundColor = ConsoleColor . DarkGray , CollapseWhenFinished = false } ) )
8876 {
8977 var folderFiles = directories . Select ( dir =>
9078 Directory . GetFiles ( dir )
0 commit comments