diff --git a/src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj b/src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj index c832225fd..ea617ae94 100644 --- a/src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj +++ b/src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj @@ -3,6 +3,7 @@ Exe netcoreapp3.1 + 9.0 true hidi ./../../artifacts @@ -14,7 +15,7 @@ - + diff --git a/src/Microsoft.OpenApi.Hidi/OpenApiService.cs b/src/Microsoft.OpenApi.Hidi/OpenApiService.cs index d1dea081a..3c9fdb7d5 100644 --- a/src/Microsoft.OpenApi.Hidi/OpenApiService.cs +++ b/src/Microsoft.OpenApi.Hidi/OpenApiService.cs @@ -30,11 +30,12 @@ public static async void ProcessOpenApiDocument( OpenApiSpecVersion? version, OpenApiFormat? format, LogLevel loglevel, + bool inline, + bool resolveexternal, string filterbyoperationids, string filterbytags, - string filterbycollection, - bool inline, - bool resolveexternal) + string filterbycollection + ) { var logger = ConfigureLoggerInstance(loglevel); diff --git a/src/Microsoft.OpenApi.Hidi/Program.cs b/src/Microsoft.OpenApi.Hidi/Program.cs index 2f6f8f272..841c710e5 100644 --- a/src/Microsoft.OpenApi.Hidi/Program.cs +++ b/src/Microsoft.OpenApi.Hidi/Program.cs @@ -2,7 +2,6 @@ // Licensed under the MIT license. using System.CommandLine; -using System.CommandLine.Invocation; using System.IO; using System.Threading.Tasks; using Microsoft.Extensions.Logging; @@ -15,45 +14,45 @@ static async Task Main(string[] args) { var rootCommand = new RootCommand() { }; - + // command option parameters and aliases - var descriptionOption = new Option("--openapi", "Input OpenAPI description file path or URL", typeof(string)); + var descriptionOption = new Option("--openapi", "Input OpenAPI description file path or URL"); descriptionOption.AddAlias("-d"); - var outputOption = new Option("--output", "The output directory path for the generated file.", typeof(FileInfo), () => "./output", arity: ArgumentArity.ZeroOrOne); + var outputOption = new Option("--output", () => new FileInfo("./output"), "The output directory path for the generated file.") { Arity = ArgumentArity.ZeroOrOne }; outputOption.AddAlias("-o"); - var versionOption = new Option("--version", "OpenAPI specification version", typeof(OpenApiSpecVersion)); + var versionOption = new Option("--version", "OpenAPI specification version"); versionOption.AddAlias("-v"); - var formatOption = new Option("--format", "File format", typeof(OpenApiFormat)); + var formatOption = new Option("--format", "File format"); formatOption.AddAlias("-f"); - var logLevelOption = new Option("--loglevel", "The log level to use when logging messages to the main output.", typeof(LogLevel), () => LogLevel.Warning); + var logLevelOption = new Option("--loglevel", () => LogLevel.Warning, "The log level to use when logging messages to the main output."); logLevelOption.AddAlias("-ll"); - var inlineOption = new Option("--inline", "Inline $ref instances", typeof(bool)); - inlineOption.AddAlias("-i"); - - var resolveExternalOption = new Option("--resolve-external", "Resolve external $refs", typeof(bool)); - resolveExternalOption.AddAlias("-ex"); - - var filterByOperationIdsOption = new Option("--filter-by-operationids", "Filters OpenApiDocument by OperationId(s) provided", typeof(string)); + var filterByOperationIdsOption = new Option("--filter-by-operationids", "Filters OpenApiDocument by OperationId(s) provided"); filterByOperationIdsOption.AddAlias("-op"); - var filterByTagsOption = new Option("--filter-by-tags", "Filters OpenApiDocument by Tag(s) provided", typeof(string)); + var filterByTagsOption = new Option("--filter-by-tags", "Filters OpenApiDocument by Tag(s) provided"); filterByTagsOption.AddAlias("-t"); - var filterByCollectionOption = new Option("--filter-by-collection", "Filters OpenApiDocument by Postman collection provided", typeof(string)); + var filterByCollectionOption = new Option("--filter-by-collection", "Filters OpenApiDocument by Postman collection provided"); filterByCollectionOption.AddAlias("-c"); + var inlineOption = new Option("--inline", "Inline $ref instances"); + inlineOption.AddAlias("-i"); + + var resolveExternalOption = new Option("--resolve-external", "Resolve external $refs"); + resolveExternalOption.AddAlias("-ex"); + var validateCommand = new Command("validate") { descriptionOption, logLevelOption }; - validateCommand.Handler = CommandHandler.Create(OpenApiService.ValidateOpenApiDocument); + validateCommand.SetHandler(OpenApiService.ValidateOpenApiDocument, descriptionOption, logLevelOption); var transformCommand = new Command("transform") { @@ -61,16 +60,16 @@ static async Task Main(string[] args) outputOption, versionOption, formatOption, - logLevelOption, - inlineOption, - resolveExternalOption, + logLevelOption, filterByOperationIdsOption, filterByTagsOption, - filterByCollectionOption + filterByCollectionOption, + inlineOption, + resolveExternalOption, }; - transformCommand.Handler = CommandHandler.Create( - OpenApiService.ProcessOpenApiDocument); + transformCommand.SetHandler ( + OpenApiService.ProcessOpenApiDocument, descriptionOption, outputOption, versionOption, formatOption, logLevelOption, inlineOption, resolveExternalOption, filterByOperationIdsOption, filterByTagsOption, filterByCollectionOption); rootCommand.Add(transformCommand); rootCommand.Add(validateCommand);