Skip to content

Instantly share code, notes, and snippets.

@Killavus
Created October 23, 2016 18:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Killavus/1882c51353b01dae0e2caf1a08c64b19 to your computer and use it in GitHub Desktop.
Save Killavus/1882c51353b01dae0e2caf1a08c64b19 to your computer and use it in GitHub Desktop.
const reduceCompose = (f, g) => x => g(x, f(x))
const reduceComposeArr = (...fns) => fns.reduce(reduceCompose, (x, y) => y)
const isNumber = (x, errors = {}) => Number.isNaN(parseInt(x, 10)) ? Object.assign({}, errors, { number: true }) : errors;
undefined
const length = (z) => (x, errors = {}) => (x && x.length < z) ? Object.assign({}, errors, { length: true }) : errors;
const presence = (x, errors = {}) => x === undefined ? Object.assign({}, errors, { presence: true }) : errors;
reduceComposeArr(presence, length(3), isNumber)('123')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment