UNPKG

@receeco/pos-agent

Version:

Receeco POS Integration Middleware Agent

64 lines 2.26 kB
"use strict"; 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