boleto_parser
Version:
Analisador de código de barras e linha digitável de boletos
34 lines • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isLine = void 0;
const utils_1 = require("../utils/utils");
const convert_line_to_barcode_1 = require("./convert_line_to_barcode");
const is_barcode_1 = require("./is_barcode");
/**
* - Verifica se o código informado é uma linha digitável
* - Verifica se os dígitos verificadores estão corretos
*/
function isLine(code) {
const line = code.replace(/[^0-9]+/g, "");
if (line.length !== 47)
return false;
return ((0, is_barcode_1.isBarcodeValid)((0, convert_line_to_barcode_1.convertLineToBarcode)(line)) &&
checkSumValidate(line, [0, 9], [9, 10]) &&
checkSumValidate(line, [10, 20], [20, 21]) &&
checkSumValidate(line, [21, 31], [31, 32]));
}
exports.isLine = isLine;
/**
* Valida os dígitos verificadores das 3 primeiras partes da linha digitável
*
* @param line Linha digitável
* @param lineBounds Limites da parte da linha digitável que contém o trecho a validar o DV
* @param checksumBounds Limites que contém o DV
* @returns
*/
function checkSumValidate(line, lineBounds, checksumBounds) {
const part = line.substring(lineBounds[0], lineBounds[1]);
const checksum = line.substring(checksumBounds[0], checksumBounds[1]);
return (0, utils_1.mod10)(part) === +checksum;
}
//# sourceMappingURL=is_line.js.map