UNPKG

@surface/path-matcher

Version:

Provides path matching capabilities.

49 lines (48 loc) 1.6 kB
import { type Options } from "./parser.js"; export type ResolvedPattern = { path: string; fullPattern: string; pattern: string; }; export default class PathMatcher { private readonly include; private readonly exclude; /** Path part extract from the provided patterns. */ readonly paths: Set<string>; /** Negated path part extract from the provided patterns. */ readonly negatedPaths: Set<string>; constructor(patterns: string | string[], options?: Options & { unix?: boolean; }); private static internalResolve; /** * Creates a regex object from given pattern * @param pattern Pattern to be parsed. * @param options Options object. */ static makeRegex(pattern: string, options?: Options): RegExp; /** * Splits base path from the pattern. * @param pattern Pattern to be splitted. */ static split(pattern: string, options?: Options): { path: string; pattern: string; }; /** * Escapes the base path and resolve relative patterns. * @param base Base pattern. * @param pattern Pattern to resolve relative to base. */ static resolve(base: string, pattern: string, options?: Omit<Options, "base"> & { unix?: boolean; }): ResolvedPattern; static resolve(base: string, pattern: string[], options?: Omit<Options, "base"> & { unix?: boolean; }): ResolvedPattern[]; /** * Matches giving path. * @param path Path to match. */ isMatch(path: string): boolean; }