@receeco/pos-agent
Version:
Receeco POS Integration Middleware Agent
64 lines • 2.26 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.QRCodeService = void 0;
const qrcode_1 = __importDefault(require("qrcode"));
const logger_1 = require("../utils/logger");
const logger = (0, logger_1.createLogger)();
class QRCodeService {
async generateQRCode(data, shortCode) {
try {
const finalShortCode = shortCode || this.generateShortCode(data);
const dataUrl = await qrcode_1.default.toDataURL(data, {
errorCorrectionLevel: "M",
margin: 1,
color: {
dark: "#000000",
light: "#FFFFFF",
},
width: 256,
});
const svg = await qrcode_1.default.toString(data, {
type: "svg",
errorCorrectionLevel: "M",
margin: 1,
color: {
dark: "#000000",
light: "#FFFFFF",
},
width: 256,
});
const buffer = await qrcode_1.default.toBuffer(data, {
errorCorrectionLevel: "M",
margin: 1,
color: {
dark: "#000000",
light: "#FFFFFF",
},
width: 256,
});
if (process.env.NODE_ENV === "development") {
logger.info("QR code generated", { shortCode: finalShortCode });
}
return {
dataUrl,
svg,
buffer,
shortCode: finalShortCode,
};
}
catch (error) {
logger.error("QR code generation failed:", error);
throw new Error("Failed to generate QR code");
}
}
generateShortCode(receiptUrl) {
const token = receiptUrl.split("/").pop() || receiptUrl;
const hash = token.replace(/[^a-zA-Z0-9]/g, "").toUpperCase();
return hash.slice(-6).padStart(6, "0");
}
}
exports.QRCodeService = QRCodeService;
//# sourceMappingURL=qr-service.js.map