Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | 103x 144x 98x 2x 44x 44x 44x 1x 1x 1x | import {
ResultSummaryCalculationStatus,
type ResultSummaryStatusPayload,
} from "@/api/apiStore.gen.ts";
export type { ResultSummaryStatusPayload };
const RESULT_SUMMARY_STATUSES = new Set<string>(
Object.values(ResultSummaryCalculationStatus),
);
function isRecord(value: unknown): value is Record<string, unknown> {
return typeof value === "object" && value !== null;
}
export function getResultSummaryStatus(
value: unknown,
): ResultSummaryStatusPayload | undefined {
if (!isRecord(value)) {
return undefined;
}
if (
typeof value.status === "string" &&
RESULT_SUMMARY_STATUSES.has(value.status)
) {
return value as ResultSummaryStatusPayload;
}
const statusCode = value.status;
const data = value.data;
if ((statusCode !== 202 && statusCode !== 409) || !isRecord(data)) {
return undefined;
}
if (
typeof data.status !== "string" ||
!RESULT_SUMMARY_STATUSES.has(data.status)
) {
return undefined;
}
return data as ResultSummaryStatusPayload;
}
export function isResultSummaryPending(
status: ResultSummaryStatusPayload | undefined,
): boolean {
return (
status?.status === ResultSummaryCalculationStatus.Pending ||
status?.status === ResultSummaryCalculationStatus.Calculating
);
}
export function isResultSummaryFailed(
status: ResultSummaryStatusPayload | undefined,
): boolean {
return status?.status === ResultSummaryCalculationStatus.Failed;
}
export function isResultSummaryPartial(
status: ResultSummaryStatusPayload | undefined,
): boolean {
return status?.status === ResultSummaryCalculationStatus.Partial;
}
export function isResultSummaryUnavailable(
status: ResultSummaryStatusPayload | undefined,
): boolean {
return isResultSummaryFailed(status) || isResultSummaryPartial(status);
}
|