func Execute(p ExecuteParams, resultChan chan *types.GraphQLResult) { var errors []graphqlerrors.GraphQLFormattedError var result types.GraphQLResult params := BuildExecutionCtxParams{ Schema: p.Schema, Root: p.Root, AST: p.AST, OperationName: p.OperationName, Args: p.Args, Errors: errors, Result: &result, ResultChan: resultChan, } exeContext := buildExecutionContext(params) if result.HasErrors() { return } defer func() { if r := recover(); r != nil { var err error if r, ok := r.(error); ok { err = graphqlerrors.FormatError(r) } exeContext.Errors = append(exeContext.Errors, graphqlerrors.FormatError(err)) result.Errors = exeContext.Errors resultChan <- &result } }() eOperationParams := ExecuteOperationParams{ ExecutionContext: exeContext, Root: p.Root, Operation: exeContext.Operation, } executeOperation(eOperationParams, resultChan) }
func Execute(p ExecuteParams, resultChan chan *types.GraphQLResult) { var errors []error var result types.GraphQLResult params := BuildExecutionCtxParams{ Schema: p.Schema, Root: p.Root, AST: p.AST, OperationName: p.OperationName, Args: p.Args, Errors: errors, Result: &result, ResultChan: resultChan, } exeContext := buildExecutionContext(params) if result.HasErrors() { return } eOperationParams := ExecuteOperationParams{ ExecutionContext: exeContext, Root: p.Root, Operation: exeContext.Operation, } executeOperation(eOperationParams, resultChan) }