PathPattern
The PathPattern
interface is implemented by the path pattern objects that
are created when using the path
function.
Methods
build
Build a path.
function build(args: { [paramName: string]: any }): string;
Parameters
Accepts a single argument - an object containing the arguments for each route parameter.
The keys of the args
object must match the names of the path pattern's route
parameters. The values must also be of the correct type for each parameter. When
a parameter accepts undefined
arguments, omitting the argument is also
allowed.
Return value
A path string matching the path pattern, with each of the parameters filled with a formatted version of the supplied argument.
match
Check if a path matches the pattern, and return arguments if the match is successful.
function match(path: string): { [paramName: string]: any } | undefined;
Parameters
Accepts a single argument - the path string to match against.
Return value
If the supplied path string matches the pattern, match
will return an object
with keys matching the names of the path pattern's route parameters. The
string arguments will be parsed into values of the appropriate type for each
parameter.
If the path does not match the pattern, match
will return undefined
.
test
Check if a path matches the pattern.
function test(path: string): boolean;
Parameters
Accepts a single argument - the path string to match against.
Return value
A boolean value indicating whether the path matched the pattern or not.
Type variables
The PathPattern
type is a generic type:
PathPattern<Params extends Array<Param<string, any>>>
Params
The type of parameters contained in the path pattern.
Typically, you would not need to manually specify this type variable, as the
parameter types are automatically inferred when calling the path
function to
create path patterns:
import { path } from "@snout/router-path";
const user = path`/user/${"id"}`; // user has a type of PathPattern<[Param<"id", string>]>