diff --git a/.vscode/launch.json b/.vscode/launch.json index 31280b5fe5..d7b69c20f5 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -5,7 +5,7 @@ "version": "0.2.0", "configurations": [ { - "name": ".NET Core Launch (console)", + "name": "Launch TypeScript", "type": "coreclr", "request": "launch", "preLaunchTask": "build", @@ -24,6 +24,46 @@ "console": "internalConsole", "stopAtEntry": false }, + { + "name": "Launch Java", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + // If you have changed target frameworks, make sure to update the program path. + "program": "${workspaceFolder}/src/kiota/bin/Debug/net5.0/kiota.dll", + "args": ["--openapi", + "C:/sources/github/msgraph-sdk-powershell/openApiDocs/v1.0/mail.yml", + "--language", + "java", + "-o", + "C:/Users/vibiret/Desktop/graphjavav4/utilities/src/main/java/graphjavav4/utilities", + "-n", + "graphjavav4.utilities" ], + "cwd": "${workspaceFolder}/src/kiota", + // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console + "console": "internalConsole", + "stopAtEntry": false + }, + { + "name": "Launch CSharp", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + // If you have changed target frameworks, make sure to update the program path. + "program": "${workspaceFolder}/src/kiota/bin/Debug/net5.0/kiota.dll", + "args": ["--openapi", + "C:/sources/github/msgraph-sdk-powershell/openApiDocs/v1.0/mail.yml", + "--language", + "csharp", + "-o", + "C:/Users/vibiret/Desktop/graphjavav4/utilities/src/main/java/graphjavav4/utilities", + "-n", + "graphcsharpv4.utilities" ], + "cwd": "${workspaceFolder}/src/kiota", + // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console + "console": "internalConsole", + "stopAtEntry": false + }, { "name": ".NET Core Attach", "type": "coreclr", diff --git a/src/kiota.core/Extensions/StringExtensions.cs b/src/kiota.core/Extensions/StringExtensions.cs new file mode 100644 index 0000000000..123defae3d --- /dev/null +++ b/src/kiota.core/Extensions/StringExtensions.cs @@ -0,0 +1,9 @@ +using System.Linq; + +namespace kiota.core { + public static class StringExtensions { + public static string ToLowerFirstCharacter(this string current) { + return $"{char.ToLowerInvariant(current.FirstOrDefault())}{current.Substring(1)}"; + } + } +} diff --git a/src/kiota.core/KiotaBuilder.cs b/src/kiota.core/KiotaBuilder.cs index b7e252ddcc..a0ec7ef9bf 100644 --- a/src/kiota.core/KiotaBuilder.cs +++ b/src/kiota.core/KiotaBuilder.cs @@ -271,7 +271,7 @@ private CodeMethod CreateOperationMethod(OperationType operationType, OpenApiOpe } var method = new CodeMethod() { - Name = operationType.ToString() + "Async", + Name = operationType.ToString(), ReturnType = new CodeType() { Name = "object"} }; var methodParameter = new CodeParameter diff --git a/src/kiota.core/Refiners/CSharpRefiner.cs b/src/kiota.core/Refiners/CSharpRefiner.cs index 2127983fc7..9668d8f587 100644 --- a/src/kiota.core/Refiners/CSharpRefiner.cs +++ b/src/kiota.core/Refiners/CSharpRefiner.cs @@ -7,7 +7,14 @@ public override void Refine(CodeNamespace generatedCode) { generatedCode.AddUsing(new CodeUsing() { Name = "System" }); generatedCode.AddUsing(new CodeUsing() { Name = "System.Threading.Tasks" }); + AddAsyncSuffix(generatedCode); AddInnerClasses(generatedCode); } + private void AddAsyncSuffix(CodeElement currentElement) { + if(currentElement is CodeMethod currentMethod) + currentMethod.Name += "Async"; + foreach(var childElement in currentElement.GetChildElements()) + AddAsyncSuffix(childElement); + } } } diff --git a/src/kiota.core/Writers/JavaWriter.cs b/src/kiota.core/Writers/JavaWriter.cs index 0db34cb751..2c8eda924d 100644 --- a/src/kiota.core/Writers/JavaWriter.cs +++ b/src/kiota.core/Writers/JavaWriter.cs @@ -72,7 +72,7 @@ public override void WriteMethod(CodeMethod code) { //TODO javadoc WriteLine("@javax.annotation.Nonnull"); - WriteLine($"public java.util.concurrent.Future<{GetTypeString(code.ReturnType)}> {code.Name}({string.Join(',', code.Parameters.Select(p=> GetParameterSignature(p)).ToList())}) {{ return null; }}"); + WriteLine($"public java.util.concurrent.Future<{GetTypeString(code.ReturnType)}> {code.Name.ToLowerFirstCharacter()}({string.Join(',', code.Parameters.Select(p=> GetParameterSignature(p)).ToList())}) {{ return null; }}"); } public override void WriteNamespaceDeclaration(CodeNamespace.BlockDeclaration code) diff --git a/src/kiota.core/Writers/TypeScriptWriter.cs b/src/kiota.core/Writers/TypeScriptWriter.cs index f00c5fe1ed..d217078c2d 100644 --- a/src/kiota.core/Writers/TypeScriptWriter.cs +++ b/src/kiota.core/Writers/TypeScriptWriter.cs @@ -87,7 +87,7 @@ public override void WriteIndexer(CodeIndexer code) public override void WriteMethod(CodeMethod code) { - WriteLine($"public readonly {code.Name} = ({string.Join(',', code.Parameters.Select(p=> GetParameterSignature(p)).ToList())}) : Promise<{GetTypeString(code.ReturnType)}> => {{ return Promise.resolve({(code.ReturnType.Name.Equals("string") ? "''" : "{}")}); }}"); + WriteLine($"public readonly {code.Name.ToLowerFirstCharacter()} = ({string.Join(',', code.Parameters.Select(p=> GetParameterSignature(p)).ToList())}) : Promise<{GetTypeString(code.ReturnType)}> => {{ return Promise.resolve({(code.ReturnType.Name.Equals("string") ? "''" : "{}")}); }}"); } public override void WriteNamespaceDeclaration(CodeNamespace.BlockDeclaration code) => WriteLine();