Move runtime state into result objects #4935
Merged
+91
−111
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is an experiment in managing runtime state.
We already have a lot of per-field metadata in
current_runtime_state
, and most of it is derived fromGraphQLResult
objects. I think it should be possible to:GraphQLResult
objects (not everything -- can't be per-field since leaf values don't getGraphQLResult
objects)GraphQLResult
current_runtime_state
to use GraphQLResult in more cases (it already does for path, at least)If that works, then I'm hoping that
GraphQLResult
can be the basis for a run-and-return (trampoline) -style execution instead of a recursive one, where theGraphQLResult
itself contains information about what needs to be done to it next.