UNPKG

javascript-barcode-reader

Version:

Simple & Fast Barcode decoder for Browser and Node.js

50 lines 1.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.decoder = void 0; const UPC_SET = { '3211': '0', '2221': '1', '2122': '2', '1411': '3', '1132': '4', '1231': '5', '1114': '6', '1312': '7', '1213': '8', '3112': '9', }; function decoder(lines, type = '13') { let code = ''; // start indicator/reference lines const bar = (lines[0] + lines[1] + lines[2]) / 3; // remove start pattern lines.shift(); lines.shift(); lines.shift(); // remove end pattern lines.pop(); lines.pop(); lines.pop(); // remove middle check pattern // remove middle check pattern if (type === '13') { lines.splice(24, 5); } else { lines.splice(16, 5); } for (let i = 0; i < lines.length; i += 4) { const group = lines.slice(i, i + 4); const digits = [group[0] / bar, group[1] / bar, group[2] / bar, group[3] / bar].map(digit => digit === 1.5 ? 1 : Math.round(digit)); const result = UPC_SET[digits.join('')] || UPC_SET[digits.reverse().join('')]; if (result) { code += result; } else { code += '?'; } } return code; } exports.decoder = decoder; //# sourceMappingURL=index.js.map