/** * [Gitea #318] The fork's `io.lotus.call_error`: its error page is showing * (`{ code, recoverable }`) or was cleared (`{ code: null }`). */ export type CallErrorState = { code: string; recoverable: boolean } | null; /** Pure: parse a report; undefined for garbage (ignored). */ export function parseCallError(data: unknown): CallErrorState | undefined { if (typeof data !== 'object' || data === null) return undefined; const { code, recoverable } = data as { code?: unknown; recoverable?: unknown }; if (code === null) return null; if (typeof code !== 'string' || !code) return undefined; return { code, recoverable: recoverable === true }; }