| /** |
| * @license |
| * Copyright 2022 Google LLC |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| import {ProgressStatus} from '../constants/constants'; |
| import {NumericChangeId} from '../api/rest-api'; |
| |
| export function getOverallStatus( |
| progressByChangeNum: Map<NumericChangeId, ProgressStatus> |
| ) { |
| const statuses = Array.from(progressByChangeNum.values()); |
| if (statuses.every(s => s === ProgressStatus.NOT_STARTED)) { |
| return ProgressStatus.NOT_STARTED; |
| } |
| if (statuses.some(s => s === ProgressStatus.RUNNING)) { |
| return ProgressStatus.RUNNING; |
| } |
| if (statuses.some(s => s === ProgressStatus.FAILED)) { |
| return ProgressStatus.FAILED; |
| } |
| return ProgressStatus.SUCCESSFUL; |
| } |