1 |
|
2 | import { EventEmitter } from 'events';
|
3 | export declare const ICON_SUCCESS: string;
|
4 | export declare const ICON_FAILURE: string;
|
5 | export declare class Spinner {
|
6 | frames: string[];
|
7 | i: number;
|
8 | constructor(frames?: string[]);
|
9 | frame(): string;
|
10 | }
|
11 | export interface TaskOptions {
|
12 | readonly msg?: string;
|
13 | readonly tickInterval?: number;
|
14 | }
|
15 | export interface TaskResult {
|
16 | |
17 |
|
18 |
|
19 | elapsedTime: [number, number];
|
20 | |
21 |
|
22 |
|
23 | success: boolean;
|
24 | }
|
25 | export interface Task extends EventEmitter {
|
26 | on(name: 'success', handler: () => void): this;
|
27 | on(name: 'failure', handler: () => void): this;
|
28 | on(name: 'clear', handler: () => void): this;
|
29 | on(name: 'tick', handler: () => void): this;
|
30 | on(name: 'end', handler: (result: TaskResult) => void): this;
|
31 | emit(name: 'success'): boolean;
|
32 | emit(name: 'failure'): boolean;
|
33 | emit(name: 'clear'): boolean;
|
34 | emit(name: 'tick'): boolean;
|
35 | emit(name: 'end', result: TaskResult): boolean;
|
36 | }
|
37 | export declare class Task extends EventEmitter {
|
38 | tickInterval?: number;
|
39 | intervalId?: NodeJS.Timer;
|
40 | running: boolean;
|
41 | progressRatio?: number;
|
42 | protected _msg: string;
|
43 | protected _startTime?: [number, number];
|
44 | protected _success: boolean;
|
45 | constructor({ msg, tickInterval }?: TaskOptions);
|
46 | get msg(): string;
|
47 | set msg(msg: string);
|
48 | start(): this;
|
49 | tick(): this;
|
50 | progress(prog: number, total: number): this;
|
51 | clear(): this;
|
52 | end(): this;
|
53 | succeed(): this;
|
54 | fail(): this;
|
55 | }
|
56 | export interface TaskChain extends EventEmitter {
|
57 | on(name: 'end', handler: (lastTask?: Task) => void): this;
|
58 | on(name: 'failure', handler: (failedTask?: Task) => void): this;
|
59 | on(name: 'next', handler: (task: Task) => void): this;
|
60 | emit(name: 'end', lastTask?: Task): boolean;
|
61 | emit(name: 'failure', failedTask?: Task): boolean;
|
62 | emit(name: 'next', task: Task): boolean;
|
63 | }
|
64 | export interface TaskChainOptions {
|
65 | readonly taskOptions?: Partial<TaskOptions>;
|
66 | }
|
67 | export declare class TaskChain extends EventEmitter {
|
68 | protected current?: Task;
|
69 | protected readonly tasks: Task[];
|
70 | protected readonly taskOptions: Partial<TaskOptions>;
|
71 | constructor({ taskOptions }?: TaskChainOptions);
|
72 | next(msg: string): Task;
|
73 | createTask(options: TaskOptions): Task;
|
74 | nextTask(task: Task): Task;
|
75 | end(): this;
|
76 | fail(): this;
|
77 | cleanup(): this;
|
78 | }
|