summaryrefslogtreecommitdiff
path: root/src/Language/GraphQL/AST/Parser.hs
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2020-09-21 07:28:40 +0200
committerEugen Wissner <belka@caraus.de>2020-09-21 07:28:40 +0200
commit3e393004ae03a717218a805043d9237ca29ac947 (patch)
treedcff103322dc100eb83ba17f59f504b28b69a191 /src/Language/GraphQL/AST/Parser.hs
parent38c3097bcf2d3c92a180c5d328cfb15ef80f0b95 (diff)
downloadgraphql-3e393004ae03a717218a805043d9237ca29ac947.tar.gz
Validate all variables are defined
Diffstat (limited to 'src/Language/GraphQL/AST/Parser.hs')
-rw-r--r--src/Language/GraphQL/AST/Parser.hs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/Language/GraphQL/AST/Parser.hs b/src/Language/GraphQL/AST/Parser.hs
index 18ffd2a..29eee79 100644
--- a/src/Language/GraphQL/AST/Parser.hs
+++ b/src/Language/GraphQL/AST/Parser.hs
@@ -402,7 +402,7 @@ argument = label "Argument" $ do
location <- getLocation
name' <- name
colon
- value' <- value
+ value' <- valueNode
pure $ Argument name' value' location
fragmentSpread :: Parser FragmentSpread
@@ -439,6 +439,12 @@ fragmentName = but (symbol "on") *> name <?> "FragmentName"
typeCondition :: Parser TypeCondition
typeCondition = symbol "on" *> name <?> "TypeCondition"
+valueNode :: Parser (Node Value)
+valueNode = do
+ location <- getLocation
+ value' <- value
+ pure $ Node value' location
+
value :: Parser Value
value = Variable <$> variable
<|> Float <$> try float