@tdb/util
Version:
Shared helpers and utilities.
69 lines (68 loc) • 2.47 kB
TypeScript
import { IRoute, IRouteMeta, RouteOptions, RouteParams, RouteQuery } from './types';
export * from './types';
export declare type CreateRoute = <P extends RouteParams, Q extends RouteQuery = {}>(path: string, args?: RouteOptions) => Route<P, Q>;
export declare class Route<P extends RouteParams = {}, Q extends RouteQuery = {}> implements IRoute {
static create: CreateRoute;
static get: CreateRoute;
static put: CreateRoute;
static post: CreateRoute;
static delete: CreateRoute;
static patch: CreateRoute;
readonly path: IRoute['path'];
private readonly _options;
private readonly _tokens;
private readonly _regex;
private readonly _toPath;
private constructor();
toString(): string;
readonly schema: IRoute['schema'];
readonly method: IRoute['method'];
readonly title: IRoute['title'];
readonly description: IRoute['description'];
readonly docs: IRoute['docs'];
readonly meta: IRouteMeta;
readonly tokens: IRoute['tokens'];
isMatch(url?: string): boolean;
params(url?: string): P;
static params<P extends RouteParams = {}>(route: Route, url?: string): P;
query(url?: string): Q;
static query<Q extends RouteQuery = {}>(url?: string): Q;
url(url?: string, options?: {
origin?: string;
}): RouteUrl;
toUrl(args: {
params?: P;
query?: Q;
origin?: string;
}): RouteUrl<{}, {}>;
static toQueryString(query?: RouteQuery): string;
clone(options?: {
path?: string;
} & RouteOptions): Route<RouteParams, {}>;
toObject(): IRoute;
static walk(tree: object | undefined, fn: (route: Route, args: {
stop: () => void;
}) => void): void;
static find(tree: object | undefined, match: (route: Route) => boolean): Route<{}, {}> | undefined;
static map<T>(tree: object | undefined, fn: (route: Route, index: number) => T): T[];
static toString(path: string, options?: {
origin?: string;
}): string;
}
export declare class RouteUrl<P extends RouteParams = {}, Q extends RouteQuery = {}> {
readonly path: string;
readonly route: Route;
readonly params: P;
readonly query: Q;
readonly origin: string | undefined;
constructor(args: {
url: string;
route: Route<P, Q>;
origin?: string;
});
readonly s: string;
toString(options?: {
origin?: string;
}): string;
hasFlag(key?: string | string[]): boolean;
}