Files
Bridge-Multi/src-shared/interfaces/download.interface.ts
2023-12-09 18:21:01 -06:00

41 lines
974 B
TypeScript

/**
* Represents a user's request to interact with the download system.
*/
export interface Download {
action: 'add' | 'retry' | 'cancel'
versionID: number
data?: NewDownload // Should be defined if action === 'add'
}
/**
* Contains the data required to start downloading a single chart.
*/
export interface NewDownload {
chartName: string
artist: string
charter: string
// TODO
// eslint-disable-next-line @typescript-eslint/no-explicit-any
driveData: any
// driveData: DriveChart & { inChartPack: boolean }
}
/**
* Represents the download progress of a single chart.
*/
export interface DownloadProgress {
versionID: number
title: string
header: string
description: string
percent: number
type: ProgressType
/** If `description` contains a filepath that can be clicked */
isLink: boolean
/** If the download should not appear in the total download progress */
stale?: boolean
}
export type ProgressType = 'good' | 'error' | 'cancel' | 'done'