qrloop
Version:
Envelop big blob of data into frames that can be displayed in series of QR Codes
33 lines • 1.02 kB
JavaScript
;
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