ai-chatbot/lib/ai/vip98k-result-delivery.ts

32 lines
960 B
TypeScript

type JsonRecord = Record<string, unknown>;
function toRecord(value: unknown): JsonRecord | null {
if (!value || typeof value !== "object" || Array.isArray(value)) return null;
return value as JsonRecord;
}
function unwrapData(payload: unknown) {
const record = toRecord(payload);
return record?.data && typeof record.data === "object" ? record.data : payload;
}
export function shouldResolveVip98kResultDelivery(params: {
payload: unknown;
status: string;
outputUrlCount: number;
}) {
if (params.outputUrlCount > 0) return false;
const data = toRecord(unwrapData(params.payload));
const result = toRecord(data?.result);
const resultAvailable = Boolean(
data?.resultAvailable ??
data?.result_available ??
result?.resultAvailable ??
result?.result_available,
);
const terminal = ["succeeded", "success", "completed", "done", "finished"].includes(
params.status,
);
return terminal || resultAvailable;
}