Guest User

Untitled

a guest
May 30th, 2018
340
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. const validations = {
  2. address: (street, postcode, city) => {
  3. if (street && postcode && city) {
  4. return S.Right(`${street}, ${postcode}, ${city}`)
  5. }
  6. return S.Left(`Incorrect address provided (${street}, ${postcode}, ${city})`);
  7. },
  8. email: (email) => {
  9. 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)) {
  10. return S.Right(email);
  11. }
  12. return S.Left(`Incorrect email address provided (${email})`);
  13. }
  14. }
  15.  
  16. const register = function (email, street, postcode, city) {
  17. const result = S.sequence(
  18. S.Right,
  19. [
  20. validations.email(email),
  21. validations.address(street, postcode, city)
  22. ]
  23. );
  24.  
  25. if (S.isRight(result)) {
  26. console.log('Registered!');
  27. } else {
  28. console.warn('Error found', result.value);
  29. }
  30. }
  31.  
  32. register();
  33. register('test');
  34. register('test@email.com');
  35. register('test@email.com', 'a');
  36. register('test@email.com', 'a', 'b');
  37. register('test@email.com', 'a', 'b', 'c');
Add Comment
Please, Sign In to add comment