@@ -67,19 +67,13 @@ public function getQueryFields(FieldNode $fieldNode, ResolveInfo $resolveInfo):
67
67
{
68
68
if (null === $ this ->getFieldNodeSelections ($ fieldNode )) {
69
69
$ query = $ fieldNode ->selectionSet ->selections ;
70
- $ selectedFields = [];
71
- $ fragmentFields = [];
72
- $ res = $ resolveInfo ;
73
70
/** @var FieldNode $field */
74
- $ response =$ this ->getQueryData ($ query , $ res );
75
- $ selectedFields =$ response ['selectedFields ' ];
76
- $ fragmentFields =$ response ['fragmentFields ' ];
77
- if ($ fragmentFields ) {
78
- $ selectedFields = array_merge ([], $ selectedFields , ...$ fragmentFields );
71
+ $ res = $ this ->getQueryData ($ query , $ resolveInfo );
72
+ if ($ res ['fragmentFields ' ]) {
73
+ $ res ['selectedFields ' ] = array_merge ([], $ res ['selectedFields ' ], ...$ res ['fragmentFields ' ]);
79
74
}
80
- $ this ->setSelectionsForFieldNode ($ fieldNode , array_unique ($ selectedFields ));
75
+ $ this ->setSelectionsForFieldNode ($ fieldNode , array_unique ($ res [ ' selectedFields ' ] ));
81
76
}
82
-
83
77
return $ this ->getFieldNodeSelections ($ fieldNode );
84
78
}
85
79
@@ -91,14 +85,12 @@ public function getQueryFields(FieldNode $fieldNode, ResolveInfo $resolveInfo):
91
85
*/
92
86
public function getQueryData ($ query , $ resolveInfo )
93
87
{
94
- $ selectedFields = [];
95
- $ fragmentFields = [];
88
+ $ selectedFields = $ fragmentFields = [];
96
89
foreach ($ query as $ field ) {
97
90
if ($ field ->kind === NodeKind::INLINE_FRAGMENT ) {
98
91
$ fragmentFields [] = $ this ->addInlineFragmentFields ($ resolveInfo , $ field );
99
92
} elseif ($ field ->kind === NodeKind::FRAGMENT_SPREAD &&
100
93
($ spreadFragmentNode = $ resolveInfo ->fragments [$ field ->name ->value ])) {
101
-
102
94
foreach ($ spreadFragmentNode ->selectionSet ->selections as $ spreadNode ) {
103
95
if (isset ($ spreadNode ->selectionSet ->selections )) {
104
96
if ($ spreadNode ->kind === NodeKind::FIELD && isset ($ spreadNode ->name )) {
0 commit comments