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