From f0a3c696357354ae115bd146397cc7e4ad808174 Mon Sep 17 00:00:00 2001 From: KATT Date: Thu, 21 Feb 2019 15:46:07 -0300 Subject: [PATCH 1/2] export interface ExpressContext --- CHANGELOG.md | 2 ++ packages/apollo-server-express/src/ApolloServer.ts | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6247b5db451..2e95a6ab4b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ### vNEXT +- `apollo-server-express`: Export `ExpressContext` + ### v2.4.4 - Fix typing for ContextFunction incorrectly requiring the context object the function produces to match the parameters of the function [PR #2350](https://github.com/apollographql/apollo-server/pull/2350) diff --git a/packages/apollo-server-express/src/ApolloServer.ts b/packages/apollo-server-express/src/ApolloServer.ts index c13c7ac0aa6..2c3a87a3958 100644 --- a/packages/apollo-server-express/src/ApolloServer.ts +++ b/packages/apollo-server-express/src/ApolloServer.ts @@ -70,7 +70,7 @@ const fileUploadMiddleware = ( } }; -interface ExpressContext { +export interface ExpressContext { req: express.Request; res: express.Response; } From 7cb33769cb152be3415a3fccbbd49f37d70c9c84 Mon Sep 17 00:00:00 2001 From: KATT Date: Thu, 21 Feb 2019 12:45:06 -0300 Subject: [PATCH 2/2] Tests using ApolloServerExpressConfig --- .../src/__tests__/ApolloServer.test.ts | 10 +++++++--- .../src/__tests__/connectApollo.test.ts | 5 ++--- .../src/__tests__/expressApollo.test.ts | 6 +++--- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/packages/apollo-server-express/src/__tests__/ApolloServer.test.ts b/packages/apollo-server-express/src/__tests__/ApolloServer.test.ts index e9db26e4461..fa4e165557c 100644 --- a/packages/apollo-server-express/src/__tests__/ApolloServer.test.ts +++ b/packages/apollo-server-express/src/__tests__/ApolloServer.test.ts @@ -7,8 +7,12 @@ import FormData from 'form-data'; import fs from 'fs'; import { createApolloFetch } from 'apollo-fetch'; -import { gql, AuthenticationError, Config } from 'apollo-server-core'; -import { ApolloServer, ServerRegistration } from '../ApolloServer'; +import { gql, AuthenticationError } from 'apollo-server-core'; +import { + ApolloServer, + ApolloServerExpressConfig, + ServerRegistration, +} from '../ApolloServer'; import { NODE_MAJOR_VERSION, @@ -57,7 +61,7 @@ describe('apollo-server-express', () => { let httpServer: http.Server; async function createServer( - serverOptions: Config, + serverOptions: ApolloServerExpressConfig, options: Partial = {}, ) { server = new ApolloServer(serverOptions); diff --git a/packages/apollo-server-express/src/__tests__/connectApollo.test.ts b/packages/apollo-server-express/src/__tests__/connectApollo.test.ts index 8ae5f2ffd16..7d48e2d8a88 100644 --- a/packages/apollo-server-express/src/__tests__/connectApollo.test.ts +++ b/packages/apollo-server-express/src/__tests__/connectApollo.test.ts @@ -1,7 +1,6 @@ import connect from 'connect'; import query from 'qs-middleware'; -import { ApolloServer } from '../ApolloServer'; -import { Config } from 'apollo-server-core'; +import { ApolloServer, ApolloServerExpressConfig } from '../ApolloServer'; import testSuite, { schema as Schema, @@ -17,7 +16,7 @@ function createConnectApp(options: CreateAppOptions = {}) { // connect is probably already using connect-query or qs-middleware. app.use(query()); const server = new ApolloServer( - (options.graphqlOptions as Config) || { schema: Schema }, + (options.graphqlOptions as ApolloServerExpressConfig) || { schema: Schema }, ); // See comment on ServerRegistration.app for its typing. server.applyMiddleware({ app: app as any }); diff --git a/packages/apollo-server-express/src/__tests__/expressApollo.test.ts b/packages/apollo-server-express/src/__tests__/expressApollo.test.ts index 898c6db39e7..80b4dd010f8 100644 --- a/packages/apollo-server-express/src/__tests__/expressApollo.test.ts +++ b/packages/apollo-server-express/src/__tests__/expressApollo.test.ts @@ -1,16 +1,16 @@ import express from 'express'; -import { ApolloServer } from '../ApolloServer'; +import { ApolloServer, ApolloServerExpressConfig } from '../ApolloServer'; import testSuite, { schema as Schema, CreateAppOptions, } from 'apollo-server-integration-testsuite'; -import { GraphQLOptions, Config } from 'apollo-server-core'; +import { GraphQLOptions } from 'apollo-server-core'; function createApp(options: CreateAppOptions = {}) { const app = express(); const server = new ApolloServer( - (options.graphqlOptions as Config) || { schema: Schema }, + (options.graphqlOptions as ApolloServerExpressConfig) || { schema: Schema }, ); server.applyMiddleware({ app }); return app;