123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300 |
- // Type definitions for minimatch 5.1
- // Project: https://github.com/isaacs/minimatch
- // Definitions by: vvakame <https://github.com/vvakame>
- // Shant Marouti <https://github.com/shantmarouti>
- // BendingBender <https://github.com/BendingBender>
- // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
- /**
- * Tests a path against the pattern using the options.
- *
- * @example
- * import minimatch = require("minimatch");
- *
- * const isJS = minimatch(file, "*.js", { matchBase: true });
- */
- declare function minimatch(target: string, pattern: string, options?: minimatch.IOptions): boolean;
- declare namespace minimatch {
- /**
- * Match against the list of files, in the style of fnmatch or glob.
- * If nothing is matched, and options.nonull is set,
- * then return a list containing the pattern itself.
- *
- * @example
- * import minimatch = require("minimatch");
- *
- * const javascripts = minimatch.match(fileList, "*.js", {matchBase: true});
- */
- function match(list: readonly string[], pattern: string, options?: IOptions): string[];
- /**
- * @return A function that tests its supplied argument, suitable for use with `Array.filter`.
- *
- * @example
- * import minimatch = require("minimatch");
- *
- * const javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true}));
- */
- function filter(
- pattern: string,
- options?: IOptions,
- ): (element: string, indexed: number, array: readonly string[]) => boolean;
- /**
- * Make a regular expression object from the pattern.
- */
- function makeRe(pattern: string, options?: IOptions): RegExp | false;
- function defaults(defaultOptions: IOptions): typeof minimatch;
- function braceExpand(pattern: string, options?: IOptions): string[];
- const sep: string;
- const GLOBSTAR: unique symbol;
- interface IOptions {
- /**
- * Dump a ton of stuff to stderr.
- *
- * @default false
- */
- debug?: boolean | undefined;
- /**
- * Do not expand `{a,b}` and `{1..3}` brace sets.
- *
- * @default false
- */
- nobrace?: boolean | undefined;
- /**
- * Disable `**` matching against multiple folder names.
- *
- * @default false
- */
- noglobstar?: boolean | undefined;
- /**
- * Allow patterns to match filenames starting with a period,
- * even if the pattern does not explicitly have a period in that spot.
- *
- * Note that by default, `'a/**' + '/b'` will **not** match `a/.d/b`, unless `dot` is set.
- *
- * @default false
- */
- dot?: boolean | undefined;
- /**
- * Disable "extglob" style patterns like `+(a|b)`.
- *
- * @default false
- */
- noext?: boolean | undefined;
- /**
- * Perform a case-insensitive match.
- *
- * @default false
- */
- nocase?: boolean | undefined;
- /**
- * When a match is not found by `minimatch.match`,
- * return a list containing the pattern itself if this option is set.
- * Otherwise, an empty list is returned if there are no matches.
- *
- * @default false
- */
- nonull?: boolean | undefined;
- /**
- * If set, then patterns without slashes will be matched
- * against the basename of the path if it contains slashes. For example,
- * `a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.
- *
- * @default false
- */
- matchBase?: boolean | undefined;
- /**
- * Suppress the behavior of treating `#` at the start of a pattern as a comment.
- *
- * @default false
- */
- nocomment?: boolean | undefined;
- /**
- * Suppress the behavior of treating a leading `!` character as negation.
- *
- * @default false
- */
- nonegate?: boolean | undefined;
- /**
- * Returns from negate expressions the same as if they were not negated.
- * (Ie, true on a hit, false on a miss.)
- *
- * @default false
- */
- flipNegate?: boolean | undefined;
- /**
- * Compare a partial path to a pattern. As long as the parts of the path that
- * are present are not contradicted by the pattern, it will be treated as a
- * match. This is useful in applications where you're walking through a
- * folder structure, and don't yet have the full path, but want to ensure that
- * you do not walk down paths that can never be a match.
- *
- * @default false
- *
- * @example
- * import minimatch = require("minimatch");
- *
- * minimatch('/a/b', '/a/*' + '/c/d', { partial: true }) // true, might be /a/b/c/d
- * minimatch('/a/b', '/**' + '/d', { partial: true }) // true, might be /a/b/.../d
- * minimatch('/x/y/z', '/a/**' + '/z', { partial: true }) // false, because x !== a
- */
- partial?: boolean;
- /**
- * Use `\\` as a path separator _only_, and _never_ as an escape
- * character. If set, all `\\` characters are replaced with `/` in
- * the pattern. Note that this makes it **impossible** to match
- * against paths containing literal glob pattern characters, but
- * allows matching with patterns constructed using `path.join()` and
- * `path.resolve()` on Windows platforms, mimicking the (buggy!)
- * behavior of earlier versions on Windows. Please use with
- * caution, and be mindful of the caveat about Windows paths
- *
- * For legacy reasons, this is also set if
- * `options.allowWindowsEscape` is set to the exact value `false`.
- *
- * @default false
- */
- windowsPathsNoEscape?: boolean;
- }
- /**
- * @deprecated Keep legacy interface to prevent unnecessary breakage.
- */
- type IMinimatchStatic = typeof Minimatch;
- /**
- * @deprecated Keep legacy interface to prevent unnecessary breakage.
- */
- type IMinimatch = Minimatch;
- /**
- * Create a minimatch object by instantiating the `minimatch.Minimatch` class.
- *
- * @example
- * import { Minimatch } from "minimatch";
- *
- * const mm = new Minimatch(pattern, options);
- */
- class Minimatch {
- constructor(pattern: string, options?: IOptions);
- static defaults(defaultOptions: IOptions): typeof Minimatch;
- /**
- * The original pattern the minimatch object represents.
- */
- pattern: string;
- /**
- * The options supplied to the constructor.
- */
- options: IOptions;
- /**
- * A 2-dimensional array of regexp or string expressions. Each row in the array corresponds
- * to a brace-expanded pattern. Each item in the row corresponds to a single path-part. For
- * example, the pattern `{a,b/c}/d` would expand to a set of patterns like:
- *
- * ```
- * [ [ a, d ]
- * , [ b, c, d ] ]
- * ```
- *
- * If a portion of the pattern doesn't have any "magic" in it (that is, it's something like `"foo"``
- * rather than `fo*o?`), then it will be left as a string rather than converted to a regular expression.
- */
- set: Array<Array<RegExp | string>>;
- /**
- * Created by the `makeRe` method. A single regular expression expressing the entire pattern. This is
- * useful in cases where you wish to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.
- */
- regexp: RegExp | false | null;
- /**
- * True if the pattern is negated.
- */
- negate: boolean;
- /**
- * True if the pattern is a comment.
- */
- comment: boolean;
- /**
- * True if the pattern is `""`.
- */
- empty: boolean;
- /**
- * True if windows path delimiters shouldn't be interpreted as escape characters.
- */
- windowsPathsNoEscape: boolean;
- /**
- * True if partial paths should be compared to a pattern.
- */
- partial: boolean;
- /**
- * Generate the `regexp` member if necessary, and return it. Will return `false` if the pattern is invalid.
- */
- makeRe(): RegExp | false;
- /**
- * @return `true` if the filename matches the pattern, or `false` otherwise.
- */
- match(fname: string, partial?: boolean): boolean;
- /**
- * Take a `/`-split filename, and match it against a single row in the `regExpSet`.
- * This method is mainly for internal use, but is exposed so that it can be used
- * by a glob-walker that needs to avoid excessive filesystem calls.
- */
- matchOne(file: readonly string[], pattern: ReadonlyArray<string | RegExp>, partial: boolean): boolean;
- /**
- * @deprecated. For internal use.
- */
- debug(): void;
- /**
- * @deprecated. For internal use.
- */
- make(): void;
- /**
- * @deprecated. For internal use.
- */
- parseNegate(): void;
- /**
- * @deprecated. For internal use.
- */
- braceExpand(): string[];
- /**
- * @deprecated. For internal use.
- */
- parse(pattern: string, isSub?: boolean): string | false | [string, boolean] | RegExp | typeof GLOBSTAR;
- }
- }
- export = minimatch;
|