diff --git a/packages/core/src/v3/utils/flattenAttributes.ts b/packages/core/src/v3/utils/flattenAttributes.ts index c2deeecca2..78acfca262 100644 --- a/packages/core/src/v3/utils/flattenAttributes.ts +++ b/packages/core/src/v3/utils/flattenAttributes.ts @@ -209,6 +209,10 @@ class AttributeFlattener { return; } + if (value === undefined) { + return; + } + // Handle primitive values directly if (value === null) { this.addAttribute(prefix, NULL_SENTINEL); diff --git a/packages/core/test/flattenAttributes.test.ts b/packages/core/test/flattenAttributes.test.ts index cdeb6b933b..8970ae6a7d 100644 --- a/packages/core/test/flattenAttributes.test.ts +++ b/packages/core/test/flattenAttributes.test.ts @@ -61,6 +61,11 @@ describe("flattenAttributes", () => { expect(unflattenAttributes(result)).toEqual(input); }); + it("flattens properties that are undefined correctly", () => { + const result = flattenAttributes({ foo: undefined, bar: "baz" }); + expect(result).toEqual({ bar: "baz" }); + }); + it("flattens complex objects correctly", () => { const obj = { level1: {