@akrdevtech/lib-express-joi-validation-middleware
Version:
Joi based validation middleware for ExpressJS
94 lines (93 loc) • 4.5 kB
TypeScript
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;