UNPKG

qrloop

Version:

Envelop big blob of data into frames that can be displayed in series of QR Codes

33 lines 1.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.xor = exports.cutAndPad = void 0; const buffer_1 = require("buffer"); function cutAndPad(data, size) { const numChunks = Math.ceil(data.length / size); const chunks = new Array(numChunks); for (let i = 0, o = 0; i < numChunks; ++i, o += size) { chunks[i] = data.slice(o, o + size); } const last = numChunks - 1; const pad = size - chunks[last].length; if (pad > 0) { chunks[last] = buffer_1.Buffer.concat([ chunks[last], buffer_1.Buffer.from(Array(pad).fill(0)), ]); } return chunks; } exports.cutAndPad = cutAndPad; function xor(buffers) { const result = buffer_1.Buffer.from(buffers[0]); for (let i = 1; i < buffers.length; ++i) { const buffer = buffers[i]; for (let j = 0; j < buffer.length; ++j) { result[j] ^= buffer[j]; } } return result; } exports.xor = xor; //# sourceMappingURL=Buffer.js.map