@@ -880,6 +880,10 @@ private void WriteResolverArguments(Resolver resolver, IMethodSymbol resolverMet
880
880
"var args{0}_options = global::{1}.GetPagingOptions(context.Schema, context.Selection.Field);" ,
881
881
i ,
882
882
WellKnownTypes . PagingHelper ) ;
883
+ Writer . WriteIndentedLine (
884
+ "var args{0}_flags = global::{1}.GetConnectionFlags(context);" ,
885
+ i ,
886
+ WellKnownTypes . ConnectionFlagsHelper ) ;
883
887
Writer . WriteIndentedLine ( "var args{0}_first = context.ArgumentValue<int?>(\" first\" );" , i ) ;
884
888
Writer . WriteIndentedLine ( "var args{0}_after = context.ArgumentValue<string?>(\" after\" );" , i ) ;
885
889
Writer . WriteIndentedLine ( "int? args{0}_last = null;" , i ) ;
@@ -920,7 +924,10 @@ private void WriteResolverArguments(Resolver resolver, IMethodSymbol resolverMet
920
924
Writer . WriteIndentedLine ( "{" ) ;
921
925
using ( Writer . IncreaseIndent ( ) )
922
926
{
923
- Writer . WriteIndentedLine ( "args{0}_includeTotalCount = context.IsSelected(\" totalCount\" );" , i ) ;
927
+ Writer . WriteIndentedLine (
928
+ "args{0}_includeTotalCount = args{0}_flags.HasFlag(global::{1}.TotalCount);" ,
929
+ i ,
930
+ WellKnownTypes . ConnectionFlags ) ;
924
931
}
925
932
926
933
Writer . WriteIndentedLine ( "}" ) ;
@@ -940,14 +947,9 @@ private void WriteResolverArguments(Resolver resolver, IMethodSymbol resolverMet
940
947
using ( Writer . IncreaseIndent ( ) )
941
948
{
942
949
Writer . WriteIndentedLine (
943
- "EnableRelativeCursors = args{0}_options.EnableRelativeCursors" ,
944
- i ) ;
945
- using ( Writer . IncreaseIndent ( ) )
946
- {
947
- Writer . WriteIndentedLine (
948
- "?? global::{0}.EnableRelativeCursors" ,
949
- WellKnownTypes . PagingDefaults ) ;
950
- }
950
+ "EnableRelativeCursors = args{0}_flags.HasFlag(global::{1}.RelativeCursor)" ,
951
+ i ,
952
+ WellKnownTypes . ConnectionFlags ) ;
951
953
}
952
954
953
955
Writer . WriteIndentedLine ( "};" ) ;
@@ -956,48 +958,9 @@ private void WriteResolverArguments(Resolver resolver, IMethodSymbol resolverMet
956
958
957
959
case ResolverParameterKind . ConnectionFlags :
958
960
Writer . WriteIndentedLine (
959
- "var args{0} = global::{1}.Nothing ;" ,
961
+ "var args{0} = global::{1}.GetConnectionFlags(context) ;" ,
960
962
i ,
961
- WellKnownTypes . ConnectionFlags ) ;
962
- Writer . WriteLine ( ) ;
963
-
964
- Writer . WriteIndentedLine (
965
- "if(context.IsSelected(\" edges\" ))" ) ;
966
- Writer . WriteIndentedLine ( "{" ) ;
967
- using ( Writer . IncreaseIndent ( ) )
968
- {
969
- Writer . WriteIndentedLine (
970
- "args{0} |= global::{1}.Edges;" ,
971
- i ,
972
- WellKnownTypes . ConnectionFlags ) ;
973
- }
974
- Writer . WriteIndentedLine ( "}" ) ;
975
- Writer . WriteLine ( ) ;
976
-
977
- Writer . WriteIndentedLine (
978
- "if(context.IsSelected(\" nodes\" ))" ) ;
979
- Writer . WriteIndentedLine ( "{" ) ;
980
- using ( Writer . IncreaseIndent ( ) )
981
- {
982
- Writer . WriteIndentedLine (
983
- "args{0} |= global::{1}.Nodes;" ,
984
- i ,
985
- WellKnownTypes . ConnectionFlags ) ;
986
- }
987
- Writer . WriteIndentedLine ( "}" ) ;
988
- Writer . WriteLine ( ) ;
989
-
990
- Writer . WriteIndentedLine (
991
- "if(context.IsSelected(\" totalCount\" ))" ) ;
992
- Writer . WriteIndentedLine ( "{" ) ;
993
- using ( Writer . IncreaseIndent ( ) )
994
- {
995
- Writer . WriteIndentedLine (
996
- "args{0} |= global::{1}.TotalCount;" ,
997
- i ,
998
- WellKnownTypes . ConnectionFlags ) ;
999
- }
1000
- Writer . WriteIndentedLine ( "}" ) ;
963
+ WellKnownTypes . ConnectionFlagsHelper ) ;
1001
964
break ;
1002
965
1003
966
case ResolverParameterKind . Unknown :
@@ -1007,7 +970,7 @@ private void WriteResolverArguments(Resolver resolver, IMethodSymbol resolverMet
1007
970
resolver . Member . Name ,
1008
971
bindingIndex ++ ,
1009
972
ToFullyQualifiedString ( parameter . Type , resolverMethod , typeLookup ) ) ;
1010
- break ;
973
+ break ;
1011
974
1012
975
default :
1013
976
throw new ArgumentOutOfRangeException ( ) ;
0 commit comments