@surface/path-matcher
Version:
Provides path matching capabilities.
49 lines (48 loc) • 1.6 kB
TypeScript
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;
}