UNPKG

yup-server

Version:

A lightweight server that uses the amazing Yup library for validation

49 lines (48 loc) 2 kB
/// <reference types="node" /> import * as yup from "yup"; import http, { IncomingMessage, ServerResponse } from "node:http"; declare type Context<User = any, Body = any, Query = any, Params = any> = { user: User; body: Body; query: Query; params: Params; }; declare type RequestHandlerFunction<T extends Context = Context> = (params: { ctx: T; req: http.IncomingMessage; res: http.ServerResponse; }) => any; declare type RequestHandler<T extends Context = Context> = { handler: RequestHandlerFunction<T>; bodySchema?: yup.AnySchema; paramsSchema?: yup.AnySchema; querySchema?: yup.AnySchema; responseSchema?: yup.AnySchema; }; declare type HTTPMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE"; declare type Route<T extends Context = Context> = { pattern: RegExp; "*"?: RequestHandler<T>; GET?: RequestHandler<T>; PUT?: RequestHandler<T>; PATCH?: RequestHandler<T>; POST?: RequestHandler<T>; DELETE?: RequestHandler<T>; }; /** * Generate a request handler function suitable for use with http.createServer() */ declare function createServer(routes: Route[]): (req: IncomingMessage, res: ServerResponse) => Promise<void>; declare type ConnectMiddleware = <Req = IncomingMessage, Res = ServerResponse>(req: Req, res: Res, next: (err?: unknown) => void) => void; declare type ConnectMiddlewareErrorHandler = (err: unknown) => any; /** * Generate a request handler function that will execute connect-style middleware. * * @param connectMiddleware The middleware to execute * @param errorHandler The error handler to execute if the middleware returns an error * * @returns A request handler function * */ declare function useConnectMiddleware(connectMiddleware: ConnectMiddleware, errorHandler?: ConnectMiddlewareErrorHandler): RequestHandlerFunction; export { ConnectMiddleware, ConnectMiddlewareErrorHandler, Context, HTTPMethod, RequestHandler, RequestHandlerFunction, Route, useConnectMiddleware, createServer, };