re-implement support for @defer directive #2181
Closed
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.
I created this PR to get the
@defer
changes up-to-date withmaster
because we'd like to start using this feature internally. I'm opening this PR in-case it's useful to any one else!This PR reimplements the proposed addition of
@defer
support to Apollo Server originally proposed by @clarencenpy. Full details of the proposed spec can be found here.TODO:
Via the original pull request:
Summary:
execute.js
fromgraphql.js
. Functions that are untouched have been removed, and exported fromgraphql
directly.execute()
returnsExecutionResult | DeferredExecutionResult
, the latter being if@defer
has been applied to any fields.DeferredExecutionResult
wraps anExecutionResult
containing the initial response, and an AsyncIterable.Testing:
@defer
, while making sure that all the other tests are still passing. Tests are in__tests__/starWarsDefer-test.ts