| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import micromatch = require('micromatch');
- import { IOptions } from '../../managers/options';
- import { FilterFunction } from '@mrmlnc/readdir-enhanced';
- import { Pattern } from '../../types/patterns';
- export default class DeepFilter {
- private readonly options;
- private readonly micromatchOptions;
- constructor(options: IOptions, micromatchOptions: micromatch.Options);
- /**
- * Returns filter for directories.
- */
- getFilter(positive: Pattern[], negative: Pattern[]): FilterFunction;
- /**
- * Returns max depth of the provided patterns.
- */
- private getMaxPatternDepth;
- /**
- * Returns RegExp's for patterns that can affect the depth of reading.
- */
- private getNegativePatternsRe;
- /**
- * Returns «true» for directory that should be read.
- */
- private filter;
- /**
- * Returns «true» when the «deep» option is disabled or number and depth of the entry is greater that the option value.
- */
- private isSkippedByDeepOption;
- /**
- * Returns «true» when depth parameter is not an Infinity and entry depth greater that the parameter value.
- */
- private isSkippedByMaxPatternDepth;
- /**
- * Returns «true» for symlinked directory if the «followSymlinkedDirectories» option is disabled.
- */
- private isSkippedSymlinkedDirectory;
- /**
- * Returns «true» for a directory whose name starts with a period if «dot» option is disabled.
- */
- private isSkippedDotDirectory;
- /**
- * Returns «true» for a directory whose path math to any negative pattern.
- */
- private isSkippedByNegativePatterns;
- }
|