diff --git a/.DS_Store b/.DS_Store index f10db01..9f12458 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/src/.DS_Store b/src/.DS_Store index edd418b..056bab4 100644 Binary files a/src/.DS_Store and b/src/.DS_Store differ diff --git a/src/Nswag/.DS_Store b/src/Nswag/.DS_Store new file mode 100644 index 0000000..025480a Binary files /dev/null and b/src/Nswag/.DS_Store differ diff --git a/src/Nswag/Nswag.sln b/src/Nswag/Nswag.sln new file mode 100644 index 0000000..45818c3 --- /dev/null +++ b/src/Nswag/Nswag.sln @@ -0,0 +1,16 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nswag", "Nswag\Nswag.csproj", "{275DEC50-FB97-45FC-A9B4-D4707017F889}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {275DEC50-FB97-45FC-A9B4-D4707017F889}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {275DEC50-FB97-45FC-A9B4-D4707017F889}.Debug|Any CPU.Build.0 = Debug|Any CPU + {275DEC50-FB97-45FC-A9B4-D4707017F889}.Release|Any CPU.ActiveCfg = Release|Any CPU + {275DEC50-FB97-45FC-A9B4-D4707017F889}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/src/Nswag/Nswag/.DS_Store b/src/Nswag/Nswag/.DS_Store new file mode 100644 index 0000000..a79c722 Binary files /dev/null and b/src/Nswag/Nswag/.DS_Store differ diff --git a/src/Nswag/Nswag/Nswag.csproj b/src/Nswag/Nswag/Nswag.csproj new file mode 100644 index 0000000..79157fe --- /dev/null +++ b/src/Nswag/Nswag/Nswag.csproj @@ -0,0 +1,14 @@ + + + + Exe + net8.0 + enable + enable + + + + + + + diff --git a/src/Nswag/Nswag/Program.cs b/src/Nswag/Nswag/Program.cs new file mode 100644 index 0000000..d68ebf6 --- /dev/null +++ b/src/Nswag/Nswag/Program.cs @@ -0,0 +1,56 @@ +// See https://aka.ms/new-console-template for more information + +using NJsonSchema.CodeGeneration.TypeScript; +using NSwag; +using NSwag.CodeGeneration.OperationNameGenerators; +using NSwag.CodeGeneration.TypeScript; + +var document = OpenApiDocument.FromUrlAsync(("http://localhost:5000/swagger/v1/swagger.json")).Result; + +var settings = new TypeScriptClientGeneratorSettings +{ + ClassName = "{controller}Client", + ClientBaseClass = "AuthorizedApiBase", + ConfigurationClass = "IConfig", + GenerateDtoTypes = true, + UseTransformOptionsMethod = true, + TypeScriptGeneratorSettings = + { + EnumStyle = TypeScriptEnumStyle.Enum, + DateTimeType = TypeScriptDateTimeType.Date, + NullValue = TypeScriptNullValue.Null, + TypeStyle = TypeScriptTypeStyle.Interface, + GenerateDefaultValues = true, + MarkOptionalProperties = true, + TypeScriptVersion = 4.3m + }, + OperationNameGenerator = new MultipleClientsFromFirstTagAndOperationIdGenerator(), + Template = TypeScriptTemplate.Fetch, +}; + +var generatorApiClient = new TypeScriptClientGenerator(document, settings); +var codeApiClient = generatorApiClient.GenerateFile(); +File.WriteAllText("ManagingApi.ts", codeApiClient); + +var settingsTypes = new TypeScriptClientGeneratorSettings +{ + GenerateDtoTypes = true, + TypeScriptGeneratorSettings = + { + EnumStyle = TypeScriptEnumStyle.Enum, + DateTimeType = TypeScriptDateTimeType.Date, + NullValue = TypeScriptNullValue.Null, + TypeStyle = TypeScriptTypeStyle.Interface, + GenerateDefaultValues = true, + MarkOptionalProperties = true, + TypeScriptVersion = 4.3m + }, + GenerateClientClasses = false, + GenerateClientInterfaces = false, + GenerateOptionalParameters = false, + GenerateResponseClasses = false, +}; + +var generatorTypes = new TypeScriptClientGenerator(document, settingsTypes); +var codeTypes = generatorTypes.GenerateFile(); +File.WriteAllText("ManagingApiTypes.ts", codeTypes); \ No newline at end of file