|
|
/// <reference types="node" />import * as nativeFs from "fs";import picomatch from "picomatch";
//#region src/api/aborter.d.ts/** * AbortController is not supported on Node 14 so we use this until we can drop * support for Node 14. */declare class Aborter { aborted: boolean; abort(): void;}//#endregion//#region src/api/queue.d.tstype OnQueueEmptyCallback = (error: Error | null, output: WalkerState) => void;/** * This is a custom stateless queue to track concurrent async fs calls. * It increments a counter whenever a call is queued and decrements it * as soon as it completes. When the counter hits 0, it calls onQueueEmpty. */declare class Queue { private onQueueEmpty?; count: number; constructor(onQueueEmpty?: OnQueueEmptyCallback | undefined); enqueue(): number; dequeue(error: Error | null, output: WalkerState): void;}//#endregion//#region src/types.d.tstype Counts = { files: number; directories: number; /** * @deprecated use `directories` instead. Will be removed in v7.0. */ dirs: number;};type Group = { directory: string; files: string[]; /** * @deprecated use `directory` instead. Will be removed in v7.0. */ dir: string;};type GroupOutput = Group[];type OnlyCountsOutput = Counts;type PathsOutput = string[];type Output = OnlyCountsOutput | PathsOutput | GroupOutput;type FSLike = { readdir: typeof nativeFs.readdir; readdirSync: typeof nativeFs.readdirSync; realpath: typeof nativeFs.realpath; realpathSync: typeof nativeFs.realpathSync; stat: typeof nativeFs.stat; statSync: typeof nativeFs.statSync;};type WalkerState = { root: string; paths: string[]; groups: Group[]; counts: Counts; options: Options; queue: Queue; controller: Aborter; fs: FSLike; symlinks: Map<string, string>; visited: string[];};type ResultCallback<TOutput extends Output> = (error: Error | null, output: TOutput) => void;type FilterPredicate = (path: string, isDirectory: boolean) => boolean;type ExcludePredicate = (dirName: string, dirPath: string) => boolean;type PathSeparator = "/" | "\\";type Options<TGlobFunction = unknown> = { includeBasePath?: boolean; includeDirs?: boolean; normalizePath?: boolean; maxDepth: number; maxFiles?: number; resolvePaths?: boolean; suppressErrors: boolean; group?: boolean; onlyCounts?: boolean; filters: FilterPredicate[]; resolveSymlinks?: boolean; useRealPaths?: boolean; excludeFiles?: boolean; excludeSymlinks?: boolean; exclude?: ExcludePredicate; relativePaths?: boolean; pathSeparator: PathSeparator; signal?: AbortSignal; globFunction?: TGlobFunction; fs?: FSLike;};type GlobMatcher = (test: string) => boolean;type GlobFunction = (glob: string | string[], ...params: unknown[]) => GlobMatcher;type GlobParams<T> = T extends ((globs: string | string[], ...params: infer TParams extends unknown[]) => GlobMatcher) ? TParams : [];//#endregion//#region src/builder/api-builder.d.tsdeclare class APIBuilder<TReturnType extends Output> { private readonly root; private readonly options; constructor(root: string, options: Options); withPromise(): Promise<TReturnType>; withCallback(cb: ResultCallback<TReturnType>): void; sync(): TReturnType;}//#endregion//#region src/builder/index.d.tsdeclare class Builder<TReturnType extends Output = PathsOutput, TGlobFunction = typeof picomatch> { private readonly globCache; private options; private globFunction?; constructor(options?: Partial<Options<TGlobFunction>>); group(): Builder<GroupOutput, TGlobFunction>; withPathSeparator(separator: "/" | "\\"): this; withBasePath(): this; withRelativePaths(): this; withDirs(): this; withMaxDepth(depth: number): this; withMaxFiles(limit: number): this; withFullPaths(): this; withErrors(): this; withSymlinks({ resolvePaths }?: { resolvePaths?: boolean | undefined; }): this; withAbortSignal(signal: AbortSignal): this; normalize(): this; filter(predicate: FilterPredicate): this; onlyDirs(): this; exclude(predicate: ExcludePredicate): this; onlyCounts(): Builder<OnlyCountsOutput, TGlobFunction>; crawl(root?: string): APIBuilder<TReturnType>; withGlobFunction<TFunc>(fn: TFunc): Builder<TReturnType, TFunc>; /** * @deprecated Pass options using the constructor instead: * ```ts * new fdir(options).crawl("/path/to/root"); * ``` * This method will be removed in v7.0 */ crawlWithOptions(root: string, options: Partial<Options<TGlobFunction>>): APIBuilder<TReturnType>; glob(...patterns: string[]): Builder<TReturnType, TGlobFunction>; globWithOptions(patterns: string[]): Builder<TReturnType, TGlobFunction>; globWithOptions(patterns: string[], ...options: GlobParams<TGlobFunction>): Builder<TReturnType, TGlobFunction>;}//#endregion//#region src/index.d.tstype Fdir = typeof Builder;//#endregionexport { Counts, ExcludePredicate, FSLike, Fdir, FilterPredicate, GlobFunction, GlobMatcher, GlobParams, Group, GroupOutput, OnlyCountsOutput, Options, Output, PathSeparator, PathsOutput, ResultCallback, WalkerState, Builder as fdir };
|