From b7e684d34b1891ca183cd0273efc838f104261fc Mon Sep 17 00:00:00 2001 From: Joe Staley Date: Tue, 10 Feb 2026 14:20:49 -0500 Subject: [PATCH 1/2] Add latching to update flavor --- src/flavors/update.js | 3 ++- test/unit/flavors/update.test.js | 34 ++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/flavors/update.js b/src/flavors/update.js index 3464d50..db34fe0 100644 --- a/src/flavors/update.js +++ b/src/flavors/update.js @@ -12,12 +12,13 @@ import { updateDynamoDB, } from '../sinks/dynamodb'; -import { filterOnEventType, filterOnContent } from '../filters'; +import { filterOnEventType, filterOnContent, outLatched } from '../filters'; import { normalize } from './correlate'; export const update = (rule) => (s) => s // eslint-disable-line import/prefer-default-export // reacting to collected events vs change events + .filter(outLatched) .map((uow) => (uow.record.eventName === 'INSERT' && uow.record.dynamodb.Keys.sk.S === 'EVENT' ? /* istanbul ignore next */ normalize(uow) : uow)) .filter(onEventType(rule)) diff --git a/test/unit/flavors/update.test.js b/test/unit/flavors/update.test.js index b88c31b..c7a93bd 100644 --- a/test/unit/flavors/update.test.js +++ b/test/unit/flavors/update.test.js @@ -287,6 +287,40 @@ describe('flavors/update.js', () => { }) .done(done); }); + + it('should skip processing if latched', (done) => { + const events = toDynamodbRecords([ + { + timestamp: 1572832690, + keys: { + pk: '1', + sk: 'thing', + }, + newImage: { + pk: '1', + sk: 'thing', + discriminator: 'thing', + name: 'Thing One', + description: 'This is thing one', + otherThing: 'thing|2', + latched: true, + ttl: 1549053422, + timestamp: 1548967022000, + }, + }, + ]); + + initialize({ + ...initializeFrom(rules), + }, { ...defaultOptions, AES: false }) + .assemble(fromDynamodb(events), false) + .collect() + // .tap((collected) => console.log(JSON.stringify(collected, null, 2))) + .tap((collected) => { + expect(collected.length).to.equal(0); + }) + .done(done); + }); }); const toUpdateRequest = (uow) => ({ From 5f542fcdd0d15e80b952aa2cf26175e7887a3aba Mon Sep 17 00:00:00 2001 From: Joe Staley Date: Tue, 10 Feb 2026 14:26:58 -0500 Subject: [PATCH 2/2] Add latching to update flavor --- package-lock.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 44be0c3..d4c80dc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "aws-lambda-stream", - "version": "1.1.19", + "version": "1.1.20", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "aws-lambda-stream", - "version": "1.1.19", + "version": "1.1.20", "license": "MIT", "dependencies": { "object-sizeof": "^2.6.0"