From 0c94f50cfdede56758b998d7355873889ae88769 Mon Sep 17 00:00:00 2001 From: Christian Nuss Date: Wed, 1 Sep 2021 12:51:17 -0700 Subject: [PATCH 1/5] feat: export event sources --- package.json | 2 +- src/event-sources/aws/alb.d.ts | 23 +++++++ src/event-sources/aws/api-gateway-v1.d.ts | 23 +++++++ src/event-sources/aws/api-gateway-v2.d.ts | 24 +++++++ src/event-sources/aws/lambda-edge.d.ts | 25 +++++++ src/event-sources/index.d.ts | 80 +++++++++++++++++++++++ src/event-sources/index.js | 6 +- src/index.d.ts | 7 ++ src/index.js | 12 ++++ 9 files changed, 200 insertions(+), 2 deletions(-) create mode 100644 src/event-sources/aws/alb.d.ts create mode 100644 src/event-sources/aws/api-gateway-v1.d.ts create mode 100644 src/event-sources/aws/api-gateway-v2.d.ts create mode 100644 src/event-sources/aws/lambda-edge.d.ts create mode 100644 src/event-sources/index.d.ts diff --git a/package.json b/package.json index 629eae6c..ede8b1eb 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,7 @@ }, "scripts": { "test": "jest && npm run tsc", - "tsc": "tsc ./src/*.ts --outDir typescript-out", + "tsc": "tsc ./src/**/*.ts --outDir typescript-out", "test:watch": "jest --watch", "test:coverage": "jest --coverage", "cz": "git-cz", diff --git a/src/event-sources/aws/alb.d.ts b/src/event-sources/aws/alb.d.ts new file mode 100644 index 00000000..8f1bf722 --- /dev/null +++ b/src/event-sources/aws/alb.d.ts @@ -0,0 +1,23 @@ +declare function getRequestValuesFromAlbEvent({ event }: { + event: any; +}): { + method: any; + headers: { + 'content-length': number; + }; + body: Buffer; + remoteAddress: any; + path: string; +}; +declare function getResponseToAlb({ statusCode, body, headers, isBase64Encoded }: { + statusCode: any; + body: any; + headers: any; + isBase64Encoded: any; +}): { + statusCode: any; + body: any; + multiValueHeaders: {}; + isBase64Encoded: any; +}; +export { getRequestValuesFromAlbEvent as getRequest, getResponseToAlb as getResponse }; \ No newline at end of file diff --git a/src/event-sources/aws/api-gateway-v1.d.ts b/src/event-sources/aws/api-gateway-v1.d.ts new file mode 100644 index 00000000..cab6af5d --- /dev/null +++ b/src/event-sources/aws/api-gateway-v1.d.ts @@ -0,0 +1,23 @@ +declare function getRequestValuesFromApiGatewayEvent({ event }: { + event: any; +}): { + method: any; + headers: { + 'content-length': number; + }; + body: Buffer; + remoteAddress: any; + path: string; +}; +declare function getResponseToApiGateway({ statusCode, body, headers, isBase64Encoded }: { + statusCode: any; + body: any; + headers: any; + isBase64Encoded: any; +}): { + statusCode: any; + body: any; + multiValueHeaders: {}; + isBase64Encoded: any; +}; +export { getRequestValuesFromApiGatewayEvent as getRequest, getResponseToApiGateway as getResponse }; \ No newline at end of file diff --git a/src/event-sources/aws/api-gateway-v2.d.ts b/src/event-sources/aws/api-gateway-v2.d.ts new file mode 100644 index 00000000..5dd17550 --- /dev/null +++ b/src/event-sources/aws/api-gateway-v2.d.ts @@ -0,0 +1,24 @@ +declare function getRequestValuesFromApiGatewayEvent({ event }: { + event: any; +}): { + method: any; + headers: { + cookie: any; + 'content-length': number; + }; + body: Buffer; + remoteAddress: any; + path: string; +}; +declare function getResponseToApiGateway({ statusCode, body, headers, isBase64Encoded, response }: { + statusCode: any; + body: any; + headers?: {}; + isBase64Encoded?: boolean; + response?: {}; +}): { + statusCode: any; + body: any; + isBase64Encoded: boolean; +}; +export { getRequestValuesFromApiGatewayEvent as getRequest, getResponseToApiGateway as getResponse }; \ No newline at end of file diff --git a/src/event-sources/aws/lambda-edge.d.ts b/src/event-sources/aws/lambda-edge.d.ts new file mode 100644 index 00000000..057f8708 --- /dev/null +++ b/src/event-sources/aws/lambda-edge.d.ts @@ -0,0 +1,25 @@ +declare function getRequestValuesFromLambdaEdgeEvent({ event }: { + event: any; +}): { + method: any; + path: string; + headers: { + 'content-length': number; + }; + body: Buffer; + remoteAddress: any; + host: any; + hostname: any; +}; +declare function getResponseToLambdaEdge({ statusCode, body, headers, isBase64Encoded }: { + statusCode: any; + body: any; + headers: any; + isBase64Encoded: any; +}): { + status: any; + body: any; + headers: {}; + bodyEncoding: string; +}; +export { getRequestValuesFromLambdaEdgeEvent as getRequest, getResponseToLambdaEdge as getResponse }; \ No newline at end of file diff --git a/src/event-sources/index.d.ts b/src/event-sources/index.d.ts new file mode 100644 index 00000000..126eb5cf --- /dev/null +++ b/src/event-sources/index.d.ts @@ -0,0 +1,80 @@ +export function getEventSource({ eventSourceName }: { + eventSourceName: any; +}): { + getRequest: ({ event }: { + event: any; + }) => { + method: any; + headers: { + 'content-length': number; + }; + body: Buffer; + remoteAddress: any; + path: string; + }; + getResponse: ({ statusCode, body, headers, isBase64Encoded }: { + statusCode: any; + body: any; + headers: any; + isBase64Encoded: any; + }) => { + statusCode: any; + body: any; + multiValueHeaders: {}; + isBase64Encoded: any; + }; +} | { + getRequest: ({ event }: { + event: any; + }) => { + method: any; + headers: { + cookie: any; + 'content-length': number; + }; + body: Buffer; + remoteAddress: any; + path: string; + }; + getResponse: ({ statusCode, body, headers, isBase64Encoded, response }: { + statusCode: any; + body: any; + headers?: {}; + isBase64Encoded?: boolean; + response?: {}; + }) => { + statusCode: any; + body: any; + isBase64Encoded: boolean; + }; +} | { + getRequest: ({ event }: { + event: any; + }) => { + method: any; + path: string; + headers: { + 'content-length': number; + }; + body: Buffer; + remoteAddress: any; + host: any; + hostname: any; + }; + getResponse: ({ statusCode, body, headers, isBase64Encoded }: { + statusCode: any; + body: any; + headers: any; + isBase64Encoded: any; + }) => { + status: any; + body: any; + headers: {}; + bodyEncoding: string; + }; +}; +import awsApiGatewayV1EventSource = require("./aws/api-gateway-v1"); +import awsApiGatewayV2EventSource = require("./aws/api-gateway-v2"); +import awsAlbEventSource = require("./aws/alb"); +import awsLambdaEdgeEventSource = require("./aws/lambda-edge"); +export { awsApiGatewayV1EventSource, awsApiGatewayV2EventSource, awsAlbEventSource, awsLambdaEdgeEventSource }; \ No newline at end of file diff --git a/src/event-sources/index.js b/src/event-sources/index.js index 2f7ceac1..e5ce9660 100644 --- a/src/event-sources/index.js +++ b/src/event-sources/index.js @@ -19,5 +19,9 @@ function getEventSource ({ eventSourceName }) { } module.exports = { - getEventSource + getEventSource, + awsApiGatewayV1EventSource, + awsApiGatewayV2EventSource, + awsAlbEventSource, + awsLambdaEdgeEventSource } diff --git a/src/index.d.ts b/src/index.d.ts index fc33b76d..17d28d1e 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -3,3 +3,10 @@ import configure from "./configure" export default configure; export { default as configure } from "./configure" export { getCurrentInvoke } from "./current-invoke" +export { + getEventSource, + awsAlbEventSource, + awsApiGatewayV1EventSource, + awsApiGatewayV2EventSource, + awsLambdaEdgeEventSource +} from './event-sources' diff --git a/src/index.js b/src/index.js index 5ce773a0..cafa9aed 100644 --- a/src/index.js +++ b/src/index.js @@ -1,9 +1,21 @@ const configure = require('./configure') const { getCurrentInvoke } = require('./current-invoke') +const { + getEventSource, + awsAlbEventSource, + awsApiGatewayV1EventSource, + awsApiGatewayV2EventSource, + awsLambdaEdgeEventSource +} = require('./event-sources') module.exports = configure module.exports.getCurrentInvoke = getCurrentInvoke module.exports.configure = configure +module.exports.getEventSource = getEventSource +module.exports.awsAlbEventSource = awsAlbEventSource +module.exports.awsApiGatewayV1EventSource = awsApiGatewayV1EventSource +module.exports.awsApiGatewayV2EventSource = awsApiGatewayV2EventSource +module.exports.awsLambdaEdgeEventSource = awsLambdaEdgeEventSource // Legacy/deprecated: From da4455d4503cf88fb9cf4832f09fd516e6152323 Mon Sep 17 00:00:00 2001 From: Christian Nuss Date: Thu, 28 Oct 2021 11:34:48 -0700 Subject: [PATCH 2/5] feat: eventbridge events --- README.md | 29 ++++++++++++++---- __tests__/unit.eventbridge.js | 27 ++++++++++++++++ __tests__/utils.js | 46 +++++++++++++++++++++++++++- src/configure.d.ts | 2 +- src/event-sources/aws/eventbridge.js | 18 +++++++++++ src/event-sources/index.js | 3 ++ src/event-sources/utils.js | 20 ++++++++++++ 7 files changed, 137 insertions(+), 8 deletions(-) create mode 100644 __tests__/unit.eventbridge.js create mode 100644 src/event-sources/aws/eventbridge.js diff --git a/README.md b/README.md index decfe4cb..c1feac30 100644 --- a/README.md +++ b/README.md @@ -172,9 +172,10 @@ serverlessExpress({ #### eventSourceRoutes -Introduced in `@vendia/serverless-express@4.4.0` native support for `aws:sns` and `aws:dynamodb` events were introduced. - -A single function can be configured to handle events from SNS and DynamoDB, as well as the previously supported events. +A single function can be configured to handle additional kinds of AWS events: + - SNS + - DynamoDB Streams + - EventBridge Events (formerlly CloudWatch Events) Assuming the following function configuration in `serverless.yml`: @@ -191,6 +192,10 @@ functions: - stream: type: dynamodb arn: arn:aws:dynamodb:us-east-1:012345678990:table/my-table/stream/2021-07-15T15:05:51.683 + - eventBridge: + pattern: + source: + - aws.cloudformation ``` And the following configuration: @@ -200,19 +205,31 @@ serverlessExpress({ app, eventSourceRoutes: { 'AWS_SNS': '/sns', - 'AWS_DYNAMODB': '/dynamodb' + 'AWS_DYNAMODB': '/dynamodb', + 'AWS_EVENTBRIDGE': '/eventbridge', + } +}) +``` + +Alternatively, to handle only SNS events (the keys in the map are **optional**) + +```js +serverlessExpress({ + app, + eventSourceRoutes: { + 'AWS_SNS': '/sns', } }) ``` -Events from SNS and DynamoDB will `POST` to the routes configured in Express to handle `/sns` and `/dynamodb`, -respectively. +Events will `POST` to the routes configured. Also, to ensure the events propagated from an internal event and not externally, it is **highly recommended** to ensure the `Host` header matches: - SNS: `sns.amazonaws.com` - DynamoDB: `dynamodb.amazonaws.com` + - EventBridge: `events.amazonaws.com` ### logSettings diff --git a/__tests__/unit.eventbridge.js b/__tests__/unit.eventbridge.js new file mode 100644 index 00000000..18d8dc85 --- /dev/null +++ b/__tests__/unit.eventbridge.js @@ -0,0 +1,27 @@ +const eventSources = require('../src/event-sources') +const testUtils = require('./utils') + +const dynamodbEventSource = eventSources.getEventSource({ + eventSourceName: 'AWS_EVENTBRIDGE' +}) + +test('request is correct', () => { + const req = getReq({ event: testUtils.eventbridgeEvent }) + expect(typeof req).toEqual('object') + expect(req.headers).toEqual({ host: 'events.amazonaws.com' }) + expect(req.body).toEqual(testUtils.eventbridgeEvent) + expect(req.method).toEqual('POST') +}) + +test('request is correct (scheduled)', () => { + const req = getReq({ event: testUtils.eventbridgeScheduledEvent }) + expect(typeof req).toEqual('object') + expect(req.headers).toEqual({ host: 'events.amazonaws.com' }) + expect(req.body).toEqual(testUtils.eventbridgeScheduledEvent) + expect(req.method).toEqual('POST') +}) + +function getReq ({ event }) { + const request = dynamodbEventSource.getRequest({ event }) + return request +} diff --git a/__tests__/utils.js b/__tests__/utils.js index 9b9e4cb5..4a11e6f2 100644 --- a/__tests__/utils.js +++ b/__tests__/utils.js @@ -140,6 +140,38 @@ const snsEvent = { ] } +// Sample event from https://docs.aws.amazon.com/lambda/latest/dg/services-cloudwatchevents.html +const eventbridgeEvent = { + version: '0', + id: 'fe8d3c65-xmpl-c5c3-2c87-81584709a377', + 'detail-type': 'RDS DB Instance Event', + source: 'aws.rds', + account: '123456789012', + time: '2020-04-28T07:20:20Z', + region: 'us-east-2', + resources: ['arn:aws:rds:us-east-2:123456789012:db:rdz6xmpliljlb1'], + detail: { + EventCategories: ['backup'], + SourceType: 'DB_INSTANCE', + SourceArn: 'arn:aws:rds:us-east-2:123456789012:db:rdz6xmpliljlb1', + Date: '2020-04-28T07:20:20.112Z', + Message: 'Finished DB Instance backup', + SourceIdentifier: 'rdz6xmpliljlb1' + } +} + +const eventbridgeScheduledEvent = { + version: '0', + account: '123456789012', + region: 'us-east-2', + detail: {}, + 'detail-type': 'Scheduled Event', + source: 'aws.events', + time: '2019-03-01T01:23:45Z', + id: 'cdc73f9d-aea9-11e3-9d5a-835b769c0d9c', + resources: ['arn:aws:events:us-east-2:123456789012:rule/my-schedule'] +} + describe('getEventSourceNameBasedOnEvent', () => { test('throws error on empty event', () => { expect(() => getEventSourceNameBasedOnEvent({ event: {} })).toThrow( @@ -161,10 +193,22 @@ describe('getEventSourceNameBasedOnEvent', () => { const result = getEventSourceNameBasedOnEvent({ event: snsEvent }) expect(result).toEqual('AWS_SNS') }) + + test('recognizes eventbridge event', () => { + const result = getEventSourceNameBasedOnEvent({ event: eventbridgeEvent }) + expect(result).toEqual('AWS_EVENTBRIDGE') + }) + + test('recognizes eventbridge scheduled event', () => { + const result = getEventSourceNameBasedOnEvent({ event: eventbridgeScheduledEvent }) + expect(result).toEqual('AWS_EVENTBRIDGE') + }) }) module.exports = { samHttpApiEvent, dynamoDbEvent, - snsEvent + snsEvent, + eventbridgeEvent, + eventbridgeScheduledEvent } diff --git a/src/configure.d.ts b/src/configure.d.ts index 4ad0088a..b3fd252b 100644 --- a/src/configure.d.ts +++ b/src/configure.d.ts @@ -2,7 +2,7 @@ import { RequestListener } from "http"; import { Handler } from "aws-lambda"; import Logger from "./logger"; -type EventSources = "AWS_SNS" | "AWS_DYNAMODB"; +type EventSources = "AWS_SNS" | "AWS_DYNAMODB" | "AWS_EVENTBRIDGE"; interface EventSource { getRequest?: any; // TODO: diff --git a/src/event-sources/aws/eventbridge.js b/src/event-sources/aws/eventbridge.js new file mode 100644 index 00000000..1b719fd0 --- /dev/null +++ b/src/event-sources/aws/eventbridge.js @@ -0,0 +1,18 @@ +const { emptyResponseMapper } = require('../utils') + +const getRequestValuesFromEventBridge = ({ event }) => { + const method = 'POST' + const headers = { host: 'events.amazonaws.com' } + const body = event + + return { + method, + headers, + body + } +} + +module.exports = { + getRequest: getRequestValuesFromEventBridge, + getResponse: emptyResponseMapper +} diff --git a/src/event-sources/index.js b/src/event-sources/index.js index 16f1aa97..ab9d7d2c 100644 --- a/src/event-sources/index.js +++ b/src/event-sources/index.js @@ -4,6 +4,7 @@ const awsAlbEventSource = require('./aws/alb') const awsLambdaEdgeEventSource = require('./aws/lambda-edge') const awsSnsEventSource = require('./aws/sns') const awsDynamoDbEventSource = require('./aws/dynamodb') +const awsEventBridgeEventSource = require('./aws/eventbridge') function getEventSource ({ eventSourceName }) { switch (eventSourceName) { @@ -19,6 +20,8 @@ function getEventSource ({ eventSourceName }) { return awsDynamoDbEventSource case 'AWS_SNS': return awsSnsEventSource + case 'AWS_EVENTBRIDGE': + return awsEventBridgeEventSource default: throw new Error('Couldn\'t detect valid event source.') } diff --git a/src/event-sources/utils.js b/src/event-sources/utils.js index ce525c73..fbcc0481 100644 --- a/src/event-sources/utils.js +++ b/src/event-sources/utils.js @@ -84,6 +84,26 @@ function getEventSourceNameBasedOnEvent ({ if (event.requestContext) { return event.version === '2.0' ? 'AWS_API_GATEWAY_V2' : 'AWS_API_GATEWAY_V1' } + if ( + event.version && + event.version === '0' && + event.id && + event['detail-type'] && + event.source && + event.source.startsWith('aws.') && // Might need to adjust this for "Partner Sources", e.g. Auth0, Datadog, etc + event.account && + event.time && + event.region && + event.resources && + Array.isArray(event.resources) && + event.detail && + typeof event.detail === 'object' && + !Array.isArray(event.detail) + ) { + // AWS doesn't have a defining EventSource here, so we're being incredibly selective on the structure + // Ref: https://docs.aws.amazon.com/lambda/latest/dg/services-cloudwatchevents.html + return 'AWS_EVENTBRIDGE' + } throw new Error('Unable to determine event source based on event.') } From 104e5377b3c0534837766e6451601b05309a31b6 Mon Sep 17 00:00:00 2001 From: Christian Nuss Date: Thu, 28 Oct 2021 11:35:13 -0700 Subject: [PATCH 3/5] fix: missed comment update --- src/event-sources/utils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/event-sources/utils.js b/src/event-sources/utils.js index fbcc0481..6cbbcb09 100644 --- a/src/event-sources/utils.js +++ b/src/event-sources/utils.js @@ -100,7 +100,7 @@ function getEventSourceNameBasedOnEvent ({ typeof event.detail === 'object' && !Array.isArray(event.detail) ) { - // AWS doesn't have a defining EventSource here, so we're being incredibly selective on the structure + // AWS doesn't have a defining Event Source here, so we're being incredibly selective on the structure // Ref: https://docs.aws.amazon.com/lambda/latest/dg/services-cloudwatchevents.html return 'AWS_EVENTBRIDGE' } From bad61c8fcefb8007e1b0fb36f26893d8caaa2976 Mon Sep 17 00:00:00 2001 From: Christian Nuss Date: Thu, 28 Oct 2021 11:41:13 -0700 Subject: [PATCH 4/5] fix: remove accidental files added --- src/event-sources/aws/alb.d.ts | 23 ------- src/event-sources/aws/api-gateway-v1.d.ts | 23 ------- src/event-sources/aws/api-gateway-v2.d.ts | 24 ------- src/event-sources/aws/lambda-edge.d.ts | 25 ------- src/event-sources/index.d.ts | 80 ----------------------- src/event-sources/index.js | 6 +- src/index.d.ts | 7 -- src/index.js | 12 ---- 8 files changed, 1 insertion(+), 199 deletions(-) delete mode 100644 src/event-sources/aws/alb.d.ts delete mode 100644 src/event-sources/aws/api-gateway-v1.d.ts delete mode 100644 src/event-sources/aws/api-gateway-v2.d.ts delete mode 100644 src/event-sources/aws/lambda-edge.d.ts delete mode 100644 src/event-sources/index.d.ts diff --git a/src/event-sources/aws/alb.d.ts b/src/event-sources/aws/alb.d.ts deleted file mode 100644 index 8f1bf722..00000000 --- a/src/event-sources/aws/alb.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -declare function getRequestValuesFromAlbEvent({ event }: { - event: any; -}): { - method: any; - headers: { - 'content-length': number; - }; - body: Buffer; - remoteAddress: any; - path: string; -}; -declare function getResponseToAlb({ statusCode, body, headers, isBase64Encoded }: { - statusCode: any; - body: any; - headers: any; - isBase64Encoded: any; -}): { - statusCode: any; - body: any; - multiValueHeaders: {}; - isBase64Encoded: any; -}; -export { getRequestValuesFromAlbEvent as getRequest, getResponseToAlb as getResponse }; \ No newline at end of file diff --git a/src/event-sources/aws/api-gateway-v1.d.ts b/src/event-sources/aws/api-gateway-v1.d.ts deleted file mode 100644 index cab6af5d..00000000 --- a/src/event-sources/aws/api-gateway-v1.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -declare function getRequestValuesFromApiGatewayEvent({ event }: { - event: any; -}): { - method: any; - headers: { - 'content-length': number; - }; - body: Buffer; - remoteAddress: any; - path: string; -}; -declare function getResponseToApiGateway({ statusCode, body, headers, isBase64Encoded }: { - statusCode: any; - body: any; - headers: any; - isBase64Encoded: any; -}): { - statusCode: any; - body: any; - multiValueHeaders: {}; - isBase64Encoded: any; -}; -export { getRequestValuesFromApiGatewayEvent as getRequest, getResponseToApiGateway as getResponse }; \ No newline at end of file diff --git a/src/event-sources/aws/api-gateway-v2.d.ts b/src/event-sources/aws/api-gateway-v2.d.ts deleted file mode 100644 index 5dd17550..00000000 --- a/src/event-sources/aws/api-gateway-v2.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -declare function getRequestValuesFromApiGatewayEvent({ event }: { - event: any; -}): { - method: any; - headers: { - cookie: any; - 'content-length': number; - }; - body: Buffer; - remoteAddress: any; - path: string; -}; -declare function getResponseToApiGateway({ statusCode, body, headers, isBase64Encoded, response }: { - statusCode: any; - body: any; - headers?: {}; - isBase64Encoded?: boolean; - response?: {}; -}): { - statusCode: any; - body: any; - isBase64Encoded: boolean; -}; -export { getRequestValuesFromApiGatewayEvent as getRequest, getResponseToApiGateway as getResponse }; \ No newline at end of file diff --git a/src/event-sources/aws/lambda-edge.d.ts b/src/event-sources/aws/lambda-edge.d.ts deleted file mode 100644 index 057f8708..00000000 --- a/src/event-sources/aws/lambda-edge.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -declare function getRequestValuesFromLambdaEdgeEvent({ event }: { - event: any; -}): { - method: any; - path: string; - headers: { - 'content-length': number; - }; - body: Buffer; - remoteAddress: any; - host: any; - hostname: any; -}; -declare function getResponseToLambdaEdge({ statusCode, body, headers, isBase64Encoded }: { - statusCode: any; - body: any; - headers: any; - isBase64Encoded: any; -}): { - status: any; - body: any; - headers: {}; - bodyEncoding: string; -}; -export { getRequestValuesFromLambdaEdgeEvent as getRequest, getResponseToLambdaEdge as getResponse }; \ No newline at end of file diff --git a/src/event-sources/index.d.ts b/src/event-sources/index.d.ts deleted file mode 100644 index 126eb5cf..00000000 --- a/src/event-sources/index.d.ts +++ /dev/null @@ -1,80 +0,0 @@ -export function getEventSource({ eventSourceName }: { - eventSourceName: any; -}): { - getRequest: ({ event }: { - event: any; - }) => { - method: any; - headers: { - 'content-length': number; - }; - body: Buffer; - remoteAddress: any; - path: string; - }; - getResponse: ({ statusCode, body, headers, isBase64Encoded }: { - statusCode: any; - body: any; - headers: any; - isBase64Encoded: any; - }) => { - statusCode: any; - body: any; - multiValueHeaders: {}; - isBase64Encoded: any; - }; -} | { - getRequest: ({ event }: { - event: any; - }) => { - method: any; - headers: { - cookie: any; - 'content-length': number; - }; - body: Buffer; - remoteAddress: any; - path: string; - }; - getResponse: ({ statusCode, body, headers, isBase64Encoded, response }: { - statusCode: any; - body: any; - headers?: {}; - isBase64Encoded?: boolean; - response?: {}; - }) => { - statusCode: any; - body: any; - isBase64Encoded: boolean; - }; -} | { - getRequest: ({ event }: { - event: any; - }) => { - method: any; - path: string; - headers: { - 'content-length': number; - }; - body: Buffer; - remoteAddress: any; - host: any; - hostname: any; - }; - getResponse: ({ statusCode, body, headers, isBase64Encoded }: { - statusCode: any; - body: any; - headers: any; - isBase64Encoded: any; - }) => { - status: any; - body: any; - headers: {}; - bodyEncoding: string; - }; -}; -import awsApiGatewayV1EventSource = require("./aws/api-gateway-v1"); -import awsApiGatewayV2EventSource = require("./aws/api-gateway-v2"); -import awsAlbEventSource = require("./aws/alb"); -import awsLambdaEdgeEventSource = require("./aws/lambda-edge"); -export { awsApiGatewayV1EventSource, awsApiGatewayV2EventSource, awsAlbEventSource, awsLambdaEdgeEventSource }; \ No newline at end of file diff --git a/src/event-sources/index.js b/src/event-sources/index.js index ab9d7d2c..42c067fe 100644 --- a/src/event-sources/index.js +++ b/src/event-sources/index.js @@ -28,9 +28,5 @@ function getEventSource ({ eventSourceName }) { } module.exports = { - getEventSource, - awsApiGatewayV1EventSource, - awsApiGatewayV2EventSource, - awsAlbEventSource, - awsLambdaEdgeEventSource + getEventSource } diff --git a/src/index.d.ts b/src/index.d.ts index 17d28d1e..fc33b76d 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -3,10 +3,3 @@ import configure from "./configure" export default configure; export { default as configure } from "./configure" export { getCurrentInvoke } from "./current-invoke" -export { - getEventSource, - awsAlbEventSource, - awsApiGatewayV1EventSource, - awsApiGatewayV2EventSource, - awsLambdaEdgeEventSource -} from './event-sources' diff --git a/src/index.js b/src/index.js index cafa9aed..5ce773a0 100644 --- a/src/index.js +++ b/src/index.js @@ -1,21 +1,9 @@ const configure = require('./configure') const { getCurrentInvoke } = require('./current-invoke') -const { - getEventSource, - awsAlbEventSource, - awsApiGatewayV1EventSource, - awsApiGatewayV2EventSource, - awsLambdaEdgeEventSource -} = require('./event-sources') module.exports = configure module.exports.getCurrentInvoke = getCurrentInvoke module.exports.configure = configure -module.exports.getEventSource = getEventSource -module.exports.awsAlbEventSource = awsAlbEventSource -module.exports.awsApiGatewayV1EventSource = awsApiGatewayV1EventSource -module.exports.awsApiGatewayV2EventSource = awsApiGatewayV2EventSource -module.exports.awsLambdaEdgeEventSource = awsLambdaEdgeEventSource // Legacy/deprecated: From b5da6070b8dd2fb674c1f7035dd7edfef1dc83a2 Mon Sep 17 00:00:00 2001 From: Christian Nuss Date: Thu, 28 Oct 2021 11:41:27 -0700 Subject: [PATCH 5/5] fix: revert package.json change --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b10ad6ce..0a161b52 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,7 @@ }, "scripts": { "test": "jest && npm run tsc", - "tsc": "tsc ./src/**/*.ts --outDir typescript-out", + "tsc": "tsc ./src/*.ts --outDir typescript-out", "test:watch": "jest --watch", "test:coverage": "jest --coverage", "cz": "git-cz",