1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.DynamoDBStreamParser = void 0;
|
4 | const aws_sdk_1 = require("aws-sdk");
|
5 | class DynamoDBStreamParser {
|
6 | constructor(event) {
|
7 | this.event = event;
|
8 | }
|
9 | getVersions() {
|
10 | let newVersions = [];
|
11 | let oldVersions = [];
|
12 | let versions = [];
|
13 | this.event.Records.forEach((record) => {
|
14 | const { newVersion, oldVersion, version } = this.parseVersions(record);
|
15 | if (newVersion) {
|
16 | newVersions.push(newVersion);
|
17 | }
|
18 | if (oldVersion) {
|
19 | oldVersions.push(oldVersion);
|
20 | }
|
21 | if (version) {
|
22 | versions.push(version);
|
23 | }
|
24 | });
|
25 | return { newVersions, oldVersions, versions };
|
26 | }
|
27 | parseVersions(record) {
|
28 | const { eventName } = record;
|
29 | const { NewImage, OldImage, Keys } = record.dynamodb;
|
30 | const newVersion = NewImage ? aws_sdk_1.DynamoDB.Converter.unmarshall(NewImage) : undefined;
|
31 | const oldVersion = OldImage ? aws_sdk_1.DynamoDB.Converter.unmarshall(OldImage) : undefined;
|
32 | const keys = aws_sdk_1.DynamoDB.Converter.unmarshall(Keys);
|
33 | const { tableName, tableArn } = this.getTableInformation(record);
|
34 | const version = { newVersion, oldVersion, keys, tableName, tableArn, eventName };
|
35 | return { newVersion, oldVersion, version };
|
36 | }
|
37 | getTableInformation(record) {
|
38 | let streamArn = record['eventSourceARN'];
|
39 | const tableArn = streamArn.split('/stream/')[0];
|
40 | const tableName = tableArn.split(':table/')[1];
|
41 | return { tableName, tableArn };
|
42 | }
|
43 | }
|
44 | exports.DynamoDBStreamParser = DynamoDBStreamParser;
|
45 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2R5bmFtb2RiLXN0cmVhbS9wYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscUNBQW9EO0FBRXBELE1BQWEsb0JBQW9CO0lBQy9CLFlBQW9CLEtBQTBCO1FBQTFCLFVBQUssR0FBTCxLQUFLLENBQXFCO0lBQUcsQ0FBQztJQUVsRCxXQUFXO1FBQ1QsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLFFBQVEsR0FBaUIsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3BDLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkUsSUFBSSxVQUFVLEVBQUU7Z0JBQ2QsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUM5QjtZQUNELElBQUksVUFBVSxFQUFFO2dCQUNkLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDOUI7WUFDRCxJQUFJLE9BQU8sRUFBRTtnQkFDWCxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3hCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRU8sYUFBYSxDQUFDLE1BQXNCO1FBQzFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDN0IsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNyRCxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFFLGtCQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3pGLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUUsa0JBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDekYsTUFBTSxJQUFJLEdBQUcsa0JBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pELE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sT0FBTyxHQUFlLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUM3RixPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRU8sbUJBQW1CLENBQUMsTUFBc0I7UUFDaEQsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQztDQUNGO0FBdkNELG9EQXVDQyJ9 |
\ | No newline at end of file |