UNPKG

npu-validator-library

Version:

Uma biblioteca para validação de números CNJ

52 lines (45 loc) 1.8 kB
export namespace CNJValidator { export interface ValidationResult { valid: boolean; error?: string; processo?: { numeroCNJ: string; numeroIdentificador: string; digitoVerificador: string; anoProcesso: string; codigoJustica: string; tribunal: string; comarca: string; }; } export function validate(numeroCNJ: string): ValidationResult { const cleanCNJ = numeroCNJ.replace(/[.\-_]/g, ''); if (cleanCNJ.length !== 20) { return { valid: false, error: 'Erro! O número CNJ deve ter 20 caracteres após remover os caracteres inválidos.' }; } const numeroIdentificador = cleanCNJ.substring(0, 7); const digitoVerificador = cleanCNJ.substring(7, 9); const anoProcesso = cleanCNJ.substring(9, 13); const codigoJustica = cleanCNJ.substring(13, 14); const tribunal = cleanCNJ.substring(14, 16); const comarca = cleanCNJ.substring(16, 20); const operacaoDV = Number(numeroIdentificador) % 97; const operacao1 = Number(`${operacaoDV}${anoProcesso}${codigoJustica}${tribunal}`) % 97; const operacao2 = Number(`${operacao1}${comarca}${digitoVerificador}`) % 97; if (operacao2 !== 1) { return { valid: false, error: 'Erro! O número CNJ informado não é válido.' }; } return { valid: true, processo: { numeroCNJ: cleanCNJ, numeroIdentificador, digitoVerificador, anoProcesso, codigoJustica, tribunal, comarca, }, }; } }