From 782b693e714680b5293b847e1abed36ccf1b2386 Mon Sep 17 00:00:00 2001 From: Sachin Shekhar Date: Mon, 28 Sep 2020 17:20:57 +0530 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=96=20Merge=20PR=20#48268=20[aws-lambd?= =?UTF-8?q?a]=20Add=20Amazon=20MSK=20event=20by=20@SachinShekhar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- types/aws-lambda/index.d.ts | 1 + types/aws-lambda/test/msk-tests.ts | 19 +++++++++++++++++++ types/aws-lambda/trigger/msk.d.ts | 21 +++++++++++++++++++++ types/aws-lambda/tsconfig.json | 3 ++- 4 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 types/aws-lambda/test/msk-tests.ts create mode 100644 types/aws-lambda/trigger/msk.d.ts diff --git a/types/aws-lambda/index.d.ts b/types/aws-lambda/index.d.ts index 2a8bad6c87..4aa58c602a 100644 --- a/types/aws-lambda/index.d.ts +++ b/types/aws-lambda/index.d.ts @@ -78,5 +78,6 @@ export * from "./trigger/s3-batch"; export * from "./trigger/ses"; export * from "./trigger/sns"; export * from "./trigger/sqs"; +export * from './trigger/msk'; export as namespace AWSLambda; diff --git a/types/aws-lambda/test/msk-tests.ts b/types/aws-lambda/test/msk-tests.ts new file mode 100644 index 0000000000..a13608672d --- /dev/null +++ b/types/aws-lambda/test/msk-tests.ts @@ -0,0 +1,19 @@ +import { MSKHandler, MSKEvent, MSKRecord } from 'aws-lambda'; + +const handler: MSKHandler = (_event, context, callback) => { + const event: MSKEvent = _event; + str = event.eventSource; + str = event.eventSourceArn; + + const record: MSKRecord = event.records[str][num]; + str = record.topic; + num = record.partition; + num = record.offset; + num = record.timestamp; + str = record.timestampType; + str = record.key; + str = record.value; + + callback(); + callback(new Error()); +}; diff --git a/types/aws-lambda/trigger/msk.d.ts b/types/aws-lambda/trigger/msk.d.ts new file mode 100644 index 0000000000..477eb868ee --- /dev/null +++ b/types/aws-lambda/trigger/msk.d.ts @@ -0,0 +1,21 @@ +import { Handler } from '../handler'; + +export type MSKHandler = Handler; + +export interface MSKRecord { + topic: string; + partition: number; + offset: number; + timestamp: number; + timestampType: 'CREATE_TIME' | 'LOG_APPEND_TIME'; + key: string; + value: string; +} + +export interface MSKEvent { + eventSource: 'aws:kafka'; + eventSourceArn: string; + records: { + [topic: string]: MSKRecord[]; + }; +} diff --git a/types/aws-lambda/tsconfig.json b/types/aws-lambda/tsconfig.json index fe1d54656a..72a77fadfa 100644 --- a/types/aws-lambda/tsconfig.json +++ b/types/aws-lambda/tsconfig.json @@ -35,6 +35,7 @@ "test/s3-tests.ts", "test/ses-tests.ts", "test/sns-tests.ts", - "test/sqs-tests.ts" + "test/sqs-tests.ts", + "test/msk-tests.ts" ] }