// QR Code generator using SVG (no fs dependency)
// Polyfill TextEncoder for Bare runtime
if (typeof global.TextEncoder === 'undefined') {
const { TextEncoder, TextDecoder } = require('bare-encoding')
global.TextEncoder = TextEncoder
global.TextDecoder = TextDecoder
}
const QRCode = require('qrcode/lib/core/qrcode')
const SvgRenderer = require('qrcode/lib/renderer/svg')
async function generateQRCodeSVG(text, options = {}) {
console.log('QRCode type:', typeof QRCode)
console.log('QRCode.create type:', typeof QRCode?.create)
console.log('QRCode keys:', Object.keys(QRCode || {}))
// Create QR code data structure
const qrData = QRCode.create(text, options)
// Render to SVG
const svg = await SvgRenderer.render(qrData, {
...options,
type: 'svg'
})
// Convert SVG string to data URL
const svgDataURL = `data:image/svg+xml;base64,${Buffer.from(svg).toString('base64')}`
return svgDataURL
}
module.exports = { generateQRCodeSVG }