forked from OSS/graphql
Compare commits
1 Commits
59aa010f0b
...
4063d48a37
Author | SHA1 | Date | |
---|---|---|---|
4063d48a37 |
@ -664,11 +664,26 @@ variableUsageDifference difference errorMessage = OperationDefinitionRule $ \cas
|
|||||||
= filterSelections' selections
|
= filterSelections' selections
|
||||||
>>= lift . mapReaderT (<> mapDirectives directives') . pure
|
>>= lift . mapReaderT (<> mapDirectives directives') . pure
|
||||||
findDirectiveVariables (Full.Directive _ arguments _) = mapArguments arguments
|
findDirectiveVariables (Full.Directive _ arguments _) = mapArguments arguments
|
||||||
mapArguments = Seq.fromList . mapMaybe findArgumentVariables
|
|
||||||
|
mapArguments = Seq.fromList . (>>= findArgumentVariables)
|
||||||
mapDirectives = foldMap findDirectiveVariables
|
mapDirectives = foldMap findDirectiveVariables
|
||||||
findArgumentVariables (Full.Argument _ Full.Node{ node = Full.Variable value', ..} _) =
|
|
||||||
Just (value', [location])
|
findArgumentVariables (Full.Argument _ Full.Node{node = value, ..} _) =
|
||||||
findArgumentVariables _ = Nothing
|
findValueVariables location value
|
||||||
|
|
||||||
|
findValueVariables location (Full.Variable value') = [(value', [location])]
|
||||||
|
findValueVariables location (Full.List values) =
|
||||||
|
values
|
||||||
|
>>= (\(Full.Node{node = value}) -> findValueVariables location value)
|
||||||
|
findValueVariables _ (Full.Object fields) =
|
||||||
|
fields
|
||||||
|
>>= ( \( Full.ObjectField
|
||||||
|
{ location = location
|
||||||
|
, value = Full.Node{node = value}
|
||||||
|
}
|
||||||
|
) -> findValueVariables location value
|
||||||
|
)
|
||||||
|
findValueVariables _ _ = []
|
||||||
makeError operationName (variableName, locations') = Error
|
makeError operationName (variableName, locations') = Error
|
||||||
{ message = errorMessage operationName variableName
|
{ message = errorMessage operationName variableName
|
||||||
, locations = locations'
|
, locations = locations'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user