From f713b53a591a95ee01efffd590e60d266f4be504 Mon Sep 17 00:00:00 2001 From: Michael Staib Date: Tue, 30 Aug 2022 21:18:54 +0200 Subject: [PATCH] Fixed StrawberryShake duplicate file name issue --- .../MSBuild/StrawberryShake.Blazor.props | 1 + .../MSBuild/StrawberryShake.Blazor.targets | 9 +++----- .../Tooling/.vscode/launch.json | 6 ++++++ .../src/dotnet-graphql/GenerateCommand.cs | 21 +++++++++++++++---- 4 files changed, 27 insertions(+), 10 deletions(-) diff --git a/src/StrawberryShake/MetaPackages/Blazor/MSBuild/StrawberryShake.Blazor.props b/src/StrawberryShake/MetaPackages/Blazor/MSBuild/StrawberryShake.Blazor.props index 31bd76b9ee5..79162641d54 100644 --- a/src/StrawberryShake/MetaPackages/Blazor/MSBuild/StrawberryShake.Blazor.props +++ b/src/StrawberryShake/MetaPackages/Blazor/MSBuild/StrawberryShake.Blazor.props @@ -10,6 +10,7 @@ md5 intermediate + disable diff --git a/src/StrawberryShake/MetaPackages/Blazor/MSBuild/StrawberryShake.Blazor.targets b/src/StrawberryShake/MetaPackages/Blazor/MSBuild/StrawberryShake.Blazor.targets index 92b2818d0ab..c2d43ccbc7a 100644 --- a/src/StrawberryShake/MetaPackages/Blazor/MSBuild/StrawberryShake.Blazor.targets +++ b/src/StrawberryShake/MetaPackages/Blazor/MSBuild/StrawberryShake.Blazor.targets @@ -24,9 +24,6 @@ $(MSBuildProjectDirectory)\$(IntermediateOutputPath)berry\ - - - dotnet $(GenTool) generate "$(MSBuildProjectDirectory)" $(GenCommand) -o "$(GraphQLCodeGenerationRoot)" @@ -37,9 +34,9 @@ $(GenCommand) -r - - - + + + diff --git a/src/StrawberryShake/Tooling/.vscode/launch.json b/src/StrawberryShake/Tooling/.vscode/launch.json index b37497831c2..267277223e0 100644 --- a/src/StrawberryShake/Tooling/.vscode/launch.json +++ b/src/StrawberryShake/Tooling/.vscode/launch.json @@ -12,6 +12,12 @@ "args": [ "generate", "/Users/michael/local/play/StrawberryBuildTests", + "-o /Users/michael/local/play/StrawberryBuildTests/obj/Debug/net7.0/berry/", + "-n StrawberryBuildTests", + "-a md5", + "-s", + "-t", + "-r" ], "cwd": "${workspaceFolder}/src/dotnet-graphql", "console": "internalConsole", diff --git a/src/StrawberryShake/Tooling/src/dotnet-graphql/GenerateCommand.cs b/src/StrawberryShake/Tooling/src/dotnet-graphql/GenerateCommand.cs index 72e46dbdb46..86de3d81baa 100644 --- a/src/StrawberryShake/Tooling/src/dotnet-graphql/GenerateCommand.cs +++ b/src/StrawberryShake/Tooling/src/dotnet-graphql/GenerateCommand.cs @@ -107,9 +107,7 @@ public GenerateCommandHandler(IConsoleOutput output) { if (doc.Kind is SourceDocumentKind.CSharp or SourceDocumentKind.Razor) { - var fileName = doc.Path is null - ? Path.Combine(outputDir, doc.Name + ".cs") - : Path.Combine(outputDir, doc.Path, doc.Name + ".cs"); + var fileName = CreateFileName(outputDir, doc.Path, doc.Name, doc.Kind); var dir = Path.GetDirectoryName(fileName)!; if (!Directory.Exists(dir)) @@ -131,11 +129,26 @@ public GenerateCommandHandler(IConsoleOutput output) } } } - } return statusCode; } + + private static string CreateFileName( + string outputDir, + string? path, + string name, + SourceDocumentKind kind) + { + var kindName = + kind is SourceDocumentKind.CSharp + ? "Client" + : "Components"; + + return path is null + ? Path.Combine(outputDir, $"{name}.{kindName}.cs") + : Path.Combine(outputDir, path, $"{name}.{kindName}.cs"); + } } internal sealed class GenerateCommandArguments