UNPKG

4.37 kBTypeScriptView Raw
1/// <reference types="node" />
2
3import { EventEmitter } from "events";
4import { Transform, TransformOptions } from "stream";
5
6export type TrackerObject = Tracker | TrackerGroup | TrackerStream;
7export type TrackerEventListener = (name: string, completed: number, tracker: TrackerObject) => void;
8export type GenericEventListener = (...args: any[]) => void;
9
10export class TrackerBase extends EventEmitter {
11 constructor(name?: string);
12 addListener(event: "change", listener: TrackerEventListener): this;
13 addListener(event: string, listener: GenericEventListener): this;
14 on(event: "change", listener: TrackerEventListener): this;
15 on(event: string, listener: GenericEventListener): this;
16 once(event: "change", listener: TrackerEventListener): this;
17 once(event: string, listener: GenericEventListener): this;
18 prependListener(event: "change", listener: TrackerEventListener): this;
19 prependListener(event: string, listener: GenericEventListener): this;
20 prependOnceListener(event: "change", listener: TrackerEventListener): this;
21 prependOnceListener(event: string, listener: GenericEventListener): this;
22 removeListener(event: "change", listener: TrackerEventListener): this;
23 removeListener(event: string, listener: GenericEventListener): this;
24}
25
26export class Tracker extends TrackerBase {
27 constructor(name?: string, todo?: number);
28 addWork(work: number): void;
29 completeWork(completed: number): void;
30 completed(): number;
31 finish(): void;
32}
33
34export class TrackerGroup extends TrackerBase {
35 constructor(name?: string);
36 addUnit(tracker: TrackerBase, weight?: number): TrackerObject;
37 completed(): number;
38 debug(): string;
39 finish(): void;
40 newGroup(name?: string, weight?: number): TrackerGroup;
41 newItem(name?: string, todo?: number, weight?: number): Tracker;
42 newStream(name?: string, todo?: number, weight?: number): TrackerStream;
43}
44
45export class TrackerStream extends Transform {
46 constructor(name?: string, size?: number, options?: TransformOptions);
47 addWork(work: number): void;
48 completed(): number;
49
50 addListener(event: "change", listener: TrackerEventListener): this;
51 addListener(event: "data", listener: (chunk: Buffer | string) => void): this;
52 addListener(event: "readable" | "end" | "close", listener: () => void): this;
53 addListener(event: "error", listener: (err: Error) => void): this;
54 addListener(event: string, listener: GenericEventListener): this;
55
56 on(event: "change", listener: TrackerEventListener): this;
57 on(event: "data", listener: (chunk: Buffer | string) => void): this;
58 on(event: "readable" | "end" | "close", listener: () => void): this;
59 on(event: "error", listener: (err: Error) => void): this;
60 on(event: string, listener: GenericEventListener): this;
61
62 once(event: "change", listener: TrackerEventListener): this;
63 once(event: "data", listener: (chunk: Buffer | string) => void): this;
64 once(event: "readable" | "end" | "close", listener: () => void): this;
65 once(event: "error", listener: (err: Error) => void): this;
66 once(event: string, listener: GenericEventListener): this;
67
68 prependListener(event: "change", listener: TrackerEventListener): this;
69 prependListener(event: "data", listener: (chunk: Buffer | string) => void): this;
70 prependListener(event: "readable" | "end" | "close", listener: () => void): this;
71 prependListener(event: "error", listener: (err: Error) => void): this;
72 prependListener(event: string, listener: GenericEventListener): this;
73
74 prependOnceListener(event: "change", listener: TrackerEventListener): this;
75 prependOnceListener(event: "data", listener: (chunk: Buffer | string) => void): this;
76 prependOnceListener(event: "readable" | "end" | "close", listener: () => void): this;
77 prependOnceListener(event: "error", listener: (err: Error) => void): this;
78 prependOnceListener(event: string, listener: GenericEventListener): this;
79
80 removeListener(event: "change", listener: TrackerEventListener): this;
81 removeListener(event: "data", listener: (chunk: Buffer | string) => void): this;
82 removeListener(event: "readable" | "end" | "close", listener: () => void): this;
83 removeListener(event: "error", listener: (err: Error) => void): this;
84 removeListener(event: string, listener: GenericEventListener): this;
85}