feat: init
This commit is contained in:
54
node_modules/rou3/dist/index.d.mts
generated
vendored
Normal file
54
node_modules/rou3/dist/index.d.mts
generated
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
interface RouterContext<T = unknown> {
|
||||
root: Node<T>;
|
||||
static: Record<string, Node<T> | undefined>;
|
||||
}
|
||||
type ParamsIndexMap = Array<[Index: number, name: string | RegExp, optional: boolean]>;
|
||||
type MethodData<T = unknown> = {
|
||||
data: T;
|
||||
paramsMap?: ParamsIndexMap;
|
||||
paramsRegexp: RegExp[];
|
||||
};
|
||||
interface Node<T = unknown> {
|
||||
key: string;
|
||||
static?: Record<string, Node<T>>;
|
||||
param?: Node<T>;
|
||||
wildcard?: Node<T>;
|
||||
hasRegexParam?: boolean;
|
||||
methods?: Record<string, MethodData<T>[] | undefined>;
|
||||
}
|
||||
type MatchedRoute<T = unknown> = {
|
||||
data: T;
|
||||
params?: Record<string, string>;
|
||||
};
|
||||
type ExtractWildcards<TPath extends string, Count extends readonly unknown[] = []> = TPath extends `${string}**:${infer Rest}` ? Rest extends `${infer Param}/${infer Tail}` ? Param | ExtractWildcards<Tail, Count> : Rest : TPath extends `${string}*${infer Rest}` ? Rest extends `*` ? `_` : `_${Count["length"]}` | ExtractWildcards<Rest, [...Count, unknown]> : TPath extends `${string}/${infer Rest}` ? ExtractWildcards<Rest, Count> : never;
|
||||
type ExtractNamedParams<TPath extends string> = TPath extends `${infer _Start}:${infer Rest}` ? Rest extends `${infer Param}/${infer Tail}` ? Param | ExtractNamedParams<`/${Tail}`> : Rest extends `${infer Param}*${infer Tail}` ? Param | ExtractNamedParams<`/${Tail}`> : Rest : TPath extends `/${infer Rest}` ? ExtractNamedParams<Rest> : never;
|
||||
type InferRouteParams<TPath extends string> = { [K in ExtractNamedParams<TPath> | ExtractWildcards<TPath>]: string };
|
||||
/**
|
||||
* Create a new router context.
|
||||
*/
|
||||
declare function createRouter<T = unknown>(): RouterContext<T>;
|
||||
/**
|
||||
* Add a route to the router context.
|
||||
*/
|
||||
declare function addRoute<T>(ctx: RouterContext<T>, method: string | undefined, path: string, data?: T): void;
|
||||
/**
|
||||
* Find a route by path.
|
||||
*/
|
||||
declare function findRoute<T = unknown>(ctx: RouterContext<T>, method: string | undefined, path: string, opts?: {
|
||||
params?: boolean;
|
||||
}): MatchedRoute<T> | undefined;
|
||||
/**
|
||||
* Remove a route from the router context.
|
||||
*/
|
||||
declare function removeRoute<T>(ctx: RouterContext<T>, method: string, path: string): void;
|
||||
/**
|
||||
* Find all route patterns that match the given path.
|
||||
*/
|
||||
declare function findAllRoutes<T>(ctx: RouterContext<T>, method: string | undefined, path: string, opts?: {
|
||||
params?: boolean;
|
||||
}): MatchedRoute<T>[];
|
||||
declare function routeToRegExp(route?: string): RegExp;
|
||||
declare const NullProtoObj: {
|
||||
new (): any;
|
||||
};
|
||||
export { type InferRouteParams, type MatchedRoute, NullProtoObj, type RouterContext, addRoute, createRouter, findAllRoutes, findRoute, removeRoute, routeToRegExp };
|
||||
Reference in New Issue
Block a user