Example #1
0
//export processEndVisitFragmentDefinition
func processEndVisitFragmentDefinition(node *C.struct_GraphQLAstFragmentDefinition, parser unsafe.Pointer) {
	p := (*Parser)(parser)
	fragment := p.nodes.Head().(*graphql.FragmentDefinition)
	condition := C.GraphQLAstFragmentDefinition_get_type_condition(node)
	condition_name := C.GraphQLAstNamedType_get_name(condition)
	fragment.TypeCondition = C.GoString(C.GraphQLAstName_get_value(condition_name))
	p.endVisitNode()
}
Example #2
0
//export processEndVisitVariableDefinition
func processEndVisitVariableDefinition(node *C.struct_GraphQLAstVariableDefinition, parser unsafe.Pointer) {
	var variable *graphql.VariableDefinition
	var ok bool
	p := (*Parser)(parser)
	last1 := p.endVisitNode()
	last2 := p.endVisitNode()
	last3 := p.endVisitNode()
	value, ok := last1.(*graphql.Value)
	if ok {
		variable, ok = last3.(*graphql.VariableDefinition)
		variable.Variable = last2.(*graphql.Variable)
		variable.DefaultValue = value
	} else {
		p.visitNode(last3)
		variable, ok = last2.(*graphql.VariableDefinition)
		variable.Variable = last1.(*graphql.Variable)
	}
	typeT := (*C.struct_GraphQLAstNamedType)(C.GraphQLAstVariableDefinition_get_type(node))
	typeName := C.GraphQLAstNamedType_get_name(typeT)
	variable.Type.Name = C.GoString(C.GraphQLAstName_get_value(typeName))

}