22 lines
584 B
TypeScript
22 lines
584 B
TypeScript
export function safeJsonStringify(value: unknown): string | null {
|
|
try {
|
|
return JSON.stringify(value, (_key, val) => {
|
|
if (typeof val === "bigint") {
|
|
return val.toString();
|
|
}
|
|
if (typeof val === "function") {
|
|
return "[Function]";
|
|
}
|
|
if (val instanceof Error) {
|
|
return { name: val.name, message: val.message, stack: val.stack };
|
|
}
|
|
if (val instanceof Uint8Array) {
|
|
return { type: "Uint8Array", data: Buffer.from(val).toString("base64") };
|
|
}
|
|
return val;
|
|
});
|
|
} catch {
|
|
return null;
|
|
}
|
|
}
|