- Actually call validationDidStart and parsingDidStart.
- Use new graphql-extensions API which:
- replaces fooDidEnd with a handler returned by fooDidStart
- adds options to various methods
- has a new willSendResponse method
- requires you to construct the extension objects yourself (but make
the external API for specifying extensions to ApolloServer be
factories, because extensions are per request)
- Make a better effort at consistently calling end handlers even on error
* apollo-server-core: add file upload hooks and configuration
* apollo-server-core: make requestOptions and fileUploadsConfig public fields in ApolloServerBase
* apollo-server-express: initial fileuploads middleware
* apollo-server-hapi: initial file uploads middleware
* core: remove fileuploads from constructor and add merge capabilities
* express: add fileuploads to registerServer and single test
* hapi: add fileuploads schema merge to registerServer
* express: add check for EPIPE and ignore it due to upload server issue
* core: add scalar Upload to server construction
runQuery currently takes a `query` argument that is either a string or a
DocumentNode. This means that it's possible to accidentally support syntax we
don't mean to. For example, if you happen to send a JSON-serialized DocumentNode
over the wire, we'll happily execute that, and you'll believe you're using
GraphQL even though you really aren't --- until you try to use some other
GraphQL tool that expects to see the GraphQL query language rather than
graphql-js ASTs.
Additionally, GET requests parse their queries in runHttpQuery rather than
runQuery, leading to inconsistent error handling semantics on parse failures.
Simplify the runQuery API (which is technically exported though intended to be
mostly internal) to take in either a parsedQuery or a queryString argument. The
main use case for knowing about these parameters is if you're using formatParams
with OperationStore; its docs and tests have been updated to reflect this.
Stop parsing queries in runHttpQuery; instead, ensure we throw the right error
for mutations-over-GET by passing the error to throw into runQuery.
Stop accidentally supporting graphql-js ASTs on the wire --- but throw an
informative error when you do so.
This backwards-incompatible change is intended for apollo-server-core 2.0.