Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | 1x 1x 1x 4x 4x 1x 1x 3x 3x 3x 3x 3x 1x 1x 4x 4x 3x 3x 1x 1x 1x 1x 1x 1x 1x 28x 25x 25x 10x 10x 15x 15x 15x 15x 15x 1x 1x 27x 19x 19x 19x 189x 3x 3x 3x 3x 3x 189x 16x 16x | import { validationMessage } from '@/constants/validationMessages';
import type { ValidationResult } from '@/contracts/validationResult';
export const minLength =
(minLength: number) =>
(value: string): ValidationResult => {
if ((value?.length ?? 0) >= minLength) {
return { isValid: true };
}
return {
isValid: false,
errorMessage: validationMessage.minLength(minLength),
};
};
export const maxLength =
(maxLength: number) =>
(value: string): ValidationResult => {
if ((value?.length ?? 0) <= maxLength) {
return { isValid: true };
}
return {
isValid: false,
errorMessage: validationMessage.maxLength(maxLength),
};
};
export const lengthIsEqualTo =
(...lengths: Array<number>) =>
(value: string): ValidationResult => {
const valueLength = value?.length ?? 0;
if (lengths.includes(valueLength)) {
return { isValid: true };
}
return {
isValid: false,
errorMessage: validationMessage.unexpectedValue('Length', valueLength, lengths),
};
};
export const onlyAllowedChars =
(allowedChars: string, propName?: string) =>
(value: string): ValidationResult => {
const safeValue = value ?? '';
const charArr = allowedChars.split('');
for (const char of safeValue) {
if (charArr.includes(char) === false) {
return {
isValid: false,
errorMessage: validationMessage.unexpectedValue(propName ?? 'Character', char, charArr),
};
}
}
return { isValid: true };
};
|