DefinitelyTyped/types/revalidate/revalidate-tests.ts

54 lines
1.0 KiB
TypeScript

import r = require("revalidate");
const isValidEmail = r.createValidator(
message => value => {
if (value && !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(value)) {
return message;
}
},
'Invalid email address'
);
const isGreaterThan = (n: any) => r.createValidator(
message => value => {
if (value && Number(value) <= n) {
return message;
}
},
field => `${field} must be greater than ${n}`
);
const customIsRequired = r.isRequired({ message: 'Required' });
const lessThan = r.hasLengthLessThan(16)({ message: 'Must be 15 characters or less' });
const username = r.composeValidators(
customIsRequired,
lessThan
)();
const email = r.composeValidators(
customIsRequired,
isValidEmail
)();
const isNumber = r.isNumeric({
message: 'Must be a number'
});
const isGreater = isGreaterThan(17)({
message: 'Sorry, you must be at least 18 years old'
});
const age = r.composeValidators(
customIsRequired,
isNumber,
isGreater
)();
const validate = r.combineValidators({
username,
email,
age
});