validators.d.ts 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. import { CustomValidator, ErrorMessage, FieldMessageFactory } from '../base';
  2. import * as Options from '../options';
  3. export type ExistsOptions = {
  4. /**
  5. * Defines which kind of value makes a field _NOT_ exist.
  6. *
  7. * - `undefined`: only `undefined` values; equivalent to `value !== undefined`
  8. * - `null`: only `undefined` and `null` values; equivalent to `value != null`
  9. * - `falsy`: all falsy values; equivalent to `!!value`
  10. *
  11. * @default 'undefined'
  12. */
  13. values?: 'undefined' | 'null' | 'falsy';
  14. /**
  15. * Whether a field whose value is falsy should be considered non-existent.
  16. * @default false
  17. * @deprecated Use `values` instead
  18. */
  19. checkFalsy?: boolean;
  20. /**
  21. * Whether a field whose value is `null` or `undefined` should be considered non-existent.
  22. * @default false
  23. * @deprecated Use `values` instead
  24. */
  25. checkNull?: boolean;
  26. };
  27. export interface Validators<Return> {
  28. /**
  29. * Negates the result of the next validator.
  30. *
  31. * @example check('weekday').not().isIn(['sunday', 'saturday'])
  32. * @returns the current validation chain
  33. */
  34. not(): Return;
  35. /**
  36. * Sets the error message for the previous validator.
  37. *
  38. * @param message the message, which can be any value, or a function for dynamically creating the
  39. * error message based on the field value
  40. * @returns the current validation chain
  41. */
  42. withMessage(message: FieldMessageFactory | ErrorMessage): Return;
  43. /**
  44. * Adds a custom validator to the validation chain.
  45. *
  46. * @param validator the custom validator
  47. * @returns the current validation chain
  48. */
  49. custom(validator: CustomValidator): Return;
  50. /**
  51. * Adds a validator to check that the fields exist in the request.
  52. * By default, this means that the value of the fields may not be `undefined`;
  53. * all other values are acceptable.
  54. *
  55. * @param options
  56. * @returns the current validation chain
  57. */
  58. exists(options?: ExistsOptions): Return;
  59. /**
  60. * Adds a validator to check if a value is an array.
  61. *
  62. * @param options
  63. * @returns the current validation chain
  64. */
  65. isArray(options?: {
  66. min?: number;
  67. max?: number;
  68. }): Return;
  69. /**
  70. * Adds a validator to check if a value is an object.
  71. *
  72. * @param options
  73. * @returns the current validation chain
  74. */
  75. isObject(options?: {
  76. strict?: boolean;
  77. }): Return;
  78. /**
  79. * Adds a validator to check if a value is a string.
  80. *
  81. * @returns the current validation chain
  82. */
  83. isString(): Return;
  84. /**
  85. * Adds a validator to check if a value is not empty; that is, a string with length of 1 or more.
  86. *
  87. * @param options
  88. * @returns the current validation chain
  89. */
  90. notEmpty(options?: Options.IsEmptyOptions): Return;
  91. contains(elem: any, options?: Options.ContainsOptions): Return;
  92. equals(comparison: string): Return;
  93. isAbaRouting(): Return;
  94. isAfter(dateOrOptions?: string | Options.IsAfterOptions): Return;
  95. isAlpha(locale?: Options.AlphaLocale, options?: Options.IsAlphaOptions): Return;
  96. isAlphanumeric(locale?: Options.AlphanumericLocale, options?: Options.IsAlphanumericOptions): Return;
  97. isAscii(): Return;
  98. isBase32(options?: Options.IsBase32Options): Return;
  99. isBase58(): Return;
  100. isBase64(options?: Options.IsBase64Options): Return;
  101. isBefore(date?: string): Return;
  102. isBIC(): Return;
  103. isBoolean(options?: Options.IsBooleanOptions): Return;
  104. isBtcAddress(): Return;
  105. isByteLength(options: Options.MinMaxExtendedOptions): Return;
  106. isCreditCard(options?: Options.IsCreditCard): Return;
  107. isCurrency(options?: Options.IsCurrencyOptions): Return;
  108. isDataURI(): Return;
  109. isDate(options?: Options.IsDateOptions): Return;
  110. isDecimal(options?: Options.IsDecimalOptions): Return;
  111. isDivisibleBy(number: number): Return;
  112. isEAN(): Return;
  113. isEmail(options?: Options.IsEmailOptions): Return;
  114. isEmpty(options?: Options.IsEmptyOptions): Return;
  115. isEthereumAddress(): Return;
  116. isFQDN(options?: Options.IsFQDNOptions): Return;
  117. isFloat(options?: Options.IsFloatOptions): Return;
  118. isFreightContainerID(): Return;
  119. isFullWidth(): Return;
  120. isHalfWidth(): Return;
  121. isHash(algorithm: Options.HashAlgorithm): Return;
  122. isHexColor(): Return;
  123. isHexadecimal(): Return;
  124. isHSL(): Return;
  125. isIBAN(options?: Options.IsIBANOptions): Return;
  126. isIdentityCard(locale?: Options.IdentityCardLocale): Return;
  127. isIMEI(options?: Options.IsIMEIOptions): Return;
  128. isIP(version?: Options.IPVersion): Return;
  129. isIPRange(version?: Options.IPVersion): Return;
  130. isISBN(versionOrOptions?: number | Options.IsISBNOptions): Return;
  131. isISSN(options?: Options.IsISSNOptions): Return;
  132. isISIN(): Return;
  133. isISO6346(): Return;
  134. isISO6391(): Return;
  135. isISO8601(options?: Options.IsISO8601Options): Return;
  136. isISO31661Numeric(): Return;
  137. isISO31661Alpha2(): Return;
  138. isISO31661Alpha3(): Return;
  139. isISO4217(): Return;
  140. isISO15924(): Return;
  141. isISRC(): Return;
  142. isIn(values: readonly any[]): Return;
  143. isInt(options?: Options.IsIntOptions): Return;
  144. isJSON(options?: Options.IsJSONOptions): Return;
  145. isJWT(): Return;
  146. isLatLong(options?: Options.IsLatLongOptions): Return;
  147. isLength(options: Options.MinMaxOptions): Return;
  148. isLicensePlate(locale: Options.IsLicensePlateLocale): Return;
  149. isLocale(): Return;
  150. isLowercase(): Return;
  151. isLuhnNumber(): Return;
  152. isMagnetURI(): Return;
  153. isMailtoURI(options?: Options.IsEmailOptions): Return;
  154. isMACAddress(options?: Options.IsMACAddressOptions): Return;
  155. isMD5(): Return;
  156. isMimeType(): Return;
  157. isMobilePhone(locale: Options.MobilePhoneLocale | readonly Options.MobilePhoneLocale[], options?: Options.IsMobilePhoneOptions): Return;
  158. isMongoId(): Return;
  159. isMultibyte(): Return;
  160. isNumeric(options?: Options.IsNumericOptions): Return;
  161. isOctal(): Return;
  162. isPassportNumber(countryCode?: Options.PassportCountryCode): Return;
  163. isPort(): Return;
  164. isPostalCode(locale: Options.PostalCodeLocale): Return;
  165. isRgbColor(includePercentValues?: boolean): Return;
  166. isRFC3339(): Return;
  167. isSemVer(): Return;
  168. isSlug(): Return;
  169. isStrongPassword(options?: Options.IsStrongPasswordOptions): Return;
  170. isSurrogatePair(): Return;
  171. isTaxID(locale: Options.TaxIDLocale): Return;
  172. isTime(options: Options.IsTimeOptions): Return;
  173. isURL(options?: Options.IsURLOptions): Return;
  174. isULID(): Return;
  175. isUUID(version?: Options.UUIDVersion): Return;
  176. isUppercase(): Return;
  177. isVariableWidth(): Return;
  178. isVAT(countryCode: Options.VATCountryCode): Return;
  179. isWhitelisted(chars: string | readonly string[]): Return;
  180. matches(pattern: RegExp | string, modifiers?: string): Return;
  181. }