UNPKG

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

Version:
94 lines (93 loc) 4.5 kB
import { NextFunction, Request, Response } from "express"; import Joi from "joi"; import { IValidateAllSchema } from "./interfaces/validatorInterfaces"; declare class RequestValidator { private defaultValidationOptions; private commonValidationOptions; constructor(joiValidationOptions?: Partial<Joi.ValidationOptions>); /** * Function to get request body validation errors * @param validatorSchema Joi.ObjectSchema * @param body Express request body * @param bodyValidationOptions Joi.ValidationOptions * @returns Joi.ValidationError | undefined */ private getBodyValidationErrors; /** * Middleware to validate request body * @param validatorSchema Joi validatorSchema of the request body * @param bodyValidationOptions Joi.ValidationOptions */ validateBody: (validatorSchema: Joi.ObjectSchema, bodyValidationOptions?: Partial<Joi.ValidationOptions>) => (req: Request, _res: Response, next: NextFunction) => void; /** * Function to get request cookies validation errors * @param validatorSchema Joi.ObjectSchema * @param cookies Express request cookies * @param cookiesValidationOptions Joi.ValidationOptions * @returns Joi.ValidationError | undefined */ private getCookiesValidationErrors; /** * Middleware to validate request cookies * @param validatorSchema Joi validatorSchema of the request cookies * @param cookiesValidationOptions Joi.ValidationOptions */ validateCookies: (validatorSchema: Joi.ObjectSchema, cookiesValidationOptions?: Partial<Joi.ValidationOptions>) => (req: Request, _res: Response, next: NextFunction) => void; /** * Function to get request query validation errors * @param validatorSchema Joi.ObjectSchema * @param query Express request query * @param queryValidationOptions Joi.ValidationOptions * @returns Joi.ValidationError | undefined */ private getQueryValidationErrors; /** * Middleware to validate request query * @param validatorSchema Joi validatorSchema of the request query * @param queryValidationOptions Joi.ValidationOptions */ validateQuery: (validatorSchema: Joi.ObjectSchema, queryValidationOptions?: Partial<Joi.ValidationOptions>) => (req: Request, _res: Response, next: NextFunction) => void; /** * Function to get request params validation errors * @param validatorSchema Joi.ObjectSchema * @param params Express request params * @param paramsValidationOptions Joi.ValidationOptions * @returns Joi.ValidationError | undefined */ private getParamsValidationErrors; /** * Middleware to validate request params * @param validatorSchema Joi validatorSchema of the request params * @param paramsValidationOptions Joi.ValidationOptions */ validateParams: (validatorSchema: Joi.ObjectSchema, paramsValidationOptions?: Partial<Joi.ValidationOptions>) => (req: Request, _res: Response, next: NextFunction) => void; /** * Function to get request headers validation errors * @param validatorSchema Joi.ObjectSchema * @param headers Express request headers * @param headersValidationOptions Joi.ValidationOptions * @returns Joi.ValidationError | undefined */ private getHeadersValidationErrors; /** * Middleware to validate request headers * @param validatorSchema Joi validatorSchema of the request headers * @param headersValidationOptions Joi.ValidationOptions */ validateHeaders: (validatorSchema: Joi.ObjectSchema, headersValidationOptions?: Partial<Joi.ValidationOptions>) => (req: Request, _res: Response, next: NextFunction) => void; /** * Function to get request validation errors * @param validatorSchema Joi.ObjectSchema * @param request Express request * @param allValidationOptions Joi.ValidationOptions * @returns Joi.ValidationError | undefined */ private getAllValidationErrors; /** * Function to validate request [body,query,params,headers,cookies] * @param validatorSchema IValidateAllSchema * @param allValidationOptions Joi.ValidationOptions */ validateAll: (validatorSchema: IValidateAllSchema, allValidationOptions?: Partial<Joi.ValidationOptions>) => (req: Request, res: Response, next: NextFunction) => void; } export default RequestValidator;