Spaces:
No application file
No application file
| /** | |
| * Encode a string into another string. | |
| */ | |
| export type Encode = (value: string) => string; | |
| /** | |
| * Decode a string into another string. | |
| */ | |
| export type Decode = (value: string) => string; | |
| export interface ParseOptions { | |
| /** | |
| * A function for encoding input strings. | |
| */ | |
| encodePath?: Encode; | |
| } | |
| export interface PathToRegexpOptions { | |
| /** | |
| * Matches the path completely without trailing characters. (default: `true`) | |
| */ | |
| end?: boolean; | |
| /** | |
| * Allows optional trailing delimiter to match. (default: `true`) | |
| */ | |
| trailing?: boolean; | |
| /** | |
| * Match will be case sensitive. (default: `false`) | |
| */ | |
| sensitive?: boolean; | |
| /** | |
| * The default delimiter for segments. (default: `'/'`) | |
| */ | |
| delimiter?: string; | |
| } | |
| export interface MatchOptions extends PathToRegexpOptions { | |
| /** | |
| * Function for decoding strings for params, or `false` to disable entirely. (default: `decodeURIComponent`) | |
| */ | |
| decode?: Decode | false; | |
| } | |
| export interface CompileOptions { | |
| /** | |
| * Function for encoding input strings for output into the path, or `false` to disable entirely. (default: `encodeURIComponent`) | |
| */ | |
| encode?: Encode | false; | |
| /** | |
| * The default delimiter for segments. (default: `'/'`) | |
| */ | |
| delimiter?: string; | |
| } | |
| /** | |
| * Plain text. | |
| */ | |
| export interface Text { | |
| type: "text"; | |
| value: string; | |
| } | |
| /** | |
| * A parameter designed to match arbitrary text within a segment. | |
| */ | |
| export interface Parameter { | |
| type: "param"; | |
| name: string; | |
| } | |
| /** | |
| * A wildcard parameter designed to match multiple segments. | |
| */ | |
| export interface Wildcard { | |
| type: "wildcard"; | |
| name: string; | |
| } | |
| /** | |
| * A set of possible tokens to expand when matching. | |
| */ | |
| export interface Group { | |
| type: "group"; | |
| tokens: Token[]; | |
| } | |
| /** | |
| * A token that corresponds with a regexp capture. | |
| */ | |
| export type Key = Parameter | Wildcard; | |
| /** | |
| * A sequence of `path-to-regexp` keys that match capturing groups. | |
| */ | |
| export type Keys = Array<Key>; | |
| /** | |
| * A sequence of path match characters. | |
| */ | |
| export type Token = Text | Parameter | Wildcard | Group; | |
| /** | |
| * Tokenized path instance. | |
| */ | |
| export declare class TokenData { | |
| readonly tokens: Token[]; | |
| constructor(tokens: Token[]); | |
| } | |
| /** | |
| * Parse a string for the raw tokens. | |
| */ | |
| export declare function parse(str: string, options?: ParseOptions): TokenData; | |
| /** | |
| * Compile a string to a template function for the path. | |
| */ | |
| export declare function compile<P extends ParamData = ParamData>(path: Path, options?: CompileOptions & ParseOptions): (data?: P) => string; | |
| export type ParamData = Partial<Record<string, string | string[]>>; | |
| export type PathFunction<P extends ParamData> = (data?: P) => string; | |
| /** | |
| * A match result contains data about the path match. | |
| */ | |
| export interface MatchResult<P extends ParamData> { | |
| path: string; | |
| params: P; | |
| } | |
| /** | |
| * A match is either `false` (no match) or a match result. | |
| */ | |
| export type Match<P extends ParamData> = false | MatchResult<P>; | |
| /** | |
| * The match function takes a string and returns whether it matched the path. | |
| */ | |
| export type MatchFunction<P extends ParamData> = (path: string) => Match<P>; | |
| /** | |
| * Supported path types. | |
| */ | |
| export type Path = string | TokenData; | |
| /** | |
| * Transform a path into a match function. | |
| */ | |
| export declare function match<P extends ParamData>(path: Path | Path[], options?: MatchOptions & ParseOptions): MatchFunction<P>; | |
| export declare function pathToRegexp(path: Path | Path[], options?: PathToRegexpOptions & ParseOptions): { | |
| regexp: RegExp; | |
| keys: Keys; | |
| }; | |
| /** | |
| * Stringify token data into a path string. | |
| */ | |
| export declare function stringify(data: TokenData): string; | |