task-6: isTerminalStatus() 终态判定(默认 SUCCESS/FAILED,extras 扩展且归一化,空值非终态)

This commit is contained in:
2026-08-31 19:20:17 +08:00
parent 432b2c52b2
commit 1e1f533a24
2 changed files with 38 additions and 22 deletions
+16
View File
@@ -8,3 +8,19 @@ export function normalizeStatus(raw: string | null | undefined): string {
}
return trimmed.toUpperCase().replace(/[\s-]+/g, '_')
}
export function isTerminalStatus(
status: string | null | undefined,
extras?: string[],
): boolean {
const normalized = normalizeStatus(status)
if (!normalized) {
return false
}
const terminalSet = new Set([
'SUCCESS',
'FAILED',
...(extras ?? []).map((extra) => normalizeStatus(extra)),
])
return terminalSet.has(normalized)
}