Skip to content

Commit 07ba684

Browse files
[release] [minor] feat: add Async suffix to generated methods by default (#354)
1 parent bdb9f51 commit 07ba684

File tree

91 files changed

+1944
-1926
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+1944
-1926
lines changed

.github/workflows/legacy-tests.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ jobs:
2020

2121
steps:
2222
- uses: actions/checkout@v4
23+
24+
- name: Set up .NET from global.json
25+
uses: actions/setup-dotnet@v4
26+
with:
27+
global-json-file: global.json
2328

2429
- name: Load .env file
2530
uses: xom9ikk/[email protected]

Drivers/Generators/CopyFromDeclareGen.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public class CopyFromDeclareGen(DbDriver dbDriver)
99
public MemberDeclarationSyntax Generate(string queryTextConstant, string argInterface, Query query)
1010
{
1111
return ParseMemberDeclaration($$"""
12-
public async Task {{query.Name}}(List<{{argInterface}}> args)
12+
public async Task {{query.Name.ToMethodName(dbDriver.Options.WithAsyncSuffix)}}(List<{{argInterface}}> args)
1313
{
1414
{{((ICopyFrom)dbDriver).GetCopyFromImpl(query, queryTextConstant)}}
1515
}

Drivers/Generators/ExecDeclareGen.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public MemberDeclarationSyntax Generate(string queryTextConstant, string argInte
1313
{
1414
var parametersStr = CommonGen.GetMethodParameterList(argInterface, query.Params);
1515
return ParseMemberDeclaration($$"""
16-
public async Task {{query.Name}}({{parametersStr}})
16+
public async Task {{query.Name.ToMethodName(dbDriver.Options.WithAsyncSuffix)}}({{parametersStr}})
1717
{
1818
{{GetMethodBody(queryTextConstant, query)}}
1919
}

Drivers/Generators/ExecLastIdDeclareGen.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public MemberDeclarationSyntax Generate(string queryTextConstant, string argInte
1313
{
1414
var parametersStr = CommonGen.GetMethodParameterList(argInterface, query.Params);
1515
return ParseMemberDeclaration($$"""
16-
public async Task<{{dbDriver.GetIdColumnType(query)}}> {{query.Name}}({{parametersStr}})
16+
public async Task<{{dbDriver.GetIdColumnType(query)}}> {{query.Name.ToMethodName(dbDriver.Options.WithAsyncSuffix)}}({{parametersStr}})
1717
{
1818
{{GetMethodBody(queryTextConstant, query)}}
1919
}

Drivers/Generators/ExecRowsDeclareGen.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public MemberDeclarationSyntax Generate(string queryTextConstant, string argInte
1313
{
1414
var parametersStr = CommonGen.GetMethodParameterList(argInterface, query.Params);
1515
return ParseMemberDeclaration($$"""
16-
public async Task<long> {{query.Name}}({{parametersStr}})
16+
public async Task<long> {{query.Name.ToMethodName(dbDriver.Options.WithAsyncSuffix)}}({{parametersStr}})
1717
{
1818
{{GetMethodBody(queryTextConstant, query)}}
1919
}

Drivers/Generators/ManyDeclareGen.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public MemberDeclarationSyntax Generate(string queryTextConstant, string argInte
1515
var parametersStr = CommonGen.GetMethodParameterList(argInterface, query.Params);
1616
var returnType = $"Task<List<{returnInterface}>>";
1717
return ParseMemberDeclaration($$"""
18-
public async {{returnType}} {{query.Name}}({{parametersStr}})
18+
public async {{returnType}} {{query.Name.ToMethodName(dbDriver.Options.WithAsyncSuffix)}}({{parametersStr}})
1919
{
2020
{{GetMethodBody(queryTextConstant, returnInterface, query)}}
2121
}

Drivers/Generators/OneDeclareGen.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public MemberDeclarationSyntax Generate(string queryTextConstant, string argInte
1515
var returnType = $"Task<{dbDriver.AddNullableSuffixIfNeeded(returnInterface, false)}>";
1616
var parametersStr = CommonGen.GetMethodParameterList(argInterface, query.Params);
1717
return ParseMemberDeclaration($$"""
18-
public async {{returnType}} {{query.Name}}({{parametersStr}})
18+
public async {{returnType}} {{query.Name.ToMethodName(dbDriver.Options.WithAsyncSuffix)}}({{parametersStr}})
1919
{
2020
{{GetMethodBody(queryTextConstant, returnInterface, query)}}
2121
}

Extensions/StringExtensions.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ public static string ToModelName(this string value, string schema, string defaul
5151
return $"{schemaName}_{value.TrimEnd('s')}".ToPascalCase(); // TODO implement better way to turn words to singular
5252
}
5353

54+
public static string ToMethodName(this string value, bool withAsyncSuffix)
55+
{
56+
var methodName = value.ToPascalCase();
57+
return withAsyncSuffix ? $"{methodName}Async" : methodName;
58+
}
59+
5460
public static string AppendSemicolonUnlessEmpty(this string input)
5561
{
5662
return input == string.Empty ? "" : $"{input};";

PluginOptions/Options.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public Options(GenerateRequest generateRequest)
2525
NamespaceName = rawOptions.NamespaceName;
2626
DotnetFramework = DotnetFrameworkExtensions.ParseName(rawOptions.TargetFramework);
2727
Overrides = rawOptions.Overrides ?? [];
28+
WithAsyncSuffix = rawOptions.WithAsyncSuffix;
2829

2930
if (rawOptions.DebugRequest && generateRequest.Settings.Codegen.Wasm is not null)
3031
throw new ArgumentException("Debug request mode cannot be used with WASM plugin");
@@ -57,6 +58,8 @@ public Options(GenerateRequest generateRequest)
5758
/// </summary>
5859
public bool UseCentralPackageManagement { get; }
5960

61+
public bool WithAsyncSuffix { get; }
62+
6063
private static readonly Dictionary<string, DriverName> EngineToDriverMapping = new()
6164
{
6265
{ "mysql", DriverName.MySqlConnector },

PluginOptions/RawOptions.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public record RawOptions
99
public string OverrideDriverVersion { get; init; } = string.Empty;
1010

1111
[JsonPropertyName("generateCsproj")]
12-
public bool GenerateCsproj { get; init; } = true; // generating .csproj files by default
12+
public bool GenerateCsproj { get; init; } = true;
1313

1414
[JsonPropertyName("targetFramework")]
1515
public string TargetFramework { get; init; } = DotnetFramework.Dotnet80.ToName();
@@ -31,6 +31,9 @@ public record RawOptions
3131

3232
[JsonPropertyName("useCentralPackageManagement")]
3333
public bool UseCentralPackageManagement { get; init; }
34+
35+
[JsonPropertyName("withAsyncSuffix")]
36+
public bool WithAsyncSuffix { get; init; } = true;
3437
}
3538

3639
public class OverrideOption

0 commit comments

Comments
 (0)