@komandero/validadores
v2.0.0
Published
Validadores comunes para aplicaciones españolas: NIF, NIE, CIF, IBAN, teléfono, email, código postal y más.
Downloads
197
Maintainers
Readme
@komandero/validadores
Validadores comunes para aplicaciones españolas: NIF, NIE, CIF, IBAN, teléfono, email, código postal y más.
Zero dependencies. TypeScript. Mensajes de error en español.
Instalación
npm install @komandero/validadoresUso
import {
validateNIF,
validateNIE,
validateCIF,
validateDocumento,
validateIBAN,
validateTelefono,
validateEmail,
validateCodigoPostal,
getTipoTitular,
} from '@komandero/validadores';Todos los validadores devuelven ValidationResult:
interface ValidationResult {
valid: boolean;
error?: string; // Mensaje de error en español
}Validadores
NIF / DNI
validateNIF('12345678Z'); // { valid: true }
validateNIF('12345678A'); // { valid: false, error: 'La letra del NIF no es correcta...' }NIE
validateNIE('X1234567L'); // { valid: true }CIF
validateCIF('A58818501'); // { valid: true }Documento universal (NIF / NIE / CIF)
Detecta automáticamente el tipo y valida:
validateDocumento('12345678Z'); // NIF
validateDocumento('X1234567L'); // NIE
validateDocumento('A58818501'); // CIFIBAN
validateIBAN('ES91 2100 0418 4502 0005 1332'); // { valid: true }Soporta cualquier país. Para IBANs españoles valida que tengan exactamente 24 caracteres.
Teléfono
validateTelefono('612345678'); // { valid: true }
validateTelefono('+34 612 345 678'); // { valid: true }
validateTelefono('0034612345678'); // { valid: true }Acepta prefijo +34 / 0034, espacios, guiones, puntos y paréntesis.
validateEmail('[email protected]'); // { valid: true }Código postal
validateCodigoPostal('28001'); // { valid: true } (Madrid)
validateCodigoPostal('08001'); // { valid: true } (Barcelona)
validateCodigoPostal('00001'); // { valid: false } (provincia inválida)Provincias válidas: 01–52.
Utilidades
getTipoTitular — Persona o empresa
Dado un NIF, NIE o CIF, valida el documento y clasifica al titular:
getTipoTitular('12345678Z'); // { valid: true, tipo: 'persona' }
getTipoTitular('X1234567L'); // { valid: true, tipo: 'persona' }
getTipoTitular('A58818501'); // { valid: true, tipo: 'empresa' }Si el documento es inválido, devuelve valid: false con el error correspondiente (sin campo tipo).
Desarrollo
npm test # Ejecutar tests
npm run build # Compilar TypeScript
npm run docs # Generar llms.txt desde JSDoc
npm run test:watch # Tests en modo watchLicencia
MIT
