index.d.ts 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import type { Stats, Dirent } from 'fs';
  2. import { Readable } from 'stream';
  3. export type Path = string;
  4. export interface EntryInfo {
  5. path: string;
  6. fullPath: string;
  7. stats?: Stats;
  8. dirent?: Dirent;
  9. basename: string;
  10. }
  11. export type PathOrDirent = Dirent | Path;
  12. export type Tester = (path: EntryInfo) => boolean;
  13. export type Predicate = string[] | string | Tester;
  14. declare function defaultOptions(): {
  15. root: string;
  16. fileFilter: (_path: EntryInfo) => boolean;
  17. directoryFilter: (_path: EntryInfo) => boolean;
  18. type: string;
  19. lstat: boolean;
  20. depth: number;
  21. alwaysStat: boolean;
  22. highWaterMark: number;
  23. };
  24. export type ReaddirpOptions = ReturnType<typeof defaultOptions>;
  25. export interface DirEntry {
  26. files: PathOrDirent[];
  27. depth: number;
  28. path: Path;
  29. }
  30. export declare class ReaddirpStream extends Readable {
  31. parents: any[];
  32. reading: boolean;
  33. parent?: DirEntry;
  34. _stat: Function;
  35. _maxDepth: number;
  36. _wantsDir: boolean;
  37. _wantsFile: boolean;
  38. _wantsEverything: boolean;
  39. _root: Path;
  40. _isDirent: boolean;
  41. _statsProp: 'dirent' | 'stats';
  42. _rdOptions: {
  43. encoding: 'utf8';
  44. withFileTypes: boolean;
  45. };
  46. _fileFilter: Tester;
  47. _directoryFilter: Tester;
  48. constructor(options?: Partial<ReaddirpOptions>);
  49. _read(batch: number): Promise<void>;
  50. _exploreDir(path: Path, depth: number): Promise<{
  51. files: string[] | undefined;
  52. depth: number;
  53. path: string;
  54. }>;
  55. _formatEntry(dirent: PathOrDirent, path: Path): Promise<EntryInfo | undefined>;
  56. _onError(err: Error): void;
  57. _getEntryType(entry: EntryInfo): Promise<void | "" | "file" | "directory">;
  58. _includeAsFile(entry: EntryInfo): boolean | undefined;
  59. }
  60. /**
  61. * Main function which ends up calling readdirRec and reads all files and directories in given root recursively.
  62. * @param root Root directory
  63. * @param options Options to specify root (start directory), filters and recursion depth
  64. */
  65. export declare const readdirp: (root: Path, options?: Partial<ReaddirpOptions>) => ReaddirpStream;
  66. export declare const readdirpPromise: (root: Path, options?: Partial<ReaddirpOptions>) => Promise<string[]>;
  67. export default readdirp;