From adffa185bb249394ef651392b41b7a20b26031cc Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sat, 11 Jan 2020 08:32:25 +0100 Subject: Parse interface type definition --- src/Language/GraphQL/AST/Parser.hs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/Language/GraphQL/AST') diff --git a/src/Language/GraphQL/AST/Parser.hs b/src/Language/GraphQL/AST/Parser.hs index 274045d..41748b2 100644 --- a/src/Language/GraphQL/AST/Parser.hs +++ b/src/Language/GraphQL/AST/Parser.hs @@ -38,6 +38,7 @@ typeSystemDefinition = schemaDefinition typeDefinition :: Parser TypeDefinition typeDefinition = scalarTypeDefinition <|> objectTypeDefinition + <|> interfaceTypeDefinition <|> unionTypeDefinition "TypeDefinition" @@ -83,6 +84,15 @@ unionMemberTypes sepBy' = UnionMemberTypes <*> name `sepBy'` pipe "UnionMemberTypes" +interfaceTypeDefinition :: Parser TypeDefinition +interfaceTypeDefinition = InterfaceTypeDefinition + <$> description + <* symbol "interface" + <*> name + <*> opt directives + <*> braces (many fieldDefinition) + "InterfaceTypeDefinition" + implementsInterfaces :: Foldable t => (Parser Text -> Parser Text -> Parser (t NamedType)) -> -- cgit v1.2.3