02fc500ee4cfcdd1e5aac7e608ce21e48a9d372976d101a836ef63adb7199c754f2cbad5c97e2c8ad7c2b899bced5fa4f78176e0a32a6fd67ad8e3e0dad77b 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /// <reference types="node" />
  2. import fs = require('fs');
  3. declare namespace re {
  4. interface Entry extends fs.Stats {
  5. path: string;
  6. depth: number;
  7. }
  8. type FilterFunction = (stat: Entry) => boolean;
  9. type Callback<T> = (err: NodeJS.ErrnoException, result: T) => void;
  10. type CallbackString = Callback<string[]>;
  11. type CallbackEntry = Callback<Entry[]>;
  12. interface FileSystem {
  13. readdir?: (path: string, callback: Callback<string[]>) => void;
  14. lstat?: (path: string, callback: Callback<fs.Stats>) => void;
  15. stat?: (path: string, callback: Callback<fs.Stats>) => void;
  16. }
  17. interface Options {
  18. filter?: string | RegExp | FilterFunction;
  19. deep?: boolean | number | RegExp | FilterFunction;
  20. sep?: string;
  21. basePath?: string;
  22. fs?: FileSystem;
  23. }
  24. function stat(root: string, options?: Options): Promise<Entry[]>;
  25. function stat(root: string, callback: CallbackEntry): void;
  26. function stat(root: string, options: Options, callback: CallbackEntry): void;
  27. function async(root: string, options?: Options): Promise<string[]>;
  28. function async(root: string, callback: CallbackString): void;
  29. function async(root: string, options: Options, callback: CallbackString): void;
  30. function readdirAsyncStat(root: string, options?: Options): Promise<Entry[]>;
  31. function readdirAsyncStat(root: string, callback: CallbackEntry): void;
  32. function readdirAsyncStat(root: string, options: Options, callback: CallbackEntry): void;
  33. namespace async {
  34. function stat(root: string, options?: Options): Promise<Entry[]>;
  35. function stat(root: string, callback: CallbackEntry): void;
  36. function stat(root: string, options: Options, callback: CallbackEntry): void;
  37. }
  38. function stream(root: string, options?: Options): NodeJS.ReadableStream;
  39. function readdirStreamStat(root: string, options?: Options): NodeJS.ReadableStream;
  40. namespace stream {
  41. function stat(root: string, options?: Options): NodeJS.ReadableStream;
  42. }
  43. function sync(root: string, options?: Options): string[];
  44. function readdirSyncStat(root: string, options?: Options): Entry[];
  45. namespace sync {
  46. function stat(root: string, options?: Options): Entry[];
  47. }
  48. }
  49. declare function re(root: string, options?: re.Options): Promise<string[]>;
  50. declare function re(root: string, callback: re.CallbackString): void;
  51. declare function re(root: string, options: re.Options, callback: re.CallbackString): void;
  52. export = re;