UNPKG

@redwoodjs/sdk

Version:

Build fast, server-driven webapps on Cloudflare with SSR, RSC, and realtime

15 lines (14 loc) 664 B
type ParseRoute<T extends string> = T extends `${infer Start}:${infer Param}/${infer Rest}` ? { [K in Param]: string; } & ParseRoute<Rest> : T extends `${infer Start}:${infer Param}` ? { [K in Param]: string; } : T extends `${infer Start}*${infer Rest}` ? { $0: string; } & ParseRoute<Rest> : T extends `${infer Start}*` ? { $0: string; } : {}; type LinkFunction<T extends readonly string[]> = { <Path extends T[number]>(path: Path, params?: ParseRoute<Path> extends Record<string, never> ? undefined : ParseRoute<Path>): string; }; export declare function defineLinks<const T extends readonly string[]>(routes: T): LinkFunction<T>; export {};