| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- import {ValueOrPromise} from './types.js';
- import {HookRegistry} from './hooks/index.js';
- import {RequestContext} from './request-context.js';
- /**
- * Http method.
- */
- export enum HTTP_METHOD {
- GET = 'get',
- POST = 'post',
- PUT = 'put',
- PATCH = 'patch',
- DELETE = 'delete',
- }
- /**
- * Route handler.
- */
- export type RouteHandler = (ctx: RequestContext) => ValueOrPromise<unknown>;
- /**
- * Route pre-handler.
- */
- export type RoutePreHandler = RouteHandler;
- /**
- * Route post-handler.
- */
- export type RoutePostHandler<T = unknown, U = unknown> = (
- ctx: RequestContext,
- data: T,
- ) => ValueOrPromise<U>;
- /**
- * Route definition.
- */
- export type RouteDefinition = {
- method: string;
- path: string;
- preHandler: RoutePreHandler | RoutePreHandler[];
- handler: RouteHandler;
- postHandler: RoutePostHandler | RoutePostHandler[];
- };
- /**
- * Route.
- */
- export declare class Route {
- /**
- * Method.
- */
- get method(): string;
- /**
- * Path.
- */
- get path(): string;
- /**
- * Handler.
- */
- get handler(): RouteHandler;
- /**
- * Hook registry.
- */
- get hookRegistry(): HookRegistry;
- /**
- * Constructor.
- *
- * @param routeDef
- */
- constructor(routeDef: RouteDefinition);
- /**
- * Handle.
- *
- * @param context
- */
- handle(context: RequestContext): ValueOrPromise<unknown>;
- }
|