@prefecthq/prefect-ui-library
Version:
This library is the Vue and Typescript component library for [Prefect 2](https://github.com/PrefectHQ/prefect) and [Prefect Cloud 2](https://www.prefect.io/cloud/). _The components and utilities in this project are not meant to be used independently_.
93 lines (89 loc) • 3.13 kB
text/typescript
import { IEmpiricalPolicy } from '@/models/EmpiricalPolicy'
import { State } from '@/models/State'
import { StateType } from '@/models/StateType'
import { TaskInput } from '@/models/TaskInput'
export interface ITaskRun {
id: string,
flowRunId: string | null,
cacheExpiration: string | null,
cacheKey: string | null,
created: Date,
dynamicKey: string,
empiricalPolicy: IEmpiricalPolicy | null,
estimatedRunTime: number | null,
estimatedStartTimeDelta: number | null,
totalRunTime: number | null,
expectedStartTime: Date | null,
nextScheduledStartTime: Date | null,
runCount: number | null,
name: string | null,
taskInputs: Record<string, TaskInput[]> | null,
taskKey: string,
taskVersion: string | null,
updated: Date,
startTime: Date | null,
endTime: Date | null,
stateId: string | null,
stateType: StateType | null,
stateName: string | null,
state: State | null,
tags: string[] | null,
}
export class TaskRun implements ITaskRun {
public readonly id: string
public readonly flowRunId: string | null
public readonly kind = 'taskRun'
public cacheExpiration: string | null
public cacheKey: string | null
public created: Date
public dynamicKey: string
public empiricalPolicy: IEmpiricalPolicy | null
public estimatedRunTime: number | null
public estimatedStartTimeDelta: number | null
public totalRunTime: number | null
public expectedStartTime: Date | null
public nextScheduledStartTime: Date | null
public runCount: number | null
public name: string | null
public taskInputs: Record<string, TaskInput[]> | null
public taskKey: string
public taskVersion: string | null
public updated: Date
public startTime: Date | null
public endTime: Date | null
public stateId: string | null
public stateType: StateType | null
public stateName: string | null
public state: State | null
public tags: string[] | null
public constructor(taskRun: ITaskRun) {
this.id = taskRun.id
this.flowRunId = taskRun.flowRunId
this.cacheExpiration = taskRun.cacheExpiration
this.cacheKey = taskRun.cacheKey
this.created = taskRun.created
this.dynamicKey = taskRun.dynamicKey
this.empiricalPolicy = taskRun.empiricalPolicy
this.estimatedRunTime = taskRun.estimatedRunTime
this.estimatedStartTimeDelta = taskRun.estimatedStartTimeDelta
this.totalRunTime = taskRun.totalRunTime
this.expectedStartTime = taskRun.expectedStartTime
this.nextScheduledStartTime = taskRun.nextScheduledStartTime
this.runCount = taskRun.runCount
this.name = taskRun.name
this.taskInputs = taskRun.taskInputs
this.taskKey = taskRun.taskKey
this.taskVersion = taskRun.taskVersion
this.updated = taskRun.updated
this.startTime = taskRun.startTime
this.endTime = taskRun.endTime
this.stateId = taskRun.stateId
this.stateType = taskRun.stateType
this.stateName = taskRun.stateName
this.state = taskRun.state
this.tags = taskRun.tags
}
public get duration(): number {
return (this.estimatedRunTime && this.estimatedRunTime > 0 ? this.estimatedRunTime : this.totalRunTime) ?? 0
}
}