From 99f789642843965cc5c8969af3d468404fed309e Mon Sep 17 00:00:00 2001 From: Ezeki Zibzibadze Date: Fri, 21 Dec 2018 12:56:54 +0400 Subject: [PATCH 1/2] chore: expose express from ApolloServer There are lots of use cases when you need to have access to express, first quick example is just adding voyager (I do it for every project) and using apollo-server-express for this task isn't good solution because you need more manual work to do. Exposing express from apollo-server will be super helpful and it will avoid need of having additional library, like graphql-yoga P.S. I think its must have feature of apollo-server library --- packages/apollo-server/src/index.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/apollo-server/src/index.ts b/packages/apollo-server/src/index.ts index 3daae6d646b..c0c65997031 100644 --- a/packages/apollo-server/src/index.ts +++ b/packages/apollo-server/src/index.ts @@ -24,12 +24,17 @@ export interface ServerInfo { } export class ApolloServer extends ApolloServerBase { + public express: express.Express; private httpServer?: http.Server; private cors?: CorsOptions | boolean; - constructor(config: Config & { cors?: CorsOptions | boolean }) { + constructor(config: Config & { + cors?: CorsOptions | boolean, + express?: express.Express, + }) { super(config); this.cors = config && config.cors; + this.express = (config && config.express) || (express && express()); } private createServerInfo( @@ -82,7 +87,7 @@ export class ApolloServer extends ApolloServerBase { // This class is the easy mode for people who don't create their own express // object, so we have to create it. - const app = express(); + const app = this.express; // provide generous values for the getting started experience super.applyMiddleware({ From f1c28d985f4b7554677aff0f93dca4bfd3d41e72 Mon Sep 17 00:00:00 2001 From: Ezeki Zibzibadze Date: Fri, 21 Dec 2018 13:08:25 +0400 Subject: [PATCH 2/2] fix: linter issue --- packages/apollo-server/src/index.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/apollo-server/src/index.ts b/packages/apollo-server/src/index.ts index c0c65997031..87100fc24c2 100644 --- a/packages/apollo-server/src/index.ts +++ b/packages/apollo-server/src/index.ts @@ -28,10 +28,12 @@ export class ApolloServer extends ApolloServerBase { private httpServer?: http.Server; private cors?: CorsOptions | boolean; - constructor(config: Config & { - cors?: CorsOptions | boolean, - express?: express.Express, - }) { + constructor( + config: Config & { + cors?: CorsOptions | boolean; + express?: express.Express; + }, + ) { super(config); this.cors = config && config.cors; this.express = (config && config.express) || (express && express());