Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The execution pipeline has been rewritten to improve readability in some areas, and fix the result marshalling bugs that were popping up. The summary of the changes is: * support for the Node interface method of boundary field lookup has been dropped. It was only supported for a brief window and everything should be using the better @boundary method. * execution results are now collected before the merging step. This means all results are stored in their own map and will not be mutated as other steps execute. * null bubbling as per the GraphQL spec is now done in it's own step. * when formatting the response, the selection set is now used as the source of truth. This is done to better accomodate queries using fragments that currently break in some scenarios. These cases should now be fixed. * there is no more partial unmarshalling, all results are unmarshalled into either map[string]interface{} or []interface. This means there are no steps of the pipeline that get conditionally skipped, as is the case right now. * tracing is gone from the execution related code as it was not being used. Co-authored-by: Nicolas Maquet <[email protected]> Co-authored-by: Malcolm Lockyer <[email protected]>
- Loading branch information