Commit graph

62 commits

Author SHA1 Message Date
Evans Hauser
aea7c4e669
apollo-server-core: fix test after update typings to node 10 2018-05-21 15:37:58 -07:00
Evans Hauser
4f009777ba
apollo-server-core: fix typings on operation ast check for null ast 2018-05-21 15:33:10 -07:00
Evans Hauser
5749c0afec
apollo-server-core: test for starting up engine 2018-05-20 20:15:01 -07:00
Evans Hauser
c5687aea66
apollo-server-core: await server stop and restore node env in test 2018-05-20 03:54:10 -07:00
Evans Hauser
373522114f
apollo-server-core: add tests for ApolloServerBase basic functionality 2018-05-20 02:32:09 -07:00
Evans Hauser
a3daf7d551
apollo-server-core: keep referrence to subscriptions server and clean it up on stop 2018-05-20 02:18:32 -07:00
Evans Hauser
858216c97a
apollo-server-core: move environment checking into the constructor to enable testing 2018-05-20 02:12:43 -07:00
Evans Hauser
1ffac8b767
apollo-server-core: add instanceof error tests thanks to @JustinDSN 2018-05-20 02:10:07 -07:00
Evans Hauser
3c71f34cee
apollo-server-core: set error prototypes explicitly 2018-05-20 02:07:46 -07:00
Evans Hauser
8fd2c12b8f
apollo-server-core: add test for errors 2018-05-16 16:03:09 -07:00
Evans Hauser
226770819d
apollo-server-core: check for options as optional 2018-05-16 15:57:51 -07:00
Evans Hauser
8e1f3545c4
apollo-server-core: type errors returned as ApolloErrors and add ability to reference arbitrary fields 2018-05-16 14:46:33 -07:00
Evans Hauser
973b096ea3
apollo-server-core: enableIntrospection -> introspection 2018-05-11 17:33:52 -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
5d279001ca
apollo-server-core: feedback from #979 to improve readability and spelling 2018-05-11 17:00:45 -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
56955dc97a
apollo-server-core: remove extra Object assign, found by @justinanastos 🎉 2018-05-11 15:54:23 -07:00
Evans Hauser
012f37aed5
engine -> engineProxy in listen, fix engineLauncherOptions, and unrequired parameters optional (#1051)
engine -> engineProxy in listen, fix engineLauncherOptions, and make unrequired parameters optional
2018-05-11 15:54:22 -07:00
Evans Hauser
9099948e5c
apollo-server-core: run http options allows query to be an array 2018-05-11 15:54:22 -07:00
Evans Hauser
acae63cd4b
apollo-server-core: remove Promise wrapping in async function return values 2018-05-11 15:54:21 -07:00
Evans Hauser
8fe51be3ef
apollo-server-core: add warning to options creation failure if debugDefault enabled 2018-05-11 15:54:21 -07:00
Evans Hauser
ccb6eea934
apollo-server-core: enrichError not exported and moved formatter check to out of map 2018-05-11 15:54:21 -07:00
Evans Hauser
2781cc8831
apollo-server-core: remove unsued async from BaseServer's request function 2018-05-11 15:54:21 -07:00
Evans Hauser
1f3103b5c7
apollo-server-core: use getOwnPropertyNames to stay es5 2018-05-11 15:53:19 -07:00
Evans Hauser
c4e3766475
apollo-server-core: add check for null property in ApolloError 2018-05-11 15:53:18 -07:00
Evans Hauser
0fe53a68da
apollo-server-core: capture context creation failure in GraphQL error 2018-05-11 15:53:18 -07:00
Evans Hauser
5aeb36f3d7
apollo-server-core: allow creation of context to be asynchronous 2018-05-11 15:53:17 -07:00
Evans Hauser
75e661e9b2
apollo-server-core: stronger typing on context in GraphQLServerOptions as a function 2018-05-11 15:53:17 -07:00
Evans Hauser
e0332bb164
apollo-server-core: added formatApolloError arguments to subscription callback 2018-05-11 15:53:17 -07:00
Evans Hauser
a7772a01fb
apollo-server-core: wrap error thrown by context construction in apollo error to add code 2018-05-11 15:53:17 -07:00
Evans Hauser
4645f200f2
apollo-server-core: apolloError places properties in root, so they are found in originalError 2018-05-11 15:53:17 -07:00
Evans Hauser
2a510039ec
apollo-server-core: internalFormatError to formatApolloError 2018-05-11 15:53:16 -07:00
Evans Hauser
f6eece6294
apollo-server-core: move logging into separate file 2018-05-11 15:53:16 -07:00
Evans Hauser
cdf4c6860d
apollo-server-core: fix error printing and logging tests 2018-05-11 15:53:15 -07:00
Evans Hauser
8fdbfcd8c8
apollo-server-core: remove unused function printStackTrace 2018-05-11 15:53:15 -07:00
Evans Hauser
6b2e600a97
apollo-server-core: remove stack traces print and include response in logging function 2018-05-11 15:53:15 -07:00
Evans Hauser
ce7d72caab
apollo-server-core: add mocks 2018-05-11 15:53:15 -07:00
James Baxley
68dec79529
clean up and move pieces around 2018-05-11 15:53:14 -07:00
Evans Hauser
7b25a90a7e
apollo-server: add message, location, and path to formatError 2018-05-11 15:53:14 -07:00
Evans Hauser
d88100aca8
errors: change formatError to internalFormatError and fix when user defines formatError 2018-05-11 15:53:10 -07:00
Evans Hauser
cb09fef524
Errors: latest codes and add exports to the apollo-server package 2018-05-11 15:53:10 -07:00
Evans Hauser
35a5858125
errors: change INTERNAL_ERROR to INTERNAL_SERVER_ERROR, matching http errors 2018-05-11 15:53:09 -07:00
James Baxley
bdabe6259b
fix odd case in error handling 2018-05-11 15:53:08 -07:00
Evans Hauser
0e68e2ec4f
errors: send stack in debug, codes, make ApolloErrors 2018-05-11 15:53:07 -07:00
David Glasser
e2df79d06c core: return PersistedQueryNotSupported for Apollo Persisted Queries (#982)
Apollo Persisted Queries is a standard for sending queries as short hashes
instead of full strings, designed to work well with GET requests. It is
implemented by servers including the Apollo Engine Proxy, and by the
apollo-link-persisted-query client.

A common configuration is to set up persisted queries on production servers but
not in development. It is still convenient to leave apollo-link-persisted-query
always on, though. While apollo-link-persisted-query can detect that servers
don't support PQs, it works better if the server actually says it doesn't
support the PQ, instead of trying to process a request without a query and
potentially printing a confusing stack trace.  This commit makes apollo-server
directly return PersistedQueryNotSupported instead of allowing confusing stack
traces to occur.
2018-04-24 06:29:07 -04:00
David Glasser
cbb2b22570 core: fix HttpQueryRequest typing (#834)
This field generally gets used in `any` contexts, so the error didn't cause any compilation failures.
2018-04-18 16:00:44 +03:00
Steve Rice
083a1ee60e Avoid TypeError when querystring is present, but query missing (#964)
The express-graphql reference implementation [provides a check]
(2e27a73358/src/index.js (L201-L208))
to protect against cases where a GET request is made that does not
have a `query` parameter where the GraphQL query would be present.

Without this guard, graphql-js's `parse` will return `undefined`
for the `DocumentNode` since it has no document to read. Subsequently
passing this to `isQueryOperation` results in a `TypeError`, because
we are providing `undefined` where `getOperationAst` [expects to get
a DocumentNode](5fe39262a3/src/utilities/getOperationAST.js (L19)).

A new test file is added for `runHttpQuery`, as one previously did
not seem to exist.
2018-04-18 15:38:57 +03:00
Jesse Rosenberger
0a103ef5bd
Stop violating types by returning assertions from Mocha tests. (#972)
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
2018-04-18 15:37:47 +03:00
Jesse Rosenberger
4cbaf4652d
Prettier for one change in #919. 2018-04-18 15:18:30 +03:00
Jamie Talbot
f387a1c824 Tighter context typing for GraphQLServerOptions (#919) 2018-04-18 14:16:45 +03:00