Parse interface type definition

This commit is contained in:
2020-01-11 08:32:25 +01:00
parent f4ed06741d
commit adffa185bb
4 changed files with 21 additions and 4 deletions

View File

@ -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)) ->