22// Licensed under the MIT license.
33
44using System . CommandLine ;
5- using System . CommandLine . Invocation ;
65using System . IO ;
76using System . Threading . Tasks ;
87using Microsoft . Extensions . Logging ;
@@ -15,62 +14,62 @@ static async Task<int> Main(string[] args)
1514 {
1615 var rootCommand = new RootCommand ( ) {
1716 } ;
18-
17+
1918 // command option parameters and aliases
20- var descriptionOption = new Option ( "--openapi" , "Input OpenAPI description file path or URL" , typeof ( string ) ) ;
19+ var descriptionOption = new Option < string > ( "--openapi" , "Input OpenAPI description file path or URL" ) ;
2120 descriptionOption . AddAlias ( "-d" ) ;
2221
23- var outputOption = new Option ( "--output" , " The output directory path for the generated file.", typeof ( FileInfo ) , ( ) => "./output" , arity : ArgumentArity . ZeroOrOne ) ;
22+ var outputOption = new Option < FileInfo > ( "--output" , ( ) => new FileInfo ( "./output" ) , " The output directory path for the generated file.") { Arity = ArgumentArity . ZeroOrOne } ;
2423 outputOption . AddAlias ( "-o" ) ;
2524
26- var versionOption = new Option ( "--version" , "OpenAPI specification version" , typeof ( OpenApiSpecVersion ) ) ;
25+ var versionOption = new Option < OpenApiSpecVersion ? > ( "--version" , "OpenAPI specification version" ) ;
2726 versionOption . AddAlias ( "-v" ) ;
2827
29- var formatOption = new Option ( "--format" , "File format" , typeof ( OpenApiFormat ) ) ;
28+ var formatOption = new Option < OpenApiFormat ? > ( "--format" , "File format" ) ;
3029 formatOption . AddAlias ( "-f" ) ;
3130
32- var logLevelOption = new Option ( "--loglevel" , "The log level to use when logging messages to the main output." , typeof ( LogLevel ) , ( ) => LogLevel . Warning ) ;
31+ var logLevelOption = new Option < LogLevel > ( "--loglevel" , ( ) => LogLevel . Warning , "The log level to use when logging messages to the main output." ) ;
3332 logLevelOption . AddAlias ( "-ll" ) ;
3433
35- var inlineOption = new Option ( "--inline" , "Inline $ref instances" , typeof ( bool ) ) ;
36- inlineOption . AddAlias ( "-i" ) ;
37-
38- var resolveExternalOption = new Option ( "--resolve-external" , "Resolve external $refs" , typeof ( bool ) ) ;
39- resolveExternalOption . AddAlias ( "-ex" ) ;
40-
41- var filterByOperationIdsOption = new Option ( "--filter-by-operationids" , "Filters OpenApiDocument by OperationId(s) provided" , typeof ( string ) ) ;
34+ var filterByOperationIdsOption = new Option < string > ( "--filter-by-operationids" , "Filters OpenApiDocument by OperationId(s) provided" ) ;
4235 filterByOperationIdsOption . AddAlias ( "-op" ) ;
4336
44- var filterByTagsOption = new Option ( "--filter-by-tags" , "Filters OpenApiDocument by Tag(s) provided" , typeof ( string ) ) ;
37+ var filterByTagsOption = new Option < string > ( "--filter-by-tags" , "Filters OpenApiDocument by Tag(s) provided" ) ;
4538 filterByTagsOption . AddAlias ( "-t" ) ;
4639
47- var filterByCollectionOption = new Option ( "--filter-by-collection" , "Filters OpenApiDocument by Postman collection provided" , typeof ( string ) ) ;
40+ var filterByCollectionOption = new Option < string > ( "--filter-by-collection" , "Filters OpenApiDocument by Postman collection provided" ) ;
4841 filterByCollectionOption . AddAlias ( "-c" ) ;
4942
43+ var inlineOption = new Option < bool > ( "--inline" , "Inline $ref instances" ) ;
44+ inlineOption . AddAlias ( "-i" ) ;
45+
46+ var resolveExternalOption = new Option < bool > ( "--resolve-external" , "Resolve external $refs" ) ;
47+ resolveExternalOption . AddAlias ( "-ex" ) ;
48+
5049 var validateCommand = new Command ( "validate" )
5150 {
5251 descriptionOption ,
5352 logLevelOption
5453 } ;
5554
56- validateCommand . Handler = CommandHandler . Create < string , LogLevel > ( OpenApiService . ValidateOpenApiDocument ) ;
55+ validateCommand . SetHandler < string , LogLevel > ( OpenApiService . ValidateOpenApiDocument , descriptionOption , logLevelOption ) ;
5756
5857 var transformCommand = new Command ( "transform" )
5958 {
6059 descriptionOption ,
6160 outputOption ,
6261 versionOption ,
6362 formatOption ,
64- logLevelOption ,
65- inlineOption ,
66- resolveExternalOption ,
63+ logLevelOption ,
6764 filterByOperationIdsOption ,
6865 filterByTagsOption ,
69- filterByCollectionOption
66+ filterByCollectionOption ,
67+ inlineOption ,
68+ resolveExternalOption ,
7069 } ;
7170
72- transformCommand . Handler = CommandHandler . Create < string , FileInfo , OpenApiSpecVersion ? , OpenApiFormat ? , LogLevel , string , string , string , bool , bool > (
73- OpenApiService . ProcessOpenApiDocument ) ;
71+ transformCommand . SetHandler < string , FileInfo , OpenApiSpecVersion ? , OpenApiFormat ? , LogLevel , bool , bool , string , string , string > (
72+ OpenApiService . ProcessOpenApiDocument , descriptionOption , outputOption , versionOption , formatOption , logLevelOption , inlineOption , resolveExternalOption , filterByOperationIdsOption , filterByTagsOption , filterByCollectionOption ) ;
7473
7574 rootCommand . Add ( transformCommand ) ;
7675 rootCommand . Add ( validateCommand ) ;
0 commit comments