From d0bb431391fd0d5f402fb1a8ae4a781c4dfab6e0 Mon Sep 17 00:00:00 2001 From: Adam McCarthy Date: Wed, 4 Oct 2023 21:17:28 -0400 Subject: [PATCH] fix(validate-types): resolve attr type changed to number when is bigint --- src/__tests__/validateTypes.unit.test.ts | 5 ++++- src/lib/validateTypes.ts | 2 -- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/__tests__/validateTypes.unit.test.ts b/src/__tests__/validateTypes.unit.test.ts index 9e1079e7a..418225c1e 100644 --- a/src/__tests__/validateTypes.unit.test.ts +++ b/src/__tests__/validateTypes.unit.test.ts @@ -169,7 +169,8 @@ describe('validateTypes', () => { }) it('converts arrays of bigints to sets', async () => { - const result = validateTypes()({ type: 'set', setType: 'bigint' }, 'attr', [ + const attr = { type: 'set', setType: 'bigint' } + const result = validateTypes()(attr, 'attr', [ BigInt(-1234), BigInt('123000000000000000000001') ]) @@ -177,5 +178,7 @@ describe('validateTypes', () => { toDynamoBigInt(BigInt(-1234)), toDynamoBigInt(BigInt('123000000000000000000001')) ])) + // Should not mutate the attribute + expect(attr.setType).toEqual('bigint') }) }) diff --git a/src/lib/validateTypes.ts b/src/lib/validateTypes.ts index 2fcd69cae..fab69ac4c 100644 --- a/src/lib/validateTypes.ts +++ b/src/lib/validateTypes.ts @@ -61,7 +61,6 @@ export default () => (mapping: any, field: any, value: any) => { if (value instanceof Set) { if (mapping.setType === 'bigint') { - mapping.setType = 'number' value = Array.from(value).map((n) => toDynamoBigInt(n)) } @@ -78,7 +77,6 @@ export default () => (mapping: any, field: any, value: any) => { const actualSetType = typeOf(value[0])?.toLowerCase?.() if (mapping.setType === 'bigint') { - mapping.setType = 'number' value = value.map((n) => toDynamoBigInt(n)) }