From e4c8cd5464d7b81f3ff5e6b87c51ab5c162c6cca Mon Sep 17 00:00:00 2001 From: x244777 Date: Tue, 22 Apr 2025 15:21:16 -0400 Subject: [PATCH] Do not create publish request entity if event is an empty object --- package-lock.json | 4 ++-- package.json | 2 +- src/sinks/eventbridge.js | 2 +- test/unit/sinks/eventbridge.test.js | 21 +++++++++++++++++++++ 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 93905818..241d6895 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "aws-lambda-stream", - "version": "1.0.31", + "version": "1.0.32", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "aws-lambda-stream", - "version": "1.0.31", + "version": "1.0.32", "license": "MIT", "dependencies": { "object-sizeof": "^2.6.0" diff --git a/package.json b/package.json index ab144178..a33fb84f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "aws-lambda-stream", - "version": "1.0.31", + "version": "1.0.32", "description": "Create stream processors with AWS Lambda functions.", "keywords": [ "aws", diff --git a/src/sinks/eventbridge.js b/src/sinks/eventbridge.js index 9ab9390d..b24e7f9f 100644 --- a/src/sinks/eventbridge.js +++ b/src/sinks/eventbridge.js @@ -32,7 +32,7 @@ export const publishToEventBridge = ({ // eslint-disable-line import/prefer-defa const toPublishRequestEntry = (uow) => ({ ...uow, - [publishRequestEntryField]: uow[eventField] ? { + [publishRequestEntryField]: uow[eventField] && Object.keys(uow[eventField]).length > 0 ? { EventBusName: busName, Source: source, DetailType: uow[eventField].type, diff --git a/test/unit/sinks/eventbridge.test.js b/test/unit/sinks/eventbridge.test.js index 9cbc65c3..de62c2cb 100644 --- a/test/unit/sinks/eventbridge.test.js +++ b/test/unit/sinks/eventbridge.test.js @@ -105,6 +105,27 @@ describe('sinks/eventbridge.js', () => { .done(done); }); + it('should not publish when emit field is empty object', (done) => { + const uows = [{ + emit: {}, + }]; + + _(uows) + .through(publish( + { + eventField: 'emit', busName: 'b1', debug: (msg, v) => console.log(msg, v), metricsEnabled: true, + }, + )) + .collect() + .tap((collected) => { + // console.log(JSON.stringify(collected, null, 2)); + + expect(collected.length).to.equal(1); + expect(collected[0].publishRequestEntry).to.be.undefined; + }) + .done(done); + }); + it('should reject with a fault', (done) => { sinon.stub(Connector.prototype, 'putEvents').rejects('test error');