15 lines
662 B
TypeScript
15 lines
662 B
TypeScript
/**
|
|||
|
|
* [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 };
|
||
|
|
}
|