Urara-Blog/node_modules/.pnpm-store/v3/files/5b/cc605c71bbecffbc42219e106a90821b41085493f8429df6d51cd7902c0e1183d7234a94f0770bd5720700d0d3c0ec3ae121d81282a713ebe6232609bdb0af
2022-08-14 01:14:53 +08:00

26 lines
773 B
Text

export function parse(route: string, loose?: boolean): {
keys: string[];
pattern: RegExp;
}
export function parse(route: RegExp): {
keys: false;
pattern: RegExp;
}
export type RouteParams<T extends string> =
T extends `${infer Prev}/*/${infer Rest}`
? RouteParams<Prev> & { wild: string } & RouteParams<Rest>
: T extends `${string}:${infer P}?/${infer Rest}`
? { [K in P]?: string } & RouteParams<Rest>
: T extends `${string}:${infer P}/${infer Rest}`
? { [K in P]: string } & RouteParams<Rest>
: T extends `${string}:${infer P}?`
? { [K in P]?: string }
: T extends `${string}:${infer P}`
? { [K in P]: string }
: T extends `${string}*`
? { wild: string }
: {};
export function inject<T extends string>(route: T, values: RouteParams<T>): string;