[PITCH] Uma biblioteca Typescript e Open-Source, "valid-email.ts".
Acabei de lançar no npm a valid-email.ts, uma biblioteca TypeScript para validação de e-mails completa e flexível.
🔍 O que ela resolve?
Muitos sistemas fazem apenas uma verificação simples com regex, mas isso não garante que o e-mail realmente exista ou seja confiável (o meu ta quase lá).
Estou adicionando novos validadores e em breve adicionarei mais alguns links de dominios de e-mails temporários para melhores validações.
O valid-email.ts vai além, trazendo validações reais e configuráveis:
- ✅ Formato válido (RFC compliant)
- ✅ Normalização (
trim+ lowercase) - ✅ Limites de tamanho (RFC: 64/255/254)
- ✅ Verificação de TLDs (lista oficial IANA, atualizada online)
- ✅ Bloqueio de domínios descartáveis
- ✅ Checagem de DNS (MX records)
- ✅ Deep Check SMTP (best effort)
- ✅ i18n integrado (PT/EN) + mensagens customizáveis
- ✅ Validação em lote (
validateMany)
📦 Instalação
npm install valid-email.ts
yarn add valid-email.ts
🛠️ Exemplo de uso
import { validate } from "valid-email.ts";
const result = await validate("[email protected]", { lang: "pt" });
console.log(result);
Saída:
{
"email": "[email protected]",
"user": "test",
"domain": "gmail.com",
"status": "valid",
"reasonCode": "VALID",
"reason": "Email válido",
"disposable": false
}
⚙️ Opções de validação
export interface ValidationOptions {
checkDNS?: boolean; // padrão: true - valida MX records
deepCheckSMTP?: boolean; // padrão: false - conecta via SMTP (lento e opcional)
allowDisposable?: boolean; // padrão: false - bloqueia descartáveis
checkTLD?: boolean; // padrão: true - valida TLDs oficiais IANA
lang?: "en" | "pt"; // padrão: "en" - seleciona idioma
customMessages?: ValidationMessages; // sobrescreve mensagens padrão
}
Exemplo:
await validate("[email protected]", { allowDisposable: true });
// retorna como válido, mesmo sendo descartável
📦 Validação em lote
import { validateMany } from "valid-email.ts";
const emails = ["[email protected]", "[email protected]", "c@invalid"];
const results = await validateMany(emails);
console.log(results);
🌍 Links
-
🔗 GitHub: tiago-dias-laureano/valid-email.ts
-
🔗 npm: valid-email.ts
-
PixJS (NPM) PixJS
-
PixJS (GitHub) PixJS
Se achou útil, deixa uma ⭐ no GitHub e compartilha com a comunidade!