Commit graph

70 commits

Author SHA1 Message Date
Evans Hauser
e0f7052fb1
Errors Lifecycle: user extensions > engine reporting > formatError (#1272)
* enable willSendResponse to return a modified response

* add formatError as an extension that wraps engine reporting

* ensure that formatError once on every error path

* move old formatError express tests into integration suite

* add error lifecycle with minimal engine reporting check

* increase granularity of formatError test

* return 400 error for GraphQL error created by context

* add check for internal server error for errors thrown in context

* comment about context error status code
2018-06-29 10:36:52 -07:00
Martijn Walraven
84233d2010 Centralize playgroundVersion in ApolloServerBase and remove pass-through of gui options 2018-06-29 13:57:03 +02:00
Matías Olivera
8ef18187ae Fix graphql-tools/subscriptions dependencies and exports (#1257)
* Reorder dependencies

* Fix dependencies and exports

* Remove unused exports
2018-06-27 12:09:38 -07:00
Evans Hauser
98fd7ae1fd
test cache-control set to false after bug from #1217 2018-06-22 12:16:04 -07:00
Evans Hauser
ae14665aea
include test for tracing and add server creation helper method 2018-06-22 11:14:15 -07:00
Evans Hauser
65d7b100e4
CDN cache-control headers (#1138)
* core: return response object from runHttpQuery

* core: change gqlResponse to graphqlResponse and add custom RequestInit type

* core: add cache-control headers based on the calcualted maxAge

* core: add extensions check during cache-control header creation

* core: create headers when cacheControl is not enabled otherwise pass through extensions

* express: initial tests of CDN cach-contol headers

* core: fixed tests with applyMiddleware and pass cacheControl config

* core: cache hint fixes, ignore when no maxAge, and check for rootKeys

* core: check for hints of length 0

* core: node 10 fails file upload test for some stream reason

* docs: add cdn caching section to features

* add space after // in comments

* fix feedback: proxy alignment and response creation

Adds cache-control toggles for http header calculation and stripping out
the cache control extensions from the respose.

Brings the default calculation of headers in line with the proxy.

* fix links in comments

* fix tests with null dereference

* update cdn docs and migration guide to include latest cdn configuration

* add not for engine migration to set engine to false

* add engine set to false in migration guide

* express: fixed tests

* address feedback to use omit and documentation

* docs: cdn caching is alternative to full response caching

* add back epipe check in upload tests
2018-06-21 13:29:14 -07:00
Martijn Walraven
35ac867830 Avoid direct imports of node-fetch 2018-06-21 21:35:37 +02:00
Evans Hauser
d1878703d3
Move Uploads to constructor and remove enhanceSchema (#1204)
* move uploads into server constructor

* remove enhanceSchema

* address feedback
2018-06-21 12:16:52 -07:00
Martijn Walraven
14247279ec Remove logFunction
We now support custom extensions, which have a much nicer API.
2018-06-21 16:05:48 +02:00
Evans Hauser
7c622aa2f5
hapi: tests, add types, and fix #1195 (#1211) 2018-06-20 16:34:42 -07:00
Clarence Ngoh
70a0fad754 export UserInputError from express and hapi integrations (#1206) (#1208) 2018-06-20 16:24:32 -07:00
Evans Hauser
9af856c2c8
Typescript Improvements and esModuleInterop fix (#1210)
* add string input to gql tag

* remove esModuleInterop, tested locally

* change IMPORT_FUNCTION to something real

* fix the rest of the tests
2018-06-20 16:21:50 -07:00
Martijn Walraven
b76c1004e6 Only attempt to parse responses with the right Content-Type as JSON 2018-06-19 13:23:14 +02:00
Martijn Walraven
da2c95c410 Remove workaround for TS unused locals 2018-06-18 11:36:01 +02:00
Evans Hauser
b6f88d59ef
express: remove console logs from data source test 2018-06-15 11:17:02 -07:00
Martijn Walraven
685d3399db Apollo Server 2.0 - Caching + RESTDataSource (#1163)
* Enable declarationMap in tsconfig.json

See http://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-9.html

* Add apollo-server-caching package and improve typings

* Remove superfluous test steps

* Add .npmignore to apollo-server-caching

* Add apollo-server-env and apollo-datasource-rest packages

* Fix broken imports

* Use prepublish instead of prepare

* cache is now passed to data sources from ApolloServer constructor

* fix Object.values to use the object passed in rather than this

* add initial datasource test

* docs: initial data source documentation

* docs: initial data source documentation

* compiles and documentation now highlights code in data-sources.md

* Some changes to the data source docs
2018-06-14 23:13:33 -07:00
David Glasser
3fccd43bae simplify upload enhanceSchema, rename to installSubscriptionHandlers
also export graphql-tools and graphql-subscriptions from apollo-server-core
2018-06-14 11:57:30 -07:00
Evans Hauser
327999174c move registerServer into class as applyMiddleware function 2018-06-14 11:57:30 -07:00
Evans Hauser
9d853f4be4 move ApolloServer tests into integration tests from core 2018-06-14 11:57:30 -07:00
Evans Hauser
304debf9ee errors insubscription server creation and non-async regsiterServer for express 2018-06-14 11:57:30 -07:00
Evans Hauser
54ced71cff initial implementation of createSubscriptionServer 2018-06-14 11:57:30 -07:00
David Glasser
01c7c37e3c start to refactor subscriptions 2018-06-14 11:57:30 -07:00
David Glasser
e32fad66a2 Allow configuration of graphql-playground 2018-06-13 15:59:41 -07:00
David Glasser
eb0ae81cfa Update integration test suite to test ApolloServer
Fix some connect bugs.
2018-06-13 15:27:44 -07:00
David Glasser
2ff159d50c Don't export middleware from packages
We are going to tweak registerServer until there is no reason to prefer a
non-ApolloServer-associated middleware function over using it.
2018-06-13 14:10:34 -07:00
David Glasser
e4a6e873f8 Remove graphiql support
ApolloServer builds in graphql-playground rather than graphiql, so we no longer
provide middleware for serving GraphiQL.

If this turns out to be an unpopular choice, we can always add support for
graphiql instead of graphql-playground back in later.

We prefer graphql-playground because it allows you to enter HTTP request
headers, view query history, and explicitly supports graphql@0.13.
2018-06-13 14:00:51 -07:00
David Glasser
1fd3b216d0 Remove engineProxy support
We recommend the use of apollo-engine-reporting and the other built-in features
of AS 2.0 rather than engineProxy. You can still use the apollo-engine npm
module manually with AS 2.0, or stay on AS 1.0.
2018-06-13 12:32:05 -07:00
Evans Hauser
0178840837
express, hapi: export ApolloServer 2018-06-13 11:21:16 -07:00
Evans Hauser
afcd1709f3
core, integrations: break apart coupling of introspection and gui enable 2018-06-12 23:11:06 -07:00
Evans Hauser
ba31cf7a44
Integrations export their own ApolloServer (#1161)
* 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
2018-06-12 17:46:56 -07:00
Martijn Walraven
e4164c8892 Enable esModuleInterop and fix imports
See https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html
2018-06-11 14:25:59 +02:00
Martijn Walraven
c5892f6fcd Disable failing file upload test 2018-06-11 13:59:04 +02:00
Evans Hauser
b07b9e8e8b
core,express: export gql tag directly to align with client 2018-06-06 11:02:01 -07:00
Evans Hauser
1e70a446b2
Enable Apollo Server 2 to have async context + test (#1129)
* core: add test for context as async function

* core,express: add support and test of context as async function
2018-06-04 09:46:55 -07:00
David Glasser
836616bd04 Turn on noUnusedLocals and noUnusedParameters (#1126) 2018-06-01 15:16:16 -07:00
Evans Hauser
4405405321 hapi,express: fix graphql playground subscriptitionPath argument for typing 2018-06-01 12:34:49 -07:00
David Glasser
66189657b3 Rename ApolloServer.request to graphQLServerOptionsForRequest 2018-05-31 00:14:59 -07:00
Evans Hauser
63d0f72115
core: error resurfacing for merged schemas that hide errors in a CombineErrors 2018-05-30 22:40:27 -07:00
Evans Hauser
c5ba902277
express: add fallback for file uploads middleware if not enabled 2018-05-30 22:38:37 -07:00
Evans Hauser
4609ee94a5
core: evaluate context per request and differ error until caught in runQuery 2018-05-30 16:02:48 -07:00
Evans Hauser
da316908d2
runQuery accepts Request object that variants create (#1108)
* core: runQuery accepts Request object that integrations create

* core: add changelog for Requst in runQuery

* adonis: correct request object passed to runQuery

* core: change convertHttpMessageToRequest to convertNodeHttpToRequest
2018-05-29 21:37:38 -07:00
Evans Hauser
5412885cc0
apollo-server 2: uploads as schema enhancement fulfilled in registerServer (#1071)
* 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
2018-05-29 15:58:52 -07:00
Evans Hauser
43d545f8ab
apollo-server-core: add request object to runHttpQuery for access to headers (#1096) 2018-05-24 15:43:17 -07:00
Evans Hauser
5b98a075b8
apollo-server-express: move import of apollo-server in tests to a require 2018-05-24 14:27:06 -07:00
Evans Hauser
9342658ac8
apollo-server-express: remove circular devDependeny on apollo-server for tests 2018-05-24 14:14:36 -07:00
Evans Hauser
f1fa8ade8a
apollo-server-express: tests constructor, registerServer options, and basic queries 2018-05-23 23:09:17 -07:00
Evans Hauser
1f784636d9
apollo-server: move health check into variant's registerServer call 2018-05-22 21:58:37 -07:00
Evans Hauser
0e4848d5e1
apollo-server: subscriptions options condensed to on option and ensure subscriptions path is set 2018-05-11 17:30:52 -07:00
Evans Hauser
db47867ccb
apollo-server-core: move subscriptions out of constructor into listen function 2018-05-11 15:54:24 -07:00
Evans Hauser
d08f862063
apollo-server-express: add bodyParserConfig option to the listen method to configure bodyParser 2018-05-11 15:54:23 -07:00