1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 | import * as express from 'express';
|
8 | import { Location } from './check/location';
|
9 | import {
|
10 | Result,
|
11 | Validator as BaseValidator,
|
12 | ValidatorOptions
|
13 | } from './check';
|
14 | import { Sanitizer as BaseSanitizer } from './filter'
|
15 |
|
16 |
|
17 | declare global {
|
18 | namespace Express {
|
19 | interface Request extends ExpressValidator.RequestValidation { }
|
20 | }
|
21 | }
|
22 |
|
23 | export as namespace ExpressValidator;
|
24 | interface 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 |
|
30 | declare function ExpressValidator(options?: ExpressValidatorOptions): express.RequestHandler;
|
31 | export = ExpressValidator;
|
32 |
|
33 |
|
34 | declare 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 |
|
50 | optional?: boolean | ValidatorOptions.OptionalOptions
|
51 | notEmpty?: boolean | { errorMessage: string }
|
52 | len?: ValidatorSchemaOptions
|
53 |
|
54 |
|
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 |
|
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 | }
|