@uppy/utils
Version:
Shared utility functions for Uppy Core and plugins maintained by the Uppy team.
39 lines (36 loc) • 1.34 kB
text/typescript
export interface DeterminateFileProcessing {
mode: 'determinate'
message: string
value: number
}
export interface IndeterminateFileProcessing {
mode: 'indeterminate'
message?: string
value?: 0
}
export type FileProcessingInfo =
| IndeterminateFileProcessing
| DeterminateFileProcessing
// TODO explore whether all of these properties need to be optional
interface FileProgressBase {
uploadComplete?: boolean
percentage?: number // undefined if we don't know the percentage (e.g. for files with `bytesTotal` null)
// note that Companion will send `bytesTotal` 0 if unknown size (not `null`).
// this is not perfect because some files can actually have a size of 0,
// and then we might think those files have an unknown size
// todo we should change this in companion
bytesTotal: number | null
preprocess?: FileProcessingInfo
postprocess?: FileProcessingInfo
}
// FileProgress is either started or not started. We want to make sure TS doesn't
// let us mix the two cases, and for that effect, we have one type for each case:
export type FileProgressStarted = FileProgressBase & {
uploadStarted: number
bytesUploaded: number
}
export type FileProgressNotStarted = FileProgressBase & {
uploadStarted: null
bytesUploaded: false
}
export type FileProgress = FileProgressStarted | FileProgressNotStarted