| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- import {ValueOrPromise} from '../types.js';
- import {HookRegistry} from '../hooks/index.js';
- import {RequestContext} from '../request-context.js';
- /**
- * Http method.
- */
- export declare const HttpMethod: {
- GET: 'GET';
- POST: 'POST';
- PUT: 'PUT';
- PATCH: 'PATCH';
- DELETE: 'DELETE';
- };
- /**
- * Type of HttpMethod.
- */
- export type HttpMethod = (typeof HttpMethod)[keyof typeof HttpMethod];
- /**
- * 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 meta.
- */
- export type RouteMeta = {
- [key: string]: unknown;
- };
- /**
- * Route definition.
- */
- export interface RouteDefinition {
- method: string;
- path: string;
- handler: RouteHandler;
- preHandler?: RoutePreHandler | RoutePreHandler[];
- postHandler?: RoutePostHandler | RoutePostHandler[];
- meta?: RouteMeta;
- }
- /**
- * Route.
- */
- export declare class Route {
- /**
- * Route definition.
- */
- get definition(): RouteDefinition;
- /**
- * Method.
- */
- get method(): string;
- /**
- * Path.
- */
- get path(): string;
- /**
- * Meta.
- */
- get meta(): RouteMeta;
- /**
- * Handler.
- */
- get handler(): RouteHandler;
- /**
- * Hook registry.
- */
- get hookRegistry(): HookRegistry;
- /**
- * Constructor.
- *
- * @param routeDef
- */
- constructor(routeDef: RouteDefinition);
- /**
- * Handle.
- *
- * @param context
- */
- handle(context: RequestContext): ValueOrPromise<unknown>;
- }
|