98 lines
3.7 KiB
TypeScript
98 lines
3.7 KiB
TypeScript
|
/// <reference types="node" />
|
||
|
/**
|
||
|
* Single-use utility classes to provide functionality to the {@link Glob}
|
||
|
* methods.
|
||
|
*
|
||
|
* @module
|
||
|
*/
|
||
|
import { Minipass } from 'minipass';
|
||
|
import { Path } from 'path-scurry';
|
||
|
import { IgnoreLike } from './ignore.js';
|
||
|
import { Pattern } from './pattern.js';
|
||
|
import { Processor } from './processor.js';
|
||
|
export interface GlobWalkerOpts {
|
||
|
absolute?: boolean;
|
||
|
allowWindowsEscape?: boolean;
|
||
|
cwd?: string | URL;
|
||
|
dot?: boolean;
|
||
|
dotRelative?: boolean;
|
||
|
follow?: boolean;
|
||
|
ignore?: string | string[] | IgnoreLike;
|
||
|
mark?: boolean;
|
||
|
matchBase?: boolean;
|
||
|
maxDepth?: number;
|
||
|
nobrace?: boolean;
|
||
|
nocase?: boolean;
|
||
|
nodir?: boolean;
|
||
|
noext?: boolean;
|
||
|
noglobstar?: boolean;
|
||
|
platform?: NodeJS.Platform;
|
||
|
posix?: boolean;
|
||
|
realpath?: boolean;
|
||
|
root?: string;
|
||
|
stat?: boolean;
|
||
|
signal?: AbortSignal;
|
||
|
windowsPathsNoEscape?: boolean;
|
||
|
withFileTypes?: boolean;
|
||
|
includeChildMatches?: boolean;
|
||
|
}
|
||
|
export type GWOFileTypesTrue = GlobWalkerOpts & {
|
||
|
withFileTypes: true;
|
||
|
};
|
||
|
export type GWOFileTypesFalse = GlobWalkerOpts & {
|
||
|
withFileTypes: false;
|
||
|
};
|
||
|
export type GWOFileTypesUnset = GlobWalkerOpts & {
|
||
|
withFileTypes?: undefined;
|
||
|
};
|
||
|
export type Result<O extends GlobWalkerOpts> = O extends GWOFileTypesTrue ? Path : O extends GWOFileTypesFalse ? string : O extends GWOFileTypesUnset ? string : Path | string;
|
||
|
export type Matches<O extends GlobWalkerOpts> = O extends GWOFileTypesTrue ? Set<Path> : O extends GWOFileTypesFalse ? Set<string> : O extends GWOFileTypesUnset ? Set<string> : Set<Path | string>;
|
||
|
export type MatchStream<O extends GlobWalkerOpts> = Minipass<Result<O>, Result<O>>;
|
||
|
/**
|
||
|
* basic walking utilities that all the glob walker types use
|
||
|
*/
|
||
|
export declare abstract class GlobUtil<O extends GlobWalkerOpts = GlobWalkerOpts> {
|
||
|
#private;
|
||
|
path: Path;
|
||
|
patterns: Pattern[];
|
||
|
opts: O;
|
||
|
seen: Set<Path>;
|
||
|
paused: boolean;
|
||
|
aborted: boolean;
|
||
|
signal?: AbortSignal;
|
||
|
maxDepth: number;
|
||
|
includeChildMatches: boolean;
|
||
|
constructor(patterns: Pattern[], path: Path, opts: O);
|
||
|
pause(): void;
|
||
|
resume(): void;
|
||
|
onResume(fn: () => any): void;
|
||
|
matchCheck(e: Path, ifDir: boolean): Promise<Path | undefined>;
|
||
|
matchCheckTest(e: Path | undefined, ifDir: boolean): Path | undefined;
|
||
|
matchCheckSync(e: Path, ifDir: boolean): Path | undefined;
|
||
|
abstract matchEmit(p: Result<O>): void;
|
||
|
abstract matchEmit(p: string | Path): void;
|
||
|
matchFinish(e: Path, absolute: boolean): void;
|
||
|
match(e: Path, absolute: boolean, ifDir: boolean): Promise<void>;
|
||
|
matchSync(e: Path, absolute: boolean, ifDir: boolean): void;
|
||
|
walkCB(target: Path, patterns: Pattern[], cb: () => any): void;
|
||
|
walkCB2(target: Path, patterns: Pattern[], processor: Processor, cb: () => any): any;
|
||
|
walkCB3(target: Path, entries: Path[], processor: Processor, cb: () => any): void;
|
||
|
walkCBSync(target: Path, patterns: Pattern[], cb: () => any): void;
|
||
|
walkCB2Sync(target: Path, patterns: Pattern[], processor: Processor, cb: () => any): any;
|
||
|
walkCB3Sync(target: Path, entries: Path[], processor: Processor, cb: () => any): void;
|
||
|
}
|
||
|
export declare class GlobWalker<O extends GlobWalkerOpts = GlobWalkerOpts> extends GlobUtil<O> {
|
||
|
matches: Set<Result<O>>;
|
||
|
constructor(patterns: Pattern[], path: Path, opts: O);
|
||
|
matchEmit(e: Result<O>): void;
|
||
|
walk(): Promise<Set<Result<O>>>;
|
||
|
walkSync(): Set<Result<O>>;
|
||
|
}
|
||
|
export declare class GlobStream<O extends GlobWalkerOpts = GlobWalkerOpts> extends GlobUtil<O> {
|
||
|
results: Minipass<Result<O>, Result<O>>;
|
||
|
constructor(patterns: Pattern[], path: Path, opts: O);
|
||
|
matchEmit(e: Result<O>): void;
|
||
|
stream(): MatchStream<O>;
|
||
|
streamSync(): MatchStream<O>;
|
||
|
}
|
||
|
//# sourceMappingURL=walker.d.ts.map
|