Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const validations = {
- address: (street, postcode, city) => {
- if (street && postcode && city) {
- return S.Right(`${street}, ${postcode}, ${city}`)
- }
- return S.Left(`Incorrect address provided (${street}, ${postcode}, ${city})`);
- },
- email: (email) => {
- if (/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(email)) {
- return S.Right(email);
- }
- return S.Left(`Incorrect email address provided (${email})`);
- }
- }
- const register = function (email, street, postcode, city) {
- const result = S.sequence(
- S.Right,
- [
- validations.email(email),
- validations.address(street, postcode, city)
- ]
- );
- if (S.isRight(result)) {
- console.log('Registered!');
- } else {
- console.warn('Error found', result.value);
- }
- }
- register();
- register('test');
- register('test@email.com');
- register('test@email.com', 'a');
- register('test@email.com', 'a', 'b');
- register('test@email.com', 'a', 'b', 'c');
Add Comment
Please, Sign In to add comment