diff --git a/types/aws-serverless-express/aws-serverless-express-tests.ts b/types/aws-serverless-express/aws-serverless-express-tests.ts index 9bfd1b0e99..f3fd2e71e3 100644 --- a/types/aws-serverless-express/aws-serverless-express-tests.ts +++ b/types/aws-serverless-express/aws-serverless-express-tests.ts @@ -27,3 +27,6 @@ const mockContext = { }; awsServerlessExpress.proxy(server, mockEvent, mockContext); +awsServerlessExpress.proxy(server, mockEvent, mockContext, 'CALLBACK', () => {}); +awsServerlessExpress.proxy(server, mockEvent, mockContext, 'CONTEXT_SUCCEED'); +awsServerlessExpress.proxy(server, mockEvent, mockContext, 'PROMISE').promise.then((response: awsServerlessExpress.Response) => {}).catch(err => {}); diff --git a/types/aws-serverless-express/index.d.ts b/types/aws-serverless-express/index.d.ts index 14569396db..b3092ad02b 100644 --- a/types/aws-serverless-express/index.d.ts +++ b/types/aws-serverless-express/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for aws-serverless-express 3.0 +// Type definitions for aws-serverless-express 3.3 // Project: https://github.com/awslabs/aws-serverless-express // Definitions by: Ben Speakman // Josh Caffey @@ -11,6 +11,16 @@ import * as http from 'http'; import * as lambda from 'aws-lambda'; +export interface Response { + statusCode: number; + body: string; + headers: {}; +} + +export interface ProxyResult { + promise: Promise; +} + export function createServer( requestListener: (request: http.IncomingMessage, response: http.ServerResponse) => void, serverListenCallback?: () => any, @@ -20,5 +30,27 @@ export function createServer( export function proxy( server: http.Server, event: any, - context: lambda.Context + context: lambda.Context, +): http.Server; + +export function proxy( + server: http.Server, + event: any, + context: lambda.Context, + resolutionMode: 'CONTEXT_SUCCEED', +): void; + +export function proxy( + server: http.Server, + event: any, + context: lambda.Context, + resolutionMode: 'PROMISE' +): ProxyResult; + +export function proxy( + server: http.Server, + event: any, + context: lambda.Context, + resolutionMode: 'CALLBACK', + callback?: (error: any, response: Response) => void ): void;