import type { WorkReceiptStatus } from './work-receipts'; export const RECEIPT_STATUS_CODE = { queued: 0, pending: 0, running: 1, completed: 2, failed: 3, skipped: 4, } as const satisfies Record; export type ReceiptStatusCode = (typeof RECEIPT_STATUS_CODE)[keyof typeof RECEIPT_STATUS_CODE]; export function receiptStatusFromCode(value: unknown): WorkReceiptStatus { if (value == null) { throw new Error(`Unknown runtime work receipt status code: ${value}`); } switch (Number(value)) { case RECEIPT_STATUS_CODE.running: return 'running'; case RECEIPT_STATUS_CODE.completed: return 'completed'; case RECEIPT_STATUS_CODE.failed: return 'failed'; case RECEIPT_STATUS_CODE.skipped: return 'skipped'; case RECEIPT_STATUS_CODE.queued: return 'queued'; default: throw new Error(`Unknown runtime work receipt status code: ${value}`); } } export function receiptCodeFromStatus( status: WorkReceiptStatus, ): ReceiptStatusCode { return RECEIPT_STATUS_CODE[status]; } export function receiptStatusCodeFromUnknown( value: unknown, ): ReceiptStatusCode { return receiptCodeFromStatus(receiptStatusFromCode(value)); }