UNPKG

5.35 kBTypeScriptView Raw
1// Type definitions for express-validator 3.0.0
2// Project: https://github.com/express-validator/express-validator
3// Definitions by: Ayman Nedjmeddine <https://github.com/IOAyman>, Nathan Ridley <https://github.com/axefrog/>, Jonathan Häberle <http://dreampulse.de>, Peter Harris <https://github.com/codeanimal/>, Kacper Polak <kacper@hypequality.com>
4// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
5
6///<reference types="express"/>
7import * as express from 'express';
8import { Location } from './check/location';
9import {
10 Result,
11 Validator as BaseValidator,
12 ValidatorOptions
13} from './check';
14import { Sanitizer as BaseSanitizer } from './filter'
15
16// Add RequestValidation Interface on to Express's Request Interface.
17declare global {
18 namespace Express {
19 interface Request extends ExpressValidator.RequestValidation { }
20 }
21}
22
23export as namespace ExpressValidator;
24interface ExpressValidatorOptions {
25 errorFormatter?(param: string, msg: string, value: any, location: Location): any,
26 customSanitizers?: Record<string, (...value: any[]) => any>,
27 customValidators?: Record<string, (...value: any[]) => boolean | Promise<any>>,
28}
29
30declare function ExpressValidator(options?: ExpressValidatorOptions): express.RequestHandler;
31export = ExpressValidator;
32
33// Internal Module.
34declare namespace ExpressValidator {
35 export type ValidationSchema = Record<
36 string,
37 ValidationSchemaParamOptions | { [custom: string]: ValidatorSchemaOptions }
38 >;
39
40 interface ValidatorSchemaOptions {
41 options?: any[]
42 errorMessage?: any
43 }
44
45 interface ValidationSchemaParamOptions {
46 in?: Location
47 errorMessage?: any
48
49 // Additional ValidatorChain.prototype.* validators
50 optional?: boolean | ValidatorOptions.OptionalOptions
51 notEmpty?: boolean | { errorMessage: string }
52 len?: ValidatorSchemaOptions
53
54 // exported from validator.js
55 isEmail?: ValidatorSchemaOptions
56 isURL?: ValidatorSchemaOptions
57 isMACAddress?: ValidatorSchemaOptions
58 isIP?: ValidatorSchemaOptions
59 isFQDN?: ValidatorSchemaOptions
60 isBoolean?: ValidatorSchemaOptions
61 isAlpha?: ValidatorSchemaOptions
62 isAlphanumeric?: ValidatorSchemaOptions
63 isNumeric?: ValidatorSchemaOptions
64 isLowercase?: ValidatorSchemaOptions
65 isUppercase?: ValidatorSchemaOptions
66 isAscii?: ValidatorSchemaOptions
67 isFullWidth?: ValidatorSchemaOptions
68 isHalfWidth?: ValidatorSchemaOptions
69 isVariableWidth?: ValidatorSchemaOptions
70 isHash?: ValidationSchemaParamOptions
71 isMultibyte?: ValidatorSchemaOptions
72 isSurrogatePair?: ValidatorSchemaOptions
73 isInt?: ValidatorSchemaOptions
74 isFloat?: ValidatorSchemaOptions
75 isDecimal?: ValidatorSchemaOptions
76 isHexadecimal?: ValidatorSchemaOptions
77 isDivisibleBy?: ValidatorSchemaOptions
78 isHexColor?: ValidatorSchemaOptions
79 isMD5?: ValidatorSchemaOptions
80 isJSON?: ValidatorSchemaOptions
81 isLatLong?: ValidationSchemaParamOptions
82 isEmpty?: ValidatorSchemaOptions
83 isLength?: ValidatorSchemaOptions
84 isByteLength?: ValidatorSchemaOptions
85 isPostalCode?: ValidationSchemaParamOptions
86 isUUID?: ValidatorSchemaOptions
87 isMongoId?: ValidatorSchemaOptions
88 isAfter?: ValidatorSchemaOptions
89 isBefore?: ValidatorSchemaOptions
90 isIn?: ValidatorSchemaOptions
91 isCreditCard?: ValidatorSchemaOptions
92 isISIN?: ValidatorSchemaOptions
93 isISRC?: ValidatorSchemaOptions
94 isISBN?: ValidatorSchemaOptions
95 isISSN?: ValidatorSchemaOptions
96 isMimeType?: ValidatorSchemaOptions
97 isMobilePhone?: ValidatorSchemaOptions
98 isPort?: ValidatorSchemaOptions
99 isCurrency?: ValidatorSchemaOptions
100 isISO31661Alpha2?: ValidatorSchemaOptions
101 isISO8601?: ValidatorSchemaOptions
102 isBase64?: ValidatorSchemaOptions
103 isDataURI?: ValidatorSchemaOptions
104 isWhitelisted?: ValidatorSchemaOptions
105
106 // Additional Validators provided by validator.js
107 equals?: ValidatorSchemaOptions
108 contains?: ValidatorSchemaOptions
109 matches?: ValidatorSchemaOptions
110 }
111
112 interface ValidatorFunction {
113 (item: string | string[] | number, message?: any): Validator;
114 (schema: {}): Validator;
115 }
116 interface SanitizerFunction { (item: string): Sanitizer; }
117
118 export interface RequestValidation {
119 assert: ValidatorFunction;
120 validate: ValidatorFunction;
121 check: ValidatorFunction;
122 checkBody: ValidatorFunction;
123 checkCookies: ValidatorFunction;
124 checkHeaders: ValidatorFunction;
125 checkParams: ValidatorFunction;
126 checkQuery: ValidatorFunction;
127
128 filter: SanitizerFunction;
129 sanitize: SanitizerFunction;
130 sanitizeBody: SanitizerFunction;
131 sanitizeQuery: SanitizerFunction;
132 sanitizeParams: SanitizerFunction;
133 sanitizeHeaders: SanitizerFunction;
134 sanitizeCookies: SanitizerFunction;
135
136 validationErrors(mapped?: boolean): Record<string, any> | any[];
137 validationErrors<T>(mapped?: boolean): Record<string, T> | T[];
138 asyncValidationErrors(mapped?: boolean): Promise<any[] | Record<string, any>>;
139 asyncValidationErrors<T>(mapped?: boolean): Promise<T[] | Record<string, T>>;
140 getValidationResult(): Promise<Result>
141 }
142
143 export interface Validator extends BaseValidator, Sanitizer {
144 notEmpty(): this;
145 len(options: ValidatorOptions.MinMaxOptions): this;
146 }
147
148 export interface Sanitizer extends BaseSanitizer {}
149
150}