mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-26 06:59:29 +00:00
29 lines
700 B
TypeScript
29 lines
700 B
TypeScript
export function toCodeModeJsonSafe(value: unknown): unknown {
|
|
if (value === undefined) {
|
|
return null;
|
|
}
|
|
try {
|
|
const serialized = JSON.stringify(value);
|
|
return serialized === undefined ? null : (JSON.parse(serialized) as unknown);
|
|
} catch {
|
|
if (value instanceof Error) {
|
|
return { name: value.name, message: value.message };
|
|
}
|
|
if (value === null) {
|
|
return null;
|
|
}
|
|
switch (typeof value) {
|
|
case "string":
|
|
case "number":
|
|
case "boolean":
|
|
return value;
|
|
case "bigint":
|
|
case "symbol":
|
|
case "function":
|
|
return String(value);
|
|
default:
|
|
return Object.prototype.toString.call(value);
|
|
}
|
|
}
|
|
}
|