ec-validator-dni
Version:
Validation of Ecuadorian identification documents (ID card and RUC)
28 lines (26 loc) • 909 B
text/typescript
import { algorithm10, initValidate, validateCodeProvince, validateThirdDigit } from '../helpers';
import { Result, TypeIdentification } from '../interfaces';
/**
* Validates an Ecuadorian DNI (Cédula de Identidad) number.
* @param {string} dni - The DNI number to validate
*
* @returns {Result} An object containing:
* - isValid: boolean indicating if the DNI is valid
* - errorMessage?: string with error details if validation fails
*/
export const dniValidation = (dni: string): Result => {
try {
initValidate( dni, TypeIdentification.DNI );
validateCodeProvince(dni.substring(0, 2));
validateThirdDigit(dni.substring(2, 3), TypeIdentification.DNI);
algorithm10(dni.substring(0, 9), dni.substring(9, 10));
} catch (error: any) {
return {
isValid: false,
errorMessage: error.message,
}
}
return {
isValid: true,
};
}