From 13b2d98ed04bcfec2a57b2a99a0715b20a63cd58 Mon Sep 17 00:00:00 2001 From: ymc9 <104139426+ymc9@users.noreply.github.com> Date: Mon, 19 May 2025 19:59:07 -0700 Subject: [PATCH] fix: error when logging prisma queries whose data contains BigInt fixes #2106 --- .../runtime/src/enhancements/node/utils.ts | 2 +- tests/regression/tests/issue-2106.test.ts | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 tests/regression/tests/issue-2106.test.ts diff --git a/packages/runtime/src/enhancements/node/utils.ts b/packages/runtime/src/enhancements/node/utils.ts index 347447618..05d906046 100644 --- a/packages/runtime/src/enhancements/node/utils.ts +++ b/packages/runtime/src/enhancements/node/utils.ts @@ -7,7 +7,7 @@ import type { DbClientContract } from '../../types'; */ // eslint-disable-next-line @typescript-eslint/no-explicit-any export function formatObject(value: any, multiLine = true) { - return multiLine ? safeJsonStringify(value, undefined, 2) : safeJsonStringify(value); + return safeJsonStringify(value, (_, v) => (typeof v === 'bigint' ? v.toString() : v), multiLine ? 2 : undefined); } // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/tests/regression/tests/issue-2106.test.ts b/tests/regression/tests/issue-2106.test.ts new file mode 100644 index 000000000..c81347918 --- /dev/null +++ b/tests/regression/tests/issue-2106.test.ts @@ -0,0 +1,19 @@ +import { loadSchema } from '@zenstackhq/testtools'; + +describe('issue 2106', () => { + it('regression', async () => { + const { enhance } = await loadSchema( + ` + model User { + id Int @id + age BigInt + @@allow('all', true) + } + `, + { logPrismaQuery: true } + ); + + const db = enhance(); + await expect(db.user.create({ data: { id: 1, age: 1n } })).toResolveTruthy(); + }); +});