@dsh-workbench/shared 0.3.7 → 0.3.8
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/api/long-task.d.ts
CHANGED
|
@@ -58,6 +58,14 @@ export declare function longTaskRunsOf<T>(state: {
|
|
|
58
58
|
* @returns ongoing / done / error / idle;needs-login 也算进行中;`stopped` 落进 idle —— 灰点:不是成功、不是出错,是用户自己按停的。
|
|
59
59
|
*/
|
|
60
60
|
export declare function longTaskDot(status: LongTaskStatus): 'ongoing' | 'done' | 'error' | 'idle';
|
|
61
|
+
/**
|
|
62
|
+
* 这一趟还在不在跑(`running` 与 `needs-login` 都算)。
|
|
63
|
+
* 卡片要判"这一行要不要摆停止钮""这套环境里有没有活着的跑"时用这个 —— **不是** `longTaskDot`:
|
|
64
|
+
* 那一件是状态点的**长相**(四档),归 `LongTaskRow` 自己用,不该被调用点拿去当判据。
|
|
65
|
+
* @param status 长任务的五种态。
|
|
66
|
+
* @returns 在跑 `true`;成功 / 失败 / 用户按停都是 `false`。
|
|
67
|
+
*/
|
|
68
|
+
export declare function longTaskIsLive(status: LongTaskStatus): boolean;
|
|
61
69
|
/**
|
|
62
70
|
* 停止钮的三档:没上膛 / 上了膛 / 请求在飞。
|
|
63
71
|
*/
|
package/dist/api/long-task.js
CHANGED
|
@@ -55,6 +55,16 @@ export function longTaskDot(status) {
|
|
|
55
55
|
return 'ongoing';
|
|
56
56
|
return 'idle';
|
|
57
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* 这一趟还在不在跑(`running` 与 `needs-login` 都算)。
|
|
60
|
+
* 卡片要判"这一行要不要摆停止钮""这套环境里有没有活着的跑"时用这个 —— **不是** `longTaskDot`:
|
|
61
|
+
* 那一件是状态点的**长相**(四档),归 `LongTaskRow` 自己用,不该被调用点拿去当判据。
|
|
62
|
+
* @param status 长任务的五种态。
|
|
63
|
+
* @returns 在跑 `true`;成功 / 失败 / 用户按停都是 `false`。
|
|
64
|
+
*/
|
|
65
|
+
export function longTaskIsLive(status) {
|
|
66
|
+
return status === 'running' || status === 'needs-login';
|
|
67
|
+
}
|
|
58
68
|
/**
|
|
59
69
|
* 算停止钮现在在哪一档。
|
|
60
70
|
* @param state armed = 已经按过第一下、在等第二下;busy = 停止请求已经在飞。
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
2
|
import {
|
|
3
3
|
longTaskDot,
|
|
4
|
+
longTaskIsLive,
|
|
4
5
|
longTaskPollMs,
|
|
5
6
|
longTaskRunsOf,
|
|
6
7
|
longTaskStopPress,
|
|
@@ -38,6 +39,20 @@ describe('longTaskDot', () => {
|
|
|
38
39
|
});
|
|
39
40
|
});
|
|
40
41
|
|
|
42
|
+
describe('longTaskIsLive(调用点判「还在跑」用的那个谓词)', () => {
|
|
43
|
+
it('★ 只认 running 与 needs-login —— 与 longTaskDot 的 ongoing 同一口径', () => {
|
|
44
|
+
for (const status of ['running', 'needs-login', 'ok', 'failed', 'stopped'] as const) {
|
|
45
|
+
expect(longTaskIsLive(status)).toBe(longTaskDot(status) === 'ongoing');
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('★ 结束的三态(成功 / 失败 / 用户按停)都不是"在跑"', () => {
|
|
50
|
+
expect(longTaskIsLive('ok')).toBe(false);
|
|
51
|
+
expect(longTaskIsLive('failed')).toBe(false);
|
|
52
|
+
expect(longTaskIsLive('stopped')).toBe(false);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
|
|
41
56
|
describe('longTaskStopStage / longTaskStopPress(两按:第一次上膛,第二次才真发)', () => {
|
|
42
57
|
it('★ 三档:没上膛 / 上了膛 / 请求在飞;在飞压过一切', () => {
|
|
43
58
|
expect(longTaskStopStage({ armed: false, busy: false })).toBe('idle');
|
package/src/api/long-task.ts
CHANGED
|
@@ -82,6 +82,17 @@ export function longTaskDot(status: LongTaskStatus): 'ongoing' | 'done' | 'error
|
|
|
82
82
|
return 'idle';
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
+
/**
|
|
86
|
+
* 这一趟还在不在跑(`running` 与 `needs-login` 都算)。
|
|
87
|
+
* 卡片要判"这一行要不要摆停止钮""这套环境里有没有活着的跑"时用这个 —— **不是** `longTaskDot`:
|
|
88
|
+
* 那一件是状态点的**长相**(四档),归 `LongTaskRow` 自己用,不该被调用点拿去当判据。
|
|
89
|
+
* @param status 长任务的五种态。
|
|
90
|
+
* @returns 在跑 `true`;成功 / 失败 / 用户按停都是 `false`。
|
|
91
|
+
*/
|
|
92
|
+
export function longTaskIsLive(status: LongTaskStatus): boolean {
|
|
93
|
+
return status === 'running' || status === 'needs-login';
|
|
94
|
+
}
|
|
95
|
+
|
|
85
96
|
/**
|
|
86
97
|
* 停止钮的三档:没上膛 / 上了膛 / 请求在飞。
|
|
87
98
|
*/
|