UNPKG

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