/
githubmirror
/
novu
Обзор
Документация
Войти
/
githubmirror
/
novu
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
next
packages/shared/src/utils/safe-json-stringify.ts
41 строка
1 KB
cursor[bot]
fix(worker): avoid circular JSON errors when serializing provider failures (#10648)
10 апр 2026, 15:37
Не верифицирован
10 апр 2026, 15:37
3ccb71f
Код
Авторство
О чём код?
/** * JSON.stringify that replaces circular references with `[Circular]` instead of throwing. * Use when serializing unknown errors (e.g. Axios) that may reference sockets or parsers. * Stack algorithm matches json-stringify-safe so shared non-circular references stay valid. */ export function safeJsonStringify(value: unknown): string { const stack: unknown[] = []; try { return JSON.stringify(value, function replacer(this: unknown, _key: string, innerValue: unknown) { if (typeof innerValue !== 'object' || innerValue === null) { return innerValue; } if (stack.length > 0) { const thisPos = stack.indexOf(this); if (thisPos !== -1) { stack.splice(thisPos + 1); } else { stack.push(this); } if (stack.includes(innerValue)) { return '[Circular]'; } stack.push(innerValue); } else { stack.push(innerValue); } return innerValue; }); } catch { if (value instanceof Error) { return JSON.stringify({ message: value.message, name: value.name }); } return JSON.stringify({ message: String(value) }); } }