mirror of
https://github.com/lifegpc/eh-downloader.git
synced 2026-07-08 01:31:00 +08:00
Update
This commit is contained in:
22
task.ts
22
task.ts
@@ -5,9 +5,9 @@ export enum TaskType {
|
||||
ExportZip,
|
||||
}
|
||||
|
||||
export type Task = {
|
||||
export type Task<T extends TaskType = TaskType> = {
|
||||
id: number;
|
||||
type: TaskType;
|
||||
type: T;
|
||||
gid: number;
|
||||
token: string;
|
||||
pid: number;
|
||||
@@ -30,9 +30,23 @@ type TaskId<T extends Record<PropertyKey, unknown>> = {
|
||||
} & T[P]) extends infer U ? { [Q in keyof U]: U[Q] } : never;
|
||||
};
|
||||
|
||||
export type TaskProgressType = TaskId<{
|
||||
export type TaskProgressBasicType = {
|
||||
[TaskType.Download]: TaskDownloadProgess;
|
||||
[TaskType.ExportZip]: TaskExportZipProgress;
|
||||
}>;
|
||||
};
|
||||
|
||||
export type TaskProgressType = TaskId<TaskProgressBasicType>;
|
||||
|
||||
export type TaskProgress = DiscriminatedUnion<"type", TaskProgressType>;
|
||||
|
||||
export enum TaskStatus {
|
||||
Wait,
|
||||
Running,
|
||||
Finished,
|
||||
}
|
||||
|
||||
export type TaskDetail<T extends TaskType = TaskType> = {
|
||||
base: Task<T>;
|
||||
progress?: TaskProgressBasicType[T];
|
||||
status: TaskStatus;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user