Finds and decodes best matching path in a set of routes
npm install multi-path-matcher










Finds and decodes best matching path in a set of routes
With params
``js
import { compile, matcher } from "multi-path-matcher";
const routes = [
{ path: "/a/b/c" },
{ path: "/a/b" },
{ path: "/d/:att1/e/:att2" },
{ path: "/d/:att1/e" },
{ path: "/" }
];
const compiled = compile(routes);
matcher(compiled "/a"); // undefined
matcher(compiled, "/a/b"); // routes[1]
matcher(compiled, "/a/b/c"); // routes[0]
matcher(compiled, "/d/value1/e"); // routes[3] { att1: "value1" }
matcher(compiled, "/d/value1/e/value2?sort=asc"); // routes[2] { att1: "value1", att2: "value2" }
matcher(compiled, "/"); // routes[4]
`
With wildcards
`js
import { compile, matcher } from "multi-path-matcher";
const routes = [
{ path: "/" },
{ path: "/*" },
{ path: "/about" },
{ path: "/login" }
];
const compiled = compile(routes);
matcher(compiled, "/"); // routes[0]
matcher(compiled, "/index.html"); // routes[1]
matcher(compiled, "/about"); // routes[2]
matcher(compiled, "/login?param=1"); // routes[3]
`
* Route
* Properties
* CompiledRoute
* Properties
* Match
* Properties
* PLAIN
* WILDCARD
* PARAM
* compile
* Parameters
* pathToRegexp
* Parameters
* matcher
* Parameters
One single route
Type: Object
* path string
Result of a path compilation
priorities for each path component
* :param PARAM
match \ or ? WILDCARD
* plain PLAIN
Type: Object
* path string regex
* RegExp for later checking and params extractionkeys
* Array<string> all keys found in the routepriority
* number order in which to check
Result of a match
Type: Object
* route Route? as given to the compiler, undefined if no matching route was foundparams
* Object extracted from the path
Prioritiy for a plain path component
Type: number
Prioritiy for a path component with a wildcard '\*'
Type: number
Prioritiy for a parameter path component
Type: number
Compile a set of routes.
All properties of the original routes are preserved
Returns Array<CompiledRoute>
Generate regex with priority.
* route Route
Returns CompiledRoute
Find best match for a given path.
Decodes params into an object.
* compiled Array<CompiledRoute> path
* string
Returns Match match
With npm do:
`shell``
npm install multi-path-matcher
BSD-2-Clause