UNPKG

@akrdevtech/lib-express-joi-validation-middleware

Version:
53 lines (52 loc) 2.77 kB
import { NextFunction, Request, Response } from 'express'; import Joi from "joi"; export interface IValidateAllSchema { body?: Joi.ObjectSchema; cookies?: Joi.ObjectSchema; headers?: Joi.ObjectSchema; params?: Joi.ObjectSchema; query?: Joi.ObjectSchema; } export interface IValidateAllResponse { body?: Joi.ValidationError | undefined; cookies?: Joi.ValidationError | undefined; headers?: Joi.ValidationError | undefined; params?: Joi.ValidationError | undefined; query?: Joi.ValidationError | undefined; } /** * Middleware to validate request body * @param validatorSchema Joi validatorSchema of the request body * @param joiValidationOptions Joi.ValidationOptions */ export declare const validateBody: (validatorSchema: Joi.ObjectSchema, joiValidationOptions?: Partial<Joi.ValidationOptions>) => (req: Request, _res: Response, next: NextFunction) => void; /** * Middleware to validate request cookies * @param validatorSchema Joi validatorSchema of the request cookies * @param joiValidationOptions Joi.ValidationOptions */ export declare const validateCookies: (validatorSchema: Joi.ObjectSchema, joiValidationOptions?: Partial<Joi.ValidationOptions>) => (req: Request, _res: Response, next: NextFunction) => void; /** * Middleware to validate request headers * @param validatorSchema Joi validatorSchema of the request headers * @param joiValidationOptions Joi.ValidationOptions */ export declare const validateHeaders: (validatorSchema: Joi.ObjectSchema, joiValidationOptions?: Partial<Joi.ValidationOptions>) => (req: Request, _res: Response, next: NextFunction) => void; /** * Middleware to validate request params * @param validatorSchema Joi validatorSchema of the request params * @param joiValidationOptions Joi.ValidationOptions */ export declare const validateParams: (validatorSchema: Joi.ObjectSchema, joiValidationOptions?: Partial<Joi.ValidationOptions>) => (req: Request, _res: Response, next: NextFunction) => void; /** * Middleware to validate request query * @param validatorSchema Joi validatorSchema of the request query * @param joiValidationOptions Joi.ValidationOptions */ export declare const validateQuery: (validatorSchema: Joi.ObjectSchema, joiValidationOptions?: Partial<Joi.ValidationOptions>) => (req: Request, _res: Response, next: NextFunction) => void; /** * Function to validate request [body,query,params,headers,cookies] * @param validatorSchema IValidateAllSchema * @param joiValidationOptions Joi.ValidationOptions */ export declare const validateAll: (validatorSchema: IValidateAllSchema, joiValidationOptions?: Partial<Joi.ValidationOptions>) => (req: Request, res: Response, next: NextFunction) => void;