All files / lib/validations/validate/card cvv.js

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                      2x   2x   2x           15x              
import {
  always,
  compose,
  equals,
  ifElse,
  pipe,
  propEq,
  replace,
  toString,
} from 'ramda'
 
const clean = replace(/[^0-9]/g, '')
 
const lengthIs = compose(always, propEq('length'))
 
const validateFrom = ifElse(
  equals('amex'),
  lengthIs(4),
  lengthIs(3)
)
 
const validate = brand => pipe(
  toString,
  clean,
  validateFrom(brand)
)
 
export default validate