Ejemplo n.º 1
0
 def input_value_definition(self, tree: Tree):
     # TODO: Add directives
     description = None
     name = None
     gql_type = None
     default_value = None
     for child in tree.children:
         if child.type == 'description':
             description = child.value
         elif child.type == 'IDENT':
             name = String(str(child.value), ast_node=child)
         elif child.type == 'type':
             gql_type = child.value
         elif child.type == 'value':
             default_value = child.value
         elif child.type == 'discard':
             pass
         else:
             raise UnexpectedASTNode(
                 "Unexpected AST node `{}`, type `{}`".format(
                     child, child.__class__.__name__))
     return GraphQLArgument(
         name=name,
         gql_type=gql_type,
         default_value=default_value,
         description=description,
     )
Ejemplo n.º 2
0
 def field_definition(self, tree: Tree) -> GraphQLField:
     # TODO: Add directives
     description = None
     name = None
     arguments = None
     gql_type = None
     for child in tree.children:
         if child.type == 'description':
             description = child.value
         elif child.type == 'IDENT':
             name = String(str(child.value), ast_node=child)
         elif child.type == 'type':
             gql_type = child.value
         elif child.type == 'arguments':
             arguments = child.value
         elif child.type == 'discard':
             pass
         else:
             raise UnexpectedASTNode(
                 "Unexpected AST node `{}`, type `{}`".format(
                     child, child.__class__.__name__))
     return GraphQLField(
         name=name,
         gql_type=gql_type,
         arguments=arguments,
         description=description
     )
Ejemplo n.º 3
0
 def input_object_type_definition(self, tree: Tree) -> GraphQLInputObjectType:
     # TODO: Add directives
     description = None
     ast_node = None  # TODO: Should we discard it or keep it ?
     name = None
     fields = None
     for child in tree.children:
         if child.type == 'description':
             description = child.value
         elif child.type == 'INPUT':
             ast_node = child
         elif child.type == 'IDENT':
             name = String(str(child.value), ast_node=child)
         elif child.type == 'input_fields':
             fields = child.value
         elif child.type == 'discard':
             pass
         else:
             raise UnexpectedASTNode(
                 "Unexpected AST node `{}`, type `{}`".format(
                     child, child.__class__.__name__))
     return GraphQLInputObjectType(
         name=name,
         fields=fields,
         description=description,
     )
Ejemplo n.º 4
0
    def enum_type_definition(self, tree: Tree):
        # TODO: Add directives
        description = None
        ast_node = None  # TODO: Should we discard it or keep it ?
        name = None
        values = None
        for child in tree.children:
            if child.type == 'description':
                description = child.value
            elif child.type == 'ENUM':
                ast_node = child
            elif child.type == 'IDENT':
                name = String(str(child.value), ast_node=child)
            elif child.type == 'enum_values':
                values = child.value
            elif child.type == 'discard':
                pass
            else:
                raise UnexpectedASTNode(
                    "Unexpected AST node `{}`, type `{}`".format(
                        child, child.__class__.__name__))

        return GraphQLEnumType(
            name=name,
            values=values,
            description=description,
        )
Ejemplo n.º 5
0
 def union_type_definition(self, tree: Tree) -> GraphQLUnionType:
     # TODO: Add directives
     description = None
     ast_node = None  # TODO: Should we discard it or keep it ?
     name = None
     members = None
     for child in tree.children:
         if child.type == 'description':
             description = child.value
         elif child.type == 'UNION':
             ast_node = child
         elif child.type == 'IDENT':
             name = String(str(child.value), ast_node=child)
         elif child.type == 'union_members':
             members = child.value
         elif child.type == 'discard':
             pass
         else:
             raise UnexpectedASTNode(
                 "Unexpected AST node `{}`, type `{}`".format(
                     child, child.__class__.__name__))
     return GraphQLUnionType(
         name=name,
         gql_types=members,
         description=description,
     )
Ejemplo n.º 6
0
 def argument(self, tree: Tree) -> SchemaNode:
     name = None
     value = None
     for child in tree.children:
         if child.type == 'IDENT':
             name = String(str(child.value), ast_node=child)
         elif child.type == 'value':
             value = child.value
         else:
             raise UnexpectedASTNode(
                 "Unexpected AST node `{}`, type `{}`".format(
                     child, child.__class__.__name__))
     return SchemaNode('argument', (name, value))
Ejemplo n.º 7
0
 def named_type(self, tree: Tree) -> SchemaNode:
     return SchemaNode('named_type',
                       String(str(tree.children[0].value),
                              ast_node=tree.children[0]))
Ejemplo n.º 8
0
 def description(self, tree: Tree) -> SchemaNode:
     return SchemaNode('description',
                       String(str(tree.children[0].value),
                            ast_node=tree.children[0]))