This commit is contained in:
2023-06-08 22:47:46 +08:00
parent 2002dd4749
commit 7b5ba18d89
11 changed files with 193 additions and 34 deletions

22
task.ts
View File

@@ -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;
};