• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1import { MMRegExp } from 'minimatch';
2import { Path } from 'path-scurry';
3import { Pattern } from './pattern.js';
4import { GlobWalkerOpts } from './walker.js';
5/**
6 * A cache of which patterns have been processed for a given Path
7 */
8export declare class HasWalkedCache {
9    store: Map<string, Set<string>>;
10    constructor(store?: Map<string, Set<string>>);
11    copy(): HasWalkedCache;
12    hasWalked(target: Path, pattern: Pattern): boolean | undefined;
13    storeWalked(target: Path, pattern: Pattern): void;
14}
15/**
16 * A record of which paths have been matched in a given walk step,
17 * and whether they only are considered a match if they are a directory,
18 * and whether their absolute or relative path should be returned.
19 */
20export declare class MatchRecord {
21    store: Map<Path, number>;
22    add(target: Path, absolute: boolean, ifDir: boolean): void;
23    entries(): [Path, boolean, boolean][];
24}
25/**
26 * A collection of patterns that must be processed in a subsequent step
27 * for a given path.
28 */
29export declare class SubWalks {
30    store: Map<Path, Pattern[]>;
31    add(target: Path, pattern: Pattern): void;
32    get(target: Path): Pattern[];
33    entries(): [Path, Pattern[]][];
34    keys(): Path[];
35}
36/**
37 * The class that processes patterns for a given path.
38 *
39 * Handles child entry filtering, and determining whether a path's
40 * directory contents must be read.
41 */
42export declare class Processor {
43    hasWalkedCache: HasWalkedCache;
44    matches: MatchRecord;
45    subwalks: SubWalks;
46    patterns?: Pattern[];
47    follow: boolean;
48    dot: boolean;
49    opts: GlobWalkerOpts;
50    constructor(opts: GlobWalkerOpts, hasWalkedCache?: HasWalkedCache);
51    processPatterns(target: Path, patterns: Pattern[]): this;
52    subwalkTargets(): Path[];
53    child(): Processor;
54    filterEntries(parent: Path, entries: Path[]): Processor;
55    testGlobstar(e: Path, pattern: Pattern, rest: Pattern | null, absolute: boolean): void;
56    testRegExp(e: Path, p: MMRegExp, rest: Pattern | null, absolute: boolean): void;
57    testString(e: Path, p: string, rest: Pattern | null, absolute: boolean): void;
58}
59//# sourceMappingURL=processor.d.ts.map