Snippets

Eduardo Matos Filter (formatter)

Created by Eduardo Matos
const config = {
  cep: chain(numbersOnly),
  cpf: chain(numbersOnly),
  cnpj: chain(numbersOnly),
  nome: chain(trim, lowercase),
};

export default input => {
  const output = { ...input };

  Object.keys(output).forEach(key => {
    if (key in config) {
      output[key] = config[key](output[key]);
    }
  });

  return output;
}

function numbersOnly (number) {
  return number.replace(/\D+/g, '');
}

function trim (value) {
  return value.trim();
}

function lowercase (value) {
  return value.toLowerCase();
}

function chain (...filters) {
  return value => {
    return filters.reduce((output, filter) => filter(output), value);
  };
};

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.