file-box
Version:
Pack a File into Box for easy move/transfer between servers no matter of where it is.(local path, remote url, or cloud storage)
35 lines • 1.46 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.qrValueToStream = exports.bufferToQrValue = void 0;
const stream_1 = require("stream");
// The npm package of my best choice for QR code decoding on Angular SPA
// https://dev.to/j_sakamoto/the-npm-package-of-my-best-choice-for-qr-code-decoding-on-angular-spa-4747?returning-user=true
const jimp_1 = __importDefault(require("jimp"));
const jsqr_1 = __importDefault(require("jsqr"));
/**
* https://www.npmjs.com/package/qrcode
* Huan(202002): This module is encode only.
*/
const qrcode_1 = require("qrcode");
async function bufferToQrValue(buf) {
const image = await jimp_1.default.read(buf);
const qrCodeImageArray = new Uint8ClampedArray(image.bitmap.data.buffer);
const qrCodeResult = (0, jsqr_1.default)(qrCodeImageArray, image.bitmap.width, image.bitmap.height);
if (qrCodeResult) {
return qrCodeResult.data;
}
else {
throw new Error('bufferToQrcode(buf) fail!');
}
}
exports.bufferToQrValue = bufferToQrValue;
async function qrValueToStream(value) {
const stream = new stream_1.PassThrough();
await (0, qrcode_1.toFileStream)(stream, value); // only support .png for now
return stream;
}
exports.qrValueToStream = qrValueToStream;
//# sourceMappingURL=qrcode.js.map