@@ -495,6 +495,7 @@ private static ModuleResult GetModuleModel(GeneratorAttributeSyntaxContext conte
495495 a . AttributeClass ? . ToDisplayString ( ) == "HakoJS.SourceGeneration.JSEnumAttribute" ) ;
496496
497497 var casing = NameCasing . None ;
498+ var valueCasing = ValueCasing . Original ;
498499 if ( jsEnumAttr != null )
499500 {
500501 foreach ( var arg in jsEnumAttr . NamedArguments )
@@ -503,6 +504,10 @@ private static ModuleResult GetModuleModel(GeneratorAttributeSyntaxContext conte
503504 {
504505 casing = ( NameCasing ) ( int ) arg . Value . Value ;
505506 }
507+ else if ( arg . Key == "ValueCasing" && arg . Value . Value != null )
508+ {
509+ valueCasing = ( ValueCasing ) ( int ) arg . Value . Value ;
510+ }
506511 }
507512 }
508513
@@ -515,10 +520,13 @@ private static ModuleResult GetModuleModel(GeneratorAttributeSyntaxContext conte
515520 if ( member . IsImplicitlyDeclared || ! member . HasConstantValue )
516521 continue ;
517522
523+ var propertyName = ApplyCasing ( member . Name , casing ) ;
524+ var valueName = ApplyValueCasing ( member . Name , valueCasing ) ;
525+
518526 enumValues . Add ( new EnumValueModel
519527 {
520- Name = member . Name ,
521- JsName = ApplyCasing ( member . Name , casing ) ,
528+ Name = valueName ,
529+ JsName = propertyName ,
522530 Value = member . ConstantValue ?? 0 ,
523531 Documentation = ExtractXmlDocumentation ( member )
524532 } ) ;
@@ -1059,6 +1067,7 @@ private static List<ModuleEnumReference> FindModuleEnumReferences(INamedTypeSymb
10591067 exportName ??= jsEnumName ;
10601068
10611069 var casing = NameCasing . None ;
1070+ var valueCasing = ValueCasing . Original ;
10621071 if ( jsEnumAttr != null )
10631072 {
10641073 foreach ( var arg in jsEnumAttr . NamedArguments )
@@ -1067,6 +1076,10 @@ private static List<ModuleEnumReference> FindModuleEnumReferences(INamedTypeSymb
10671076 {
10681077 casing = ( NameCasing ) ( int ) arg . Value . Value ;
10691078 }
1079+ else if ( arg . Key == "ValueCasing" && arg . Value . Value != null )
1080+ {
1081+ valueCasing = ( ValueCasing ) ( int ) arg . Value . Value ;
1082+ }
10701083 }
10711084 }
10721085
@@ -1079,10 +1092,13 @@ private static List<ModuleEnumReference> FindModuleEnumReferences(INamedTypeSymb
10791092 if ( member . IsImplicitlyDeclared || ! member . HasConstantValue )
10801093 continue ;
10811094
1095+ var propertyName = ApplyCasing ( member . Name , casing ) ;
1096+ var valueName = ApplyValueCasing ( member . Name , valueCasing ) ;
1097+
10821098 values . Add ( new EnumValueModel
10831099 {
1084- Name = member . Name ,
1085- JsName = ApplyCasing ( member . Name , casing ) ,
1100+ Name = valueName ,
1101+ JsName = propertyName ,
10861102 Value = member . ConstantValue ?? 0 ,
10871103 Documentation = ExtractXmlDocumentation ( member )
10881104 } ) ;
0 commit comments