sick-sad-world
3/3/2017 - 8:47 AM

Normalize Input Value to provide correct numbers, booleans, e.t.c @result -> run provided function with formatted value

Normalize Input Value to provide correct numbers, booleans, e.t.c @result -> run provided function with formatted value

const normalizeValue = (v, base = 10) => {
  let intVal = parseFloat(v, base);
  if (intVal === intVal) {
    return intVal;
  } else if (v === 'true') {
    return true;
  } else if (v === 'false') {
    return false;
  } else if (v === 'undefined') {
    return undefined;
  } else if (v === '') {
    return null;
  } else {
    return v;
  }
}

// Example of wrapped function in React way
const eventHandler = (func) => (e) => func(normalizeValue(e.target.value))