fix: console logger can serialize bigint values (#1403)

* fix: console logger can serialize bigint values

* teach test jsdom is present

* add a changeset
This commit is contained in:
Paul D'Ambra
2026-04-01 12:00:00 +08:00
committed by GitHub
parent 6510e32456
commit 77e12e4f54
3 changed files with 21 additions and 2 deletions

View File

@@ -91,7 +91,7 @@ export function stringify(
const keys: unknown[] = [];
return JSON.stringify(
obj,
function (key, value: string | object | null | undefined) {
function (key, value: string | bigint | object | null | undefined) {
/**
* forked from https://github.com/moll/json-stringify-safe/blob/master/stringify.js
* to deCycle the object
@@ -120,6 +120,9 @@ export function stringify(
if (shouldIgnore(value as object)) {
return toString(value as object);
}
if (typeof value === 'bigint') {
return value.toString() + 'n';
}
if (value instanceof Event) {
const eventResult: Record<string, unknown> = {};
for (const eventKey in value) {
@@ -158,7 +161,7 @@ export function stringify(
return true;
}
// is function
// is function or bigint
if (typeof _obj === 'function') {
return true;
}

View File

@@ -0,0 +1,11 @@
/**
* @jest-environment jsdom
*/
import { stringify } from '../../../src/plugins/console/record/stringify';
describe('console record plugin', () => {
it('can stringify bigint', () => {
expect(stringify(BigInt(1))).toEqual('"1n"');
});
});