UNPKG

2 kBTypeScriptView Raw
1/// <reference types="node" />
2
3import { Stats } from "fs";
4
5export 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
18export 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
30export interface WalkOptions {
31 followLinks?: boolean | undefined;
32 filters?: string[] | undefined;
33 listeners?: WalkOptionsListeners | undefined;
34}
35
36export type WalkNext = () => void;
37
38export type WalkStatEventCallback = (
39 base: string,
40 names: WalkStats,
41 next: WalkNext,
42) => void;
43
44export type WalkStatArrayEventCallback = (
45 base: string,
46 names: WalkStats[],
47 next: WalkNext,
48) => void;
49
50export type WalkNamesEventCallback = (
51 base: string,
52 names: string[],
53 next: WalkNext,
54) => void;
55
56export type WalkStatArrayEvent =
57 | "files"
58 | "directories"
59 | "errors"
60 | "nodeError"
61 | "directoryError";
62
63export type WalkStatEvent = "file" | "directory";
64
65export 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
74export function walk(path: string, options?: WalkOptions): Walker;
75export function walkSync(path: string, options?: WalkOptions): Walker;