UNPKG

workery

Version:

Modern web framework for building APIs on Cloudflare Workers.

94 lines (93 loc) 4.07 kB
import type { ResponseConfig, RouteConfig } from "@asteasolutions/zod-to-openapi"; import { SecurityRequirementObject } from "openapi3-ts/oas31"; import type { HTTPMethod, ResponseClass, RouteHandler, RouteParameters, UnboundRoute } from "./types"; import { Middleware } from "./middleware"; export declare function fixPathSlashes(path: string): string; export declare function generateRouteSummary(method: HTTPMethod, path: string): string; export declare class Route<R, Ps extends RouteParameters, E = unknown> { method: HTTPMethod; path: string; name?: string; tags: string[]; summary: string; description: string; deprecated: boolean; responses: Record<number, ResponseConfig>; security?: SecurityRequirementObject[]; statusCode: number; includeInSchema: boolean; responseClass: ResponseClass; middleware: Middleware<E>[]; parameters: Ps; handle: RouteHandler<R, Ps, E>; constructor(init: { method: HTTPMethod; path: string; name?: string; tags?: string[]; summary?: string; description?: string; deprecated?: boolean; responses?: Record<number, ResponseConfig>; security?: SecurityRequirementObject[]; includeInSchema?: boolean; statusCode?: number; responseClass?: ResponseClass; middleware?: Middleware<E>[]; parameters: Ps; handle: RouteHandler<R, Ps, E>; }); openapi(): RouteConfig; } export declare class RouteNode<E = unknown> { private inner; name: string; routes: Record<string, Route<any, any, E>>; middleware: Middleware<E>[]; paramNames: string[]; constructor(name: string); touch(node: string): RouteNode<E>; match(node: string): RouteNode<E> | undefined; } export declare function searchParamsToQueries(searchParams: URLSearchParams): Record<string, string[]>; export declare class RouteMatcher<E = unknown> { routes: Route<any, any, E>[]; tree: RouteNode<E>; constructor(); [Symbol.iterator](): IterableIterator<Route<any, any, E>>; get length(): number; get(path: string): RouteNode<E>; set(path: string | null, values: { middleware?: Middleware<E>[]; }): RouteNode<E>; push(...routes: Route<any, any, E>[]): number; match(method: string, path: string): [Route<any, any, E> | undefined | null, Record<string, string>, Middleware<E>[]]; } export declare class Router<E = unknown> { tags: string[]; deprecated: boolean; includeInSchema: boolean; responses: Record<number, ResponseConfig>; security?: SecurityRequirementObject[]; defaultResponseClass: ResponseClass; middleware: Middleware<E>[]; routeMatcher: RouteMatcher<E>; constructor(init: { tags?: string[]; deprecated?: boolean; includeInSchema?: boolean; responses?: Record<number, ResponseConfig>; security?: SecurityRequirementObject[]; defaultResponseClass?: ResponseClass; middleware?: Middleware<E>[]; }); get<R, Ps extends RouteParameters>(path: string, unboundRoute: UnboundRoute<R, Ps, E>): Route<R, Ps, E>; post<R, Ps extends RouteParameters>(path: string, unboundRoute: UnboundRoute<R, Ps, E>): Route<R, Ps, E>; put<R, Ps extends RouteParameters>(path: string, unboundRoute: UnboundRoute<R, Ps, E>): Route<R, Ps, E>; delete<R, Ps extends RouteParameters>(path: string, unboundRoute: UnboundRoute<R, Ps, E>): Route<R, Ps, E>; patch<R, Ps extends RouteParameters>(path: string, unboundRoute: UnboundRoute<R, Ps, E>): Route<R, Ps, E>; head<R, Ps extends RouteParameters>(path: string, unboundRoute: UnboundRoute<R, Ps, E>): Route<R, Ps, E>; trace<R, Ps extends RouteParameters>(path: string, unboundRoute: UnboundRoute<R, Ps, E>): Route<R, Ps, E>; options<R, Ps extends RouteParameters>(path: string, unboundRoute: UnboundRoute<R, Ps, E>): Route<R, Ps, E>; route<R, Ps extends RouteParameters>(method: HTTPMethod, path: string, unboundRoute: UnboundRoute<R, Ps, E>): Route<R, Ps, E>; }