JSPM

@komandero/validadores

1.0.0
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 2
    • Score
      100M100P100Q33637F
    • License MIT

    Validadores comunes para aplicaciones españolas: NIF, NIE, CIF, IBAN, teléfono, email, código postal y más.

    Package Exports

    • @komandero/validadores

    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/validadores

    Uso

    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'); // CIF

    IBAN

    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.

    Email

    validateEmail('user@example.com'); // { 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 watch

    Licencia

    MIT