Skip to content

Commit 54f075f

Browse files
authored
Merge pull request #530 from kescherCode/master
Add options to Mapster.Tool to generate files with #nullable directives
2 parents 7d8a172 + 79669a2 commit 54f075f

File tree

5 files changed

+19
-4
lines changed

5 files changed

+19
-4
lines changed

src/ExpressionTranslator/ExpressionTranslator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1896,7 +1896,7 @@ public override string ToString()
18961896
}
18971897

18981898
// NOTE: type alias cannot solve all name conflicted case, user should use PrintFullTypeName
1899-
// keep logic here for compatability
1899+
// keep logic here for compatibility
19001900
if (_typeNames != null)
19011901
{
19021902
var names = _typeNames

src/Mapster.Tool/ExtensionOptions.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ public class ExtensionOptions
2525
[Option('s', "skipExisting", Required = false, HelpText = "Set true to skip generating already existing files")]
2626
public bool SkipExistingFiles { get; set; }
2727

28+
[Option('N', "nullableDirective", Required = false, HelpText = "Set true to add \"#nullable enable\" to the top of generated extension files")]
29+
public bool GenerateNullableDirective { get; set; }
30+
2831
[Usage(ApplicationAlias = "dotnet mapster extension")]
2932
public static IEnumerable<Example> Examples =>
3033
new List<Example>

src/Mapster.Tool/MapperOptions.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ public class MapperOptions
2525
[Option('s', "skipExisting", Required = false, HelpText = "Set true to skip generating already existing files")]
2626
public bool SkipExistingFiles { get; set; }
2727

28+
[Option('N', "nullableDirective", Required = false, HelpText = "Set true to add \"#nullable enable\" to the top of generated mapper files")]
29+
public bool GenerateNullableDirective { get; set; }
30+
2831
[Usage(ApplicationAlias = "dotnet mapster mapper")]
2932
public static IEnumerable<Example> Examples =>
3033
new List<Example>

src/Mapster.Tool/ModelOptions.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ public class ModelOptions
2828
[Option('s', "skipExisting", Required = false, HelpText = "Set true to skip generating already existing files")]
2929
public bool SkipExistingFiles { get; set; }
3030

31+
[Option('N', "nullableDirective", Required = false, HelpText = "Set true to add \"#nullable enable\" to the top of generated model files")]
32+
public bool GenerateNullableDirective { get; set; }
33+
3134
[Usage(ApplicationAlias = "dotnet mapster model")]
3235
public static IEnumerable<Example> Examples =>
3336
new List<Example>

src/Mapster.Tool/Program.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,9 @@ private static void GenerateMappers(MapperOptions opt)
133133
}
134134
}
135135

136-
var code = translator.ToString();
136+
var code = opt.GenerateNullableDirective ?
137+
$"#nullable enable{Environment.NewLine}{translator}" :
138+
translator.ToString();
137139
WriteFile(code, path);
138140
}
139141
}
@@ -266,7 +268,9 @@ private static void CreateModel(ModelOptions opt, Type type, AdaptAttributeBuild
266268
});
267269
}
268270

269-
var code = translator.ToString();
271+
var code = opt.GenerateNullableDirective ?
272+
$"#nullable enable{Environment.NewLine}{translator}" :
273+
translator.ToString();
270274
WriteFile(code, path);
271275

272276
static Type getPropType(MemberInfo mem)
@@ -481,7 +485,9 @@ private static void GenerateExtensions(ExtensionOptions opt)
481485
GenerateExtensionMethods(mapType, config, tuple, translator, type, mapperAttr.IsHelperClass);
482486
}
483487

484-
var code = translator.ToString();
488+
var code = opt.GenerateNullableDirective ?
489+
$"#nullable enable{Environment.NewLine}{translator}" :
490+
translator.ToString();
485491
WriteFile(code, path);
486492
}
487493
}

0 commit comments

Comments
 (0)