* feat: ApolloServer is created and exported by all variants
* docs: add initial docs around exporting ApolloServer
* feat: export gql from integrations
* docs: change apollo-server examples to use express with registerServer
* server: remove registerExpressServer
* core, docs: comment functions, fix api reference, context creation more like middleware args
* docs: fix integrationed typo
* 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
This change was introduced by the changes in apollographql/apollo-server#802
but first showed its head in apollographql/apollo-server#908. The reason that
violations in new type definitions aren't being found until subsequent PRs
isn't entirely clear but, ignoring that CI-related annoyance, the problem
itself here is very concrete.
It traces back to a major version update to `@types/mocha` via [Exhibit A],
which makes it unacceptable to return anything besides a `Promise` or
_nothing_ from a Mocha test factory.
I agree with this change in principle, since generally speaking there can be
multiple `expect` statements in each test and there is no particular reason
that the last one's value should be getting returned as Mocha doesn't do
anything functional with it.
More than anything, this seems like an artifact of an ESLint rule which
mandated that the last value in a function be returned, à la CoffeeScript or
other languages.
This will fix the failing tests on apollographql/apollo-server#908 and other
PRs currently in-flight.
Exhibit A: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/24301
As originally reported in [0], this should make debugging performance issues
easier, since the name of the function will be properly displayed/shown in
flame-graphs.
[0]: https://github.com/apollographql/apollo-server/pull/827