diff options
Diffstat (limited to 'src/Language/GraphQL/AST')
| -rw-r--r-- | src/Language/GraphQL/AST/Document.hs | 3 | ||||
| -rw-r--r-- | src/Language/GraphQL/AST/Encoder.hs | 2 | ||||
| -rw-r--r-- | src/Language/GraphQL/AST/Parser.hs | 13 |
3 files changed, 10 insertions, 8 deletions
diff --git a/src/Language/GraphQL/AST/Document.hs b/src/Language/GraphQL/AST/Document.hs index 5d21ca0..b03b905 100644 --- a/src/Language/GraphQL/AST/Document.hs +++ b/src/Language/GraphQL/AST/Document.hs @@ -253,7 +253,8 @@ data ObjectField a = ObjectField Name a -- -- Variables are usually passed along with the query, but not in the query -- itself. They make queries reusable. -data VariableDefinition = VariableDefinition Name Type (Maybe ConstValue) +data VariableDefinition = + VariableDefinition Name Type (Maybe ConstValue) Location deriving (Eq, Show) -- ** Type References diff --git a/src/Language/GraphQL/AST/Encoder.hs b/src/Language/GraphQL/AST/Encoder.hs index fcd415e..e88dcd9 100644 --- a/src/Language/GraphQL/AST/Encoder.hs +++ b/src/Language/GraphQL/AST/Encoder.hs @@ -95,7 +95,7 @@ variableDefinitions formatter = parensCommas formatter $ variableDefinition formatter variableDefinition :: Formatter -> VariableDefinition -> Lazy.Text -variableDefinition formatter (VariableDefinition var ty defaultValue') +variableDefinition formatter (VariableDefinition var ty defaultValue' _) = variable var <> eitherFormat formatter ": " ":" <> type' ty diff --git a/src/Language/GraphQL/AST/Parser.hs b/src/Language/GraphQL/AST/Parser.hs index 62a247d..18ffd2a 100644 --- a/src/Language/GraphQL/AST/Parser.hs +++ b/src/Language/GraphQL/AST/Parser.hs @@ -492,12 +492,13 @@ variableDefinitions = listOptIn parens variableDefinition <?> "VariableDefinitions" variableDefinition :: Parser VariableDefinition -variableDefinition = VariableDefinition - <$> variable - <* colon - <*> type' - <*> defaultValue - <?> "VariableDefinition" +variableDefinition = label "VariableDefinition" $ do + location <- getLocation + variableName <- variable + colon + variableType <- type' + variableValue <- defaultValue + pure $ VariableDefinition variableName variableType variableValue location variable :: Parser Name variable = dollar *> name <?> "Variable" |
