UNPKG

boleto_parser

Version:

Analisador de código de barras e linha digitável de boletos

34 lines 1.4 kB
"use strict"; 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