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))