Files
order_site/apps/backend/src/utils/task-json.ts
T

31 lines
818 B
TypeScript

import type { JsonObject, JsonRecord } from '../types/json.js'
import { asJsonObject, isPlainObject } from '../types/json.js'
import type { TaskContext } from '../types/task-context.js'
export type { JsonRecord, JsonObject }
export function parseJsonObject(value: unknown): JsonObject {
if (!value) {
return {}
}
if (isPlainObject(value)) {
return value
}
try {
const parsed = JSON.parse(String(value || '{}')) as unknown
return asJsonObject(parsed)
} catch {
return {}
}
}
export function parseTaskContext(task: { context_json?: unknown } | null | undefined): TaskContext {
return parseJsonObject(task?.context_json) as TaskContext
}
export function parseTaskState(task: { state_json?: unknown } | null | undefined): JsonObject {
return parseJsonObject(task?.state_json)
}