1 |
|
2 |
|
3 | import { Stats } from "fs";
|
4 |
|
5 | export interface WalkStats extends Stats {
|
6 | name: string;
|
7 | type:
|
8 | | "file"
|
9 | | "directory"
|
10 | | "symbolicLink"
|
11 | | "blockDevice"
|
12 | | "characterDevice"
|
13 | | "FIFO"
|
14 | | "socket";
|
15 | error?: NodeJS.ErrnoException | undefined;
|
16 | }
|
17 |
|
18 | export interface WalkOptionsListeners {
|
19 | names?: WalkNamesEventCallback | undefined;
|
20 | files?: WalkStatArrayEventCallback | undefined;
|
21 | file?: WalkStatEventCallback | undefined;
|
22 | directories?: WalkStatArrayEventCallback | undefined;
|
23 | directory?: WalkStatEventCallback | undefined;
|
24 | end?: WalkStatArrayEventCallback | undefined;
|
25 | errors?: WalkStatArrayEventCallback | undefined;
|
26 | nodeError?: WalkStatArrayEventCallback | undefined;
|
27 | directoryError?: WalkStatArrayEventCallback | undefined;
|
28 | }
|
29 |
|
30 | export interface WalkOptions {
|
31 | followLinks?: boolean | undefined;
|
32 | filters?: string[] | undefined;
|
33 | listeners?: WalkOptionsListeners | undefined;
|
34 | }
|
35 |
|
36 | export type WalkNext = () => void;
|
37 |
|
38 | export type WalkStatEventCallback = (
|
39 | base: string,
|
40 | names: WalkStats,
|
41 | next: WalkNext,
|
42 | ) => void;
|
43 |
|
44 | export type WalkStatArrayEventCallback = (
|
45 | base: string,
|
46 | names: WalkStats[],
|
47 | next: WalkNext,
|
48 | ) => void;
|
49 |
|
50 | export type WalkNamesEventCallback = (
|
51 | base: string,
|
52 | names: string[],
|
53 | next: WalkNext,
|
54 | ) => void;
|
55 |
|
56 | export type WalkStatArrayEvent =
|
57 | | "files"
|
58 | | "directories"
|
59 | | "errors"
|
60 | | "nodeError"
|
61 | | "directoryError";
|
62 |
|
63 | export type WalkStatEvent = "file" | "directory";
|
64 |
|
65 | export interface Walker {
|
66 | on(event: "names", cb: WalkNamesEventCallback): void;
|
67 | on(event: WalkStatArrayEvent, cb: WalkStatArrayEventCallback): void;
|
68 | on(event: WalkStatEvent, cb: WalkStatEventCallback): void;
|
69 | on(event: "end", cb: () => void): void;
|
70 | pause(): void;
|
71 | resume(): void;
|
72 | }
|
73 |
|
74 | export function walk(path: string, options?: WalkOptions): Walker;
|
75 | export function walkSync(path: string, options?: WalkOptions): Walker;
|