UNPKG

@plugjs/plug

Version:
217 lines (216 loc) 6.03 kB
export interface MatchResult { /** The glob that matched this `MatchResult` */ glob: string; /** The regular expression that matched this `MatchResult` */ regex: RegExp; /** The input string of this `MatchResult` */ input: string; /** The input string of this `MatchResult` */ output: string; /** The match result of this instance, if any */ match?: boolean | RegExpExecArray | null; /** Whether the string matched or not */ isMatch: boolean; } export interface MatchOptions { /** * 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`. * * @defaultValue `false` */ basename?: boolean; /** * Follow bash matching rules more strictly - disallows backslashes as escape * characters, and treats single stars as globstars (`**`). * * @defaultValue `false` */ bash?: boolean; /** * Return regex matches in `onIgnore(..)`, `onMatch(..)` and `onResult(..)`. * * @defaultValue `false` */ capture?: boolean; /** * Allows glob to match any part of the given string(s). * * @defaultValue `false` */ contains?: boolean; /** * Debug regular expressions when an error is thrown. * * @defaultValue `false` */ debug?: boolean; /** * Enable dotfile matching. * * By default, dotfiles are ignored unless a `.` is explicitly defined in * the pattern, or this option is `true`. * * @defaultValue `false` */ dot?: boolean; /** * Custom function for expanding ranges in brace patterns, such as `{a..z}`. * * The function receives the range values as two arguments, and it must * return a string to be used in the generated regex. * * It's recommended that returned strings be wrapped in parentheses. * * @defaultValue `undefined` */ expandRange?: (a: string, b: string) => string; /** * To speed up processing, full parsing is skipped for a handful common glob * patterns. * * Disable this behavior by setting this option to `false`. * * @defaultValue `true` */ fastpaths?: boolean; /** * Regex flags to use in the generated regex. * * If defined, the nocase option will be overridden. * * @defaultValue `undefined` */ flags?: string; /** * One or more glob patterns for excluding strings that should not be matched * from the result. * * @defaultValue `undefined` */ ignore?: string | string[]; /** * Retain quotes in the generated regular expressions, since quotes may also * be used as an alternative to backslashes. * * @defaultValue `false` */ keepQuotes?: boolean; /** * When `true`, brackets in the glob pattern will be escaped so that only * literal brackets will be matched. * * @defaultValue `false` */ literalBrackets?: boolean; /** * Disable brace matching, so that `{a,b}` and `{1..3}` would be treated as * literal characters. * * @defaultValue `false` */ nobrace?: boolean; /** * Disable matching with regex brackets. * * @defaultValue `false` */ nobracket?: boolean; /** * Make matching case-insensitive (equivalent to the regex `i` flag). * * Note that this option is overridden by the flags option. * * @defaultValue `false` */ nocase?: boolean; /** * Disable support for matching with extglobs (like `+(a|b)`). * * @defaultValue `false` */ noextglob?: boolean; /** * Disable support for matching nested directories with globstars (`**`). * * @defaultValue `false` */ noglobstar?: boolean; /** * Disable support for negating with leading `!`. * * @defaultValue `false` */ nonegate?: boolean; /** * Disable support for regex quantifiers (like `a{1,2}`) and treat them as * brace patterns to be expanded. * * @defaultValue `false` */ noquantifiers?: boolean; /** * Function to be called on ignored items. * * @defaultValue `undefined` */ onIgnore?: (result: MatchResult) => void; /** * Function to be called on matched items. * * @defaultValue `undefined` */ onMatch?: (result: MatchResult) => void; /** * Function to be called on all items, regardless of whether or not they * are matched or ignored. * * @defaultValue `undefined` */ onResult?: (result: MatchResult) => void; /** * Support POSIX character classes ("posix brackets"). * * @defaultValue `false` */ posix?: boolean; /** * Use regular expression rules for `+` (instead of matching literal `+`), * and for stars that follow closing parentheses or brackets (as in `)*` * and `]*`). * * @defaultValue `false` */ regex?: boolean; /** * Throw an error if brackets, braces, or parens are imbalanced. * * @defaultValue `false` */ strictBrackets?: boolean; /** * When true, picomatch won't match trailing slashes with single stars. * * @defaultValue `false` */ strictSlashes?: boolean; /** * Remove backslashes preceding escaped characters in the glob pattern. * * By default, backslashes are retained. * * @defaultValue `false` */ unescape?: boolean; } /** A _function_ matching a string. */ export type Matcher = (string: string) => boolean; /** * Create a {@link Matcher} according to the globs and options specified. * * Remember that no globs here means an always-failing matcher. */ export declare function match(globs: readonly string[], options?: MatchOptions): Matcher;