b8db7f3b73
CI/CD Pipeline / Check if frontend-only change (push) Has been cancelled
CI/CD Pipeline / Validate - Code Quality (push) Has been cancelled
CI/CD Pipeline / Validate - Type Check (mypy) (push) Has been cancelled
CI/CD Pipeline / Validate - Migration (alembic) (push) Has been cancelled
CI/CD Pipeline / Unit Tests (push) Has been cancelled
CI/CD Pipeline / Integration Tests (push) Has been cancelled
CI/CD Pipeline / Frontend Lint (push) Has been cancelled
CI/CD Pipeline / Frontend Unit Tests (push) Has been cancelled
CI/CD Pipeline / PR Build API Image (push) Has been cancelled
CI/CD Pipeline / PR Build Web Image (push) Has been cancelled
CI/CD Pipeline / PR Build Worker Image (push) Has been cancelled
CI/CD Pipeline / Build Staging API Image (push) Has been cancelled
CI/CD Pipeline / Build Staging Web Image (push) Has been cancelled
CI/CD Pipeline / Build Staging Worker Image (push) Has been cancelled
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Has been cancelled
CI/CD Pipeline / Staging E2E Tests (push) Has been cancelled
CI/CD Pipeline / Staging API Integration Tests (push) Has been cancelled
CI/CD Pipeline / Build Production API Image (push) Has been cancelled
CI/CD Pipeline / Build Production Web Image (push) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (push) Has been cancelled
CI/CD Pipeline / Deploy Production (push) Has been cancelled
CI/CD Pipeline / Production Browser E2E (push) Has been cancelled
CI/CD Pipeline / ACR Image Cleanup (push) Has been cancelled
CI/CD Pipeline / Canary Release to Production (push) Has been cancelled
CI/CD Pipeline / CI Gate (push) Has been cancelled
27 lines
827 B
TypeScript
27 lines
827 B
TypeScript
import type { TaskStatus } from "./constants"
|
|
|
|
/** 将后端 status 字符串映射为前端 TaskStatus */
|
|
export const normalizeStatus = (s: string): TaskStatus => {
|
|
const map: Record<string, TaskStatus> = {
|
|
completed: "completed",
|
|
succeeded: "completed",
|
|
success: "completed",
|
|
processing: "processing",
|
|
running: "processing",
|
|
pending: "pending",
|
|
queued: "pending",
|
|
failed: "failed",
|
|
error: "failed",
|
|
}
|
|
return map[s] ?? "pending"
|
|
}
|
|
|
|
/** 格式化日期 */
|
|
export const formatDate = (iso?: string | null): string => {
|
|
if (!iso) return "—"
|
|
const d = new Date(iso)
|
|
if (isNaN(d.getTime())) return "—"
|
|
const pad = (n: number) => String(n).padStart(2, "0")
|
|
return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}`
|
|
}
|