095a79de94
新增 version-upload-state.ts:上传 job 状态转换与失败消息兜底。 TDD: task-129.test.ts 8 用例 RED→GREEN。
27 lines
933 B
TypeScript
27 lines
933 B
TypeScript
/** 软件版本上传进度与错误(任务 129):上传 job 状态转换与失败消息兜底;纯逻辑。 */
|
|
|
|
export type VersionUploadStatus = 'idle' | 'running' | 'done' | 'failed'
|
|
|
|
export interface VersionUploadState {
|
|
status: VersionUploadStatus
|
|
progress: number
|
|
message?: string
|
|
}
|
|
|
|
export function createVersionUploadState(): VersionUploadState {
|
|
return { status: 'idle', progress: 0 }
|
|
}
|
|
|
|
export function startVersionUpload(_state: VersionUploadState): VersionUploadState {
|
|
return { status: 'running', progress: 0 }
|
|
}
|
|
|
|
export function succeedVersionUpload(_state: VersionUploadState): VersionUploadState {
|
|
return { status: 'done', progress: 100 }
|
|
}
|
|
|
|
export function failVersionUpload(_state: VersionUploadState, message: string): VersionUploadState {
|
|
const text = typeof message === 'string' ? message.trim() : ''
|
|
return { status: 'failed', progress: 0, message: text || '上传失败,请重试' }
|
|
}
|