deduplicate task parsing and masking helpers

This commit is contained in:
yml
2026-05-21 18:50:07 +08:00
parent efa41ba976
commit 17a615b8de
9 changed files with 151 additions and 491 deletions
+26
View File
@@ -0,0 +1,26 @@
export type JsonRecord = Record<string, any>
export function parseJsonObject(value: unknown): JsonRecord {
if (!value) {
return {}
}
if (typeof value === 'object' && !Array.isArray(value)) {
return value as JsonRecord
}
try {
const parsed = JSON.parse(String(value || '{}'))
return parsed && typeof parsed === 'object' && !Array.isArray(parsed) ? parsed : {}
} catch {
return {}
}
}
export function parseTaskContext(task: { context_json?: unknown } | null | undefined): JsonRecord {
return parseJsonObject(task?.context_json)
}
export function parseTaskState(task: { state_json?: unknown } | null | undefined): JsonRecord {
return parseJsonObject(task?.state_json)
}