@grace-js/grace
Version:
An opinionated API framework
9 lines • 1.01 kB
TypeScript
import { AnyRoute, InferContext, Route as RouteSchema } from "./route.js";
import { RateLimitOptions } from "../plugins/rate-limit.js";
export type ContextExtra = any;
export type BeforeRoute<Route extends AnyRoute> = (context: InferContext<Route>) => Promise<any | void>;
export type AfterRoute<Route extends AnyRoute> = (context: InferContext<Route>, response: any) => Promise<void>;
export declare function createBeforeRoute<ContextExtras extends ContextExtra = {}>(): <Route extends RouteSchema<any, any, any, any, any, any, Record<string, string>, ContextExtras>>(handler: BeforeRoute<Route>) => BeforeRoute<Route>;
export declare function createAfterRoute<ContextExtras extends ContextExtra = {}>(): <Route extends RouteSchema<any, any, any, any, any, any, Record<string, string>, ContextExtras>>(handler: AfterRoute<Route>) => AfterRoute<Route>;
export declare function rateLimitRoute({ windowMs, max, message, statusCode }: RateLimitOptions): BeforeRoute<AnyRoute>;
//# sourceMappingURL=middleware.d.ts.map