|
| 1 | +import { ValidationsConfiguration, ValidationWithMessage, Validations } from "../types"; |
| 2 | +import { max, maxLength, min, minLength, pattern, required } from "../utils"; |
| 3 | + |
| 4 | +export default (validations: ValidationsConfiguration = {}): Validations => { |
| 5 | + const transformed: Validations = {}; |
| 6 | + if (!!validations.required) { |
| 7 | + transformed.required = typeof validations.required === 'string' |
| 8 | + ? required(validations.required) |
| 9 | + : required(); |
| 10 | + } |
| 11 | + if (validations.min) { |
| 12 | + transformed.min = typeof validations.min === 'number' |
| 13 | + ? min(validations.min) |
| 14 | + : min(validations.min.value as number, validations.min.message); |
| 15 | + } |
| 16 | + if (validations.max) { |
| 17 | + transformed.max = typeof validations.max === 'number' |
| 18 | + ? max(validations.max) |
| 19 | + : max(validations.max.value as number, validations.max.message); |
| 20 | + } |
| 21 | + if (validations.minLength) { |
| 22 | + transformed.minLength = typeof validations.minLength === 'number' |
| 23 | + ? minLength(validations.minLength) |
| 24 | + : minLength(validations.minLength.value as number, validations.minLength.message); |
| 25 | + } |
| 26 | + if (validations.maxLength) { |
| 27 | + transformed.maxLength = typeof validations.maxLength === 'number' |
| 28 | + ? maxLength(validations.maxLength) |
| 29 | + : maxLength(validations.maxLength.value as number, validations.maxLength.message); |
| 30 | + } |
| 31 | + if (validations.pattern) { |
| 32 | + transformed.pattern = !(validations.pattern as ValidationWithMessage)?.value |
| 33 | + ? pattern(validations.pattern as RegExp) |
| 34 | + : pattern((validations.pattern as ValidationWithMessage).value as RegExp, (validations.pattern as ValidationWithMessage).message as string); |
| 35 | + } |
| 36 | + return transformed; |
| 37 | +} |
| 38 | + |
0 commit comments