ArrayMatcher

View Source

Summary

Matcher implementation that checks patterns in insertion order and sorts matches by specificity.

Signature

class ArrayMatcher<data> {
  constructor(options: { ignoreCase?: boolean }): ArrayMatcher<data>;

  // Properties
  ignoreCase: boolean;

  // Methods
  add(pattern: string | RoutePattern<string>, data: data): void;
  match(
    url: string | URL,
    compareFn: (a: RoutePatternMatch, b: RoutePatternMatch) => number,
  ): Match<string, data> | null;
  matchAll(
    url: string | URL,
    compareFn: (a: RoutePatternMatch, b: RoutePatternMatch) => number,
  ): Match<string, data>[];
}

Constructor Params

options

Constructor options

Properties

ignoreCase

Whether pathname matching is case-insensitive.

Methods

add(pattern: string | RoutePattern, data: data): void

Adds a pattern and associated data to the matcher.

pattern

Pattern to register.

data

Data returned when the pattern matches.

match(url: string | URL, compareFn: (a: RoutePatternMatch, b: RoutePatternMatch) => number): Match<string, data> | null

Returns the best matching pattern for a URL.

url

URL to match.

compareFn

Specificity comparer used to rank matches.

matchAll(url: string | URL, compareFn: (a: RoutePatternMatch, b: RoutePatternMatch) => number): Match<string, data>[]

Returns every pattern that matches a URL.

url

URL to match.

compareFn

Specificity comparer used to sort matches.