@taraj/express-validator
Version:
Lightweight & powerful express validator designed for Typescript.
69 lines (56 loc) • 2.3 kB
TypeScript
// Type definitions for express-validator 1.1.2
// Project: express-validator
// Definitions by: Taraj <https://github.com/Taraj>
import { SchemaMap, AnySchema, ValidationOptions } from 'joi';
import { RequestHandler } from 'express';
import Joi = require('joi');
declare global {
namespace Express {
interface Request {
/**
* Validates request body against a schema, returns valid object, and throws if validation fails.
*
* @param type - the expected class (must override AbstractValidatedDto)
*/
getValidatedBody: <T extends AbstractValidatedDto>(type: { new(): T; }) => T;
/**
* Validates request param value against a schema, returns valid value,
* if validation fails throws error or return @param defaultValue if provided.
*
* @param paramName - the name of param.
* @param schema - the schema object.
* @param defaultValue - optional value returned if validation fails
*/
getValidatedParam: (paramName: string, schema: AnySchema, defaultValue?: any) => any;
/**
* Validates request query value against a schema, returns valid value,
* if validation fails throws error or return @param defaultValue if provided.
*
* @param queryName - the name of query.
* @param schema - the schema object.
* @param defaultValue - optional value returned if validation fails
*/
getValidatedQuery: (queryName: string, schema: AnySchema, defaultValue?: any) => any;
}
}
}
/**
* All dto's needs to extend this class and implement `getSchema()` method
*/
export abstract class AbstractValidatedDto {
/**
* Method returning `Joi.SchemaMap` to validate object
*/
protected abstract getSchema(): SchemaMap;
/**
* Method called by middleware when validate.
* Should throw error when object is invalid or if object is valid return it
*/
public validate(options: ValidationOptions): any;
}
/**
* express-validator middleware
*
*/
export default function (options?: ValidationOptions): () => RequestHandler;
export { Joi };