source: imaps-frontend/node_modules/readdirp/esm/index.d.ts@ 79a0317

main
Last change on this file since 79a0317 was 79a0317, checked in by stefan toskovski <stefantoska84@…>, 3 days ago

F4 Finalna Verzija

  • Property mode set to 100644
File size: 3.6 KB
Line 
1/**
2 * Recursive version of readdir. Exposes a streaming API and promise API.
3 * Streaming API allows to use a small amount of RAM.
4 *
5 * @module
6 * @example
7```js
8import readdirp from 'readdirp';
9for await (const entry of readdirp('.')) {
10 const {path} = entry;
11 console.log(`${JSON.stringify({path})}`);
12}
13```
14 */
15/*! readdirp - MIT License (c) 2012-2019 Thorsten Lorenz, Paul Miller (https://paulmillr.com) */
16import type { Stats, Dirent } from 'node:fs';
17import { Readable } from 'node:stream';
18/** Path in file system. */
19export type Path = string;
20/** Emitted entry. Contains relative & absolute path, basename, and either stats or dirent. */
21export interface EntryInfo {
22 path: string;
23 fullPath: string;
24 stats?: Stats;
25 dirent?: Dirent;
26 basename: string;
27}
28/** Path or dir entries (files) */
29export type PathOrDirent = Dirent | Path;
30/** Filterer for files */
31export type Tester = (entryInfo: EntryInfo) => boolean;
32export type Predicate = string[] | string | Tester;
33export declare const EntryTypes: {
34 readonly FILE_TYPE: "files";
35 readonly DIR_TYPE: "directories";
36 readonly FILE_DIR_TYPE: "files_directories";
37 readonly EVERYTHING_TYPE: "all";
38};
39export type EntryType = (typeof EntryTypes)[keyof typeof EntryTypes];
40/**
41 * Options for readdirp.
42 * * type: files, directories, or both
43 * * lstat: whether to use symlink-friendly stat
44 * * depth: max depth
45 * * alwaysStat: whether to use stat (more resources) or dirent
46 * * highWaterMark: streaming param, specifies max amount of resources per entry
47 */
48export type ReaddirpOptions = {
49 root: string;
50 fileFilter?: Predicate;
51 directoryFilter?: Predicate;
52 type?: EntryType;
53 lstat?: boolean;
54 depth?: number;
55 alwaysStat?: boolean;
56 highWaterMark?: number;
57};
58/** Directory entry. Contains path, depth count, and files. */
59export interface DirEntry {
60 files: PathOrDirent[];
61 depth: number;
62 path: Path;
63}
64/** Readable readdir stream, emitting new files as they're being listed. */
65export declare class ReaddirpStream extends Readable {
66 parents: any[];
67 reading: boolean;
68 parent?: DirEntry;
69 _stat: Function;
70 _maxDepth: number;
71 _wantsDir: boolean;
72 _wantsFile: boolean;
73 _wantsEverything: boolean;
74 _root: Path;
75 _isDirent: boolean;
76 _statsProp: 'dirent' | 'stats';
77 _rdOptions: {
78 encoding: 'utf8';
79 withFileTypes: boolean;
80 };
81 _fileFilter: Tester;
82 _directoryFilter: Tester;
83 constructor(options?: Partial<ReaddirpOptions>);
84 _read(batch: number): Promise<void>;
85 _exploreDir(path: Path, depth: number): Promise<{
86 files: string[] | undefined;
87 depth: number;
88 path: string;
89 }>;
90 _formatEntry(dirent: PathOrDirent, path: Path): Promise<EntryInfo | undefined>;
91 _onError(err: Error): void;
92 _getEntryType(entry: EntryInfo): Promise<void | '' | 'file' | 'directory'>;
93 _includeAsFile(entry: EntryInfo): boolean | undefined;
94}
95/**
96 * Streaming version: Reads all files and directories in given root recursively.
97 * Consumes ~constant small amount of RAM.
98 * @param root Root directory
99 * @param options Options to specify root (start directory), filters and recursion depth
100 */
101export declare function readdirp(root: Path, options?: Partial<ReaddirpOptions>): ReaddirpStream;
102/**
103 * Promise version: Reads all files and directories in given root recursively.
104 * Compared to streaming version, will consume a lot of RAM e.g. when 1 million files are listed.
105 * @returns array of paths and their entry infos
106 */
107export declare function readdirpPromise(root: Path, options?: Partial<ReaddirpOptions>): Promise<EntryInfo[]>;
108export default readdirp;
Note: See TracBrowser for help on using the repository browser.