From 4525e8d53dff73fab35968276ae4b54124a05b8d Mon Sep 17 00:00:00 2001 From: Paul Roberts Date: Wed, 12 Sep 2018 10:58:46 -0700 Subject: [PATCH 1/2] Add definitions for aws-serverless-express 3.3.x --- .../aws-serverless-express-tests.ts | 3 +++ types/aws-serverless-express/index.d.ts | 21 ++++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/types/aws-serverless-express/aws-serverless-express-tests.ts b/types/aws-serverless-express/aws-serverless-express-tests.ts index 9bfd1b0e99..ec9371b907 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; diff --git a/types/aws-serverless-express/index.d.ts b/types/aws-serverless-express/index.d.ts index 14569396db..a8c4ada124 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 @@ -20,5 +20,20 @@ export function createServer( export function proxy( server: http.Server, event: any, - context: lambda.Context -): void; + context: lambda.Context, +): http.Server; + +export function proxy( + server: http.Server, + event: any, + context: lambda.Context, + resolutionMode: 'CALLBACK', + callback?: () => T +): {promise: Promise}; + +export function proxy( + server: http.Server, + event: any, + context: lambda.Context, + resolutionMode?: 'CONTEXT_SUCCEED' | 'PROMISE' +): {promise: Promise}; From 36891bfec125389c0cfb3b7fa47cf09454175a1f Mon Sep 17 00:00:00 2001 From: Paul Roberts Date: Wed, 12 Sep 2018 11:41:10 -0700 Subject: [PATCH 2/2] Add definitions for aws-serverless-express 3.3.x --- .../aws-serverless-express-tests.ts | 2 +- types/aws-serverless-express/index.d.ts | 29 +++++++++++++++---- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/types/aws-serverless-express/aws-serverless-express-tests.ts b/types/aws-serverless-express/aws-serverless-express-tests.ts index ec9371b907..f3fd2e71e3 100644 --- a/types/aws-serverless-express/aws-serverless-express-tests.ts +++ b/types/aws-serverless-express/aws-serverless-express-tests.ts @@ -29,4 +29,4 @@ 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; +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 a8c4ada124..b3092ad02b 100644 --- a/types/aws-serverless-express/index.d.ts +++ b/types/aws-serverless-express/index.d.ts @@ -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, @@ -23,17 +33,24 @@ export function proxy( context: lambda.Context, ): http.Server; -export function proxy( +export function proxy( server: http.Server, event: any, context: lambda.Context, - resolutionMode: 'CALLBACK', - callback?: () => T -): {promise: Promise}; + resolutionMode: 'CONTEXT_SUCCEED', +): void; export function proxy( server: http.Server, event: any, context: lambda.Context, - resolutionMode?: 'CONTEXT_SUCCEED' | 'PROMISE' -): {promise: Promise}; + resolutionMode: 'PROMISE' +): ProxyResult; + +export function proxy( + server: http.Server, + event: any, + context: lambda.Context, + resolutionMode: 'CALLBACK', + callback?: (error: any, response: Response) => void +): void;