Skip to content

Commit 1d6db03

Browse files
authored
fix(core/event-streams): continue looking for event stream headers after payload is found (#1792)
1 parent e11f749 commit 1d6db03

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

.changeset/shy-colts-float.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@smithy/core": patch
3+
---
4+
5+
continue looking for event headers after event payload is found

packages/core/src/submodules/event-streams/EventStreamSerde.spec.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,9 @@ describe(EventStreamSerde.name, () => {
7979
"ns",
8080
"CustomHeaders",
8181
0,
82-
["header1", "header2", "header-date", "header-number", "header-boolean", "header-blob"],
82+
["payload", "header1", "header2", "header-date", "header-number", "header-boolean", "header-blob"],
8383
[
84+
[0, "ns", "BlobPayload", { eventPayload: 1 }, 21 satisfies BlobSchema] satisfies StaticSimpleSchema,
8485
[0, "ns", "EventHeader", { eventHeader: 1 }, 0 satisfies StringSchema] satisfies StaticSimpleSchema,
8586
[0, "ns", "EventHeader", { eventHeader: 1 }, 0 satisfies StringSchema] satisfies StaticSimpleSchema,
8687

@@ -125,6 +126,7 @@ describe(EventStreamSerde.name, () => {
125126
yield { TextPayload: { payload: "beep boop" } };
126127
yield {
127128
CustomHeaders: {
129+
payload: new Uint8Array([0, 1, 2, 3]),
128130
header1: "h1",
129131
header2: "h2",
130132
"header-date": new Date(0),
@@ -189,7 +191,7 @@ describe(EventStreamSerde.name, () => {
189191
headers: {
190192
":event-type": { type: "string", value: "CustomHeaders" },
191193
":message-type": { type: "string", value: "event" },
192-
":content-type": { type: "string", value: "application/cbor" },
194+
":content-type": { type: "string", value: "application/octet-stream" },
193195
header1: { type: "string", value: "h1" },
194196
header2: { type: "string", value: "h2" },
195197
"header-boolean": {
@@ -209,7 +211,7 @@ describe(EventStreamSerde.name, () => {
209211
value: new Uint8Array([0, 1, 2, 3]),
210212
},
211213
},
212-
body: {},
214+
body: new Uint8Array([0, 1, 2, 3]),
213215
},
214216
];
215217

@@ -346,6 +348,7 @@ describe(EventStreamSerde.name, () => {
346348
yield { TextPayload: { payload: "boop beep" } };
347349
yield {
348350
CustomHeaders: {
351+
payload: new Uint8Array([0, 1, 2, 3]),
349352
header1: "h1",
350353
header2: "h2",
351354
"header-date": new Date(0),
@@ -400,6 +403,7 @@ describe(EventStreamSerde.name, () => {
400403
{ TextPayload: { payload: "boop beep" } },
401404
{
402405
CustomHeaders: {
406+
payload: new Uint8Array([0, 1, 2, 3]),
403407
header1: "h1",
404408
header2: "h2",
405409
"header-boolean": false,
@@ -447,6 +451,7 @@ describe(EventStreamSerde.name, () => {
447451
{ TextPayload: { payload: "boop beep" } },
448452
{
449453
CustomHeaders: {
454+
payload: new Uint8Array([0, 1, 2, 3]),
450455
header1: "h1",
451456
header2: "h2",
452457
"header-boolean": false,

packages/core/src/submodules/event-streams/EventStreamSerde.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,6 @@ export class EventStreamSerde {
297297

298298
if (eventPayload) {
299299
explicitPayloadMember = memberName;
300-
break;
301300
} else if (eventHeader) {
302301
const value = event[unionMember][memberName];
303302
let type = "binary" as MessageHeaderValue["type"];

0 commit comments

Comments
 (0)