Commit graph

876 commits

Author SHA1 Message Date
Martijn Walraven
655ead3b1b Move shared mocks to top-level and enforce noImplicitAny 2018-06-20 12:21:52 +02:00
Martijn Walraven
d38e289821 Log RESTDataSource requests in development 2018-06-20 12:00:11 +02:00
Martijn Walraven
0928d79efb Move in memory cache to apollo-server-caching 2018-06-20 11:06:24 +02:00
Martijn Walraven
3f3b0eb1f8 Rename Memcached and Redis cache classes 2018-06-20 10:04:37 +02:00
clarencenpy
958fa65ddb Update data source docs and add instructions for Memcached and Redis caches 2018-06-20 10:04:37 +02:00
Clarence Ngoh
387f25067a rename BadUserInputError to UserInputError (#1197)
reason: "bad" and "error" are redundant
2018-06-19 15:15:24 -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
073655af8e Remove willReceiveCache and willReceiveContext from RESTDataSource 2018-06-19 11:14:22 +02:00
Martijn Walraven
74d7f53501 Add any as default type parameter for TResponse in RESTDataSource 2018-06-19 10:20:13 +02:00
Martijn Walraven
cde54349b3 Extract URLSearchParamsInit type and use it in RESTDataSource 2018-06-19 10:14:59 +02:00
Fabien BERNARD
86fd88ee6f Add type parameter for responses and add PATCH method (#1190) 2018-06-19 09:40:42 +02:00
Clarence Ngoh
43627ec221 Add support for Redis and Memcached with ttls (#1191)
* Refactored caching connectors into their own packages
- apollo-server-caching (exports interface for KeyValueCache)
- apollo-server-caching-memcached
- apollo-server-caching-redis
One issue now is that there is duplication of mocks and test code in each of the packages. It would be better if we had centralized integration tests for all cache connectors, community contributed or otherwise.

* export test suite for cache connectors from `apollo-server-caching`

* fixed tsconfig.json

* added @types
2018-06-18 19:36:51 -07:00
Martijn Walraven
7496eb034d Run test in apollo-datasource-rest as part of monorepo tests 2018-06-18 11:57:19 +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
Evans Hauser
cba05d9567
remove operation store module because of apq's 2018-06-15 11:16:37 -07:00
Evans Hauser
9588468875
v2.0.0-rc.0 2018-06-14 23:18:07 -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
Evans Hauser
439ec44135
core: add Scalar Upload with schema is made execuable 2018-06-14 15:58:23 -07:00
David Glasser
d006d4d83d v2.0.0-beta.11 2018-06-14 12:00:21 -07:00
David Glasser
46bb367f91 cloudflare package does not need to be private 2018-06-14 12:00:09 -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
David Glasser
1707967518 Specify full path in tsconfig imports
Emacs tide mode seems to require
this (https://github.com/ananthakumaran/tide/pull/238 is supposed to have fixed
it but it didn't work?)
2018-06-14 11:57:30 -07:00
David Glasser
afda13489b improve listen API with callbacks 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
ddc589d996 v2.0.0-beta.10 2018-06-13 16:07:41 -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
Evans Hauser
e66f6db413
fix: support Node 6 (#1171) 2018-06-13 14:56:09 -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
40f9a4982f Remove packages for frameworks that don't yet support 2.0
Previously, we were planning to offer two kinds of APIs in "Apollo Server 2":
middleware functions just like in 1.0, and the new ApolloServer class.  We have
not yet implemented ApolloServer for all of our supported web frameworks, so
this meant that the 2.0 version of modules such as apollo-server-koa (which does
not yet have an ApolloServer class) offered very little benefits over
apollo-server-koa@1.0 (as most of the benefits of 2.0 come from ApolloServer).

This is confusing. We are going to improve the current registerServer API so
that there's no real benefit to using a separately-exported middleware directly
rather than creating an ApolloServer and applying it to your web framework. So
the AS 2.0 API will just be ApolloServer.  This means it doesn't make sense for
us to publish 2.x versions of the packages that don't yet support this API.

So this commit removes support for the following web frameworks: Adonis, Azure
Functions, Koa, Lambda, Micro, and Restify. (We leave in place Express, Hapi,
and Cloudflare workers.)

This isn't because we don't like these frameworks and don't want them to work
with Apollo Server 2.0!  We would love to see each package resurrected and an
ApolloServer implementation built, either during this current 2.x beta phase or
after the official 2.0 release. Deleting these packages for now makes it more
clear which frameworks support 2.0 and which don't, rather than existing in a
state where apollo-server-express@2 has ApolloServer and apollo-server-koa@2
does not.
2018-06-13 13:45:10 -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
David Glasser
519b6fd056 v2.0.0-beta.9 2018-06-13 11:47:30 -07:00
Evans Hauser
0178840837
express, hapi: export ApolloServer 2018-06-13 11:21:16 -07:00
Evans Hauser
83c866e8d4
core: add graphql-tag as export 2018-06-12 23:13:04 -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
db8eba871f
v2.0.0-beta.8 2018-06-12 17:54:55 -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
David Glasser
df8e487368 v2.0.0-beta.7 2018-06-11 18:45:23 -07:00
David Glasser
dbfa57c95d dep on express (there is an import), other tweaks 2018-06-11 18:44:55 -07:00
David Glasser
3e93524ac3 v2.0.0-beta.6 2018-06-11 15:54:01 -07:00
Evans Hauser
a7cd3a43e8 Apollo Server 2:Automatic Persisted Queries (#1149) 2018-06-11 15:44:20 -07:00
David Glasser
ff90e5cf2f upgrade apollo-engine-reporting (better error handling) 2018-06-11 15:19:30 -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
2f44a42bb8 Remove Object.setPrototypeOf workaround for error subclasses on ES5 2018-06-11 14:00:47 +02:00