Módulo de validação
Em projetos reais, a lógica de validação é centralizada em módulos para manter o código organizado e reutilizável. Em vez de espalhar verificações pelos componentes, você agrupa funções em arquivos separados que podem ser importados onde necessário. Isso facilita testes e manutenção, garantindo mensagens de erro consistentes em toda a aplicação.
O PROBLEMA
Crie módulo validacoes.js com funções de validação retornando {valido, mensagem}.
EXEMPLO
export function validarEmail(email) {
const valido = /^[^@]+@[^@]+\.[^@]+$/.test(email);
return {valido, mensagem: valido ? "" : "Email inválido"};
}SOBRE O CONCEITO
O exercício pede funções puras de validação que retornam um objeto com valido (booleano) e mensagem (string). Funções puras não alteram estado externo e sempre produzem o mesmo resultado para as mesmas entradas, sendo previsíveis e testáveis. Um erro comum é usar uma regex incorreta – por exemplo, esquecer de escapar pontos ou não considerar caracteres válidos. Outro erro é não retornar a mensagem quando o valor é inválido; você deve sempre fornecer uma mensagem, mesmo que vazia para casos válidos. Como throw é proibido, a abordagem é retornar o objeto com o resultado, padrão comum em bibliotecas de validação para verificações não críticas. Lembre-se de usar export nomeado (sem default) e aplicar regex.test() que já retorna booleano.
RESOLUÇÃO