flemo 1.1.2 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/TaskManger.d.ts +10 -4
- package/dist/index.mjs +498 -456
- package/dist/screen/store.d.ts +4 -2
- package/package.json +1 -1
|
@@ -6,7 +6,7 @@ interface TaskResult<T> {
|
|
|
6
6
|
timestamp?: number;
|
|
7
7
|
instanceId?: string;
|
|
8
8
|
}
|
|
9
|
-
type TaskStatus = "PENDING" | "MANUAL_PENDING" | "PROCESSING" | "COMPLETED" | "FAILED" | "ROLLEDBACK";
|
|
9
|
+
type TaskStatus = "PENDING" | "MANUAL_PENDING" | "SIGNAL_PENDING" | "PROCESSING" | "COMPLETED" | "FAILED" | "ROLLEDBACK";
|
|
10
10
|
interface Control {
|
|
11
11
|
manual?: boolean;
|
|
12
12
|
delay?: number;
|
|
@@ -15,7 +15,7 @@ interface Control {
|
|
|
15
15
|
}
|
|
16
16
|
interface Task<T> {
|
|
17
17
|
id: string;
|
|
18
|
-
execute: () => Promise<T>;
|
|
18
|
+
execute: (abortController: AbortController) => Promise<T>;
|
|
19
19
|
validate?: () => Promise<boolean>;
|
|
20
20
|
rollback?: () => Promise<void>;
|
|
21
21
|
control?: Control;
|
|
@@ -24,6 +24,7 @@ interface Task<T> {
|
|
|
24
24
|
status: TaskStatus;
|
|
25
25
|
dependencies: string[];
|
|
26
26
|
instanceId: string;
|
|
27
|
+
abortController?: AbortController;
|
|
27
28
|
manualResolver?: {
|
|
28
29
|
resolve: (value: TaskResult<T>) => void;
|
|
29
30
|
reject: (error: Error) => void;
|
|
@@ -37,12 +38,18 @@ declare class TaskManager {
|
|
|
37
38
|
private currentTaskId;
|
|
38
39
|
private taskQueue;
|
|
39
40
|
private signalListeners;
|
|
41
|
+
private pendingTaskQueue;
|
|
42
|
+
private isProcessingPending;
|
|
40
43
|
private acquireLock;
|
|
41
44
|
private releaseLock;
|
|
42
45
|
generateTaskId(): string;
|
|
43
46
|
emitSignal(signalName: string): void;
|
|
44
|
-
|
|
47
|
+
private processPendingTasks;
|
|
48
|
+
private waitForPendingTasks;
|
|
49
|
+
private onTaskStatusChange;
|
|
50
|
+
addTask<T>(execute: Task<T>["execute"], options?: {
|
|
45
51
|
id?: string;
|
|
52
|
+
delay?: number;
|
|
46
53
|
validate?: () => Promise<boolean>;
|
|
47
54
|
rollback?: () => Promise<void>;
|
|
48
55
|
dependencies?: string[];
|
|
@@ -50,7 +57,6 @@ declare class TaskManager {
|
|
|
50
57
|
}): Promise<TaskResult<T>>;
|
|
51
58
|
resolveTask(taskId: string): Promise<boolean>;
|
|
52
59
|
resolveAllPending(): Promise<void>;
|
|
53
|
-
getManualPendingTasks(): Task<unknown>[];
|
|
54
60
|
}
|
|
55
61
|
declare const instance: TaskManager;
|
|
56
62
|
export default instance;
|