UNPKG

boleto_parser

Version:

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

37 lines 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.convertBarcodeToLine = void 0; const barcode_to_line_1 = require("../constants/barcode-to-line"); const utils_1 = require("../utils/utils"); const get_formatted_line_1 = require("./get_formatted_line"); /** * Converte uma numeração de um código de barras para uma linha digitável */ function convertBarcodeToLine(barcode, formatted = false) { let line = splitLine(barcode, barcode_to_line_1.barcodeToLineBounds); const parts = { line, part1: line.substring(0, 9), part2: line.substring(9, 19), part3: line.substring(19, 29), dv: line.substring(29, 30), part4: line.substring(30, 44), }; line = (0, utils_1.insertAt)(line, 9, (0, utils_1.mod10)(parts.part1)); // DV1 line = (0, utils_1.insertAt)(line, 20, (0, utils_1.mod10)(parts.part2)); // DV2 line = (0, utils_1.insertAt)(line, 31, (0, utils_1.mod10)(parts.part3)); // DV3 if (formatted) { return (0, get_formatted_line_1.getFormattedLine)(line); } return line; } exports.convertBarcodeToLine = convertBarcodeToLine; /** * Separa os dados do código de barras em partes de acordo com * as definições de cada banco * */ function splitLine(barcode, parts, separator = "") { return parts.reduce((accu, part) => accu + barcode.substring(part[0], part[1]) + separator, ""); } //# sourceMappingURL=convert_barcode_to_line.js.map