{"ast":null,"code":"const Utils = require('./utils');\nfunction clearCanvas(ctx, canvas, size) {\n  ctx.clearRect(0, 0, canvas.width, canvas.height);\n  if (!canvas.style) canvas.style = {};\n  canvas.height = size;\n  canvas.width = size;\n  canvas.style.height = size + 'px';\n  canvas.style.width = size + 'px';\n}\nfunction getCanvasElement() {\n  try {\n    return document.createElement('canvas');\n  } catch (e) {\n    throw new Error('You need to specify a canvas element');\n  }\n}\nexports.render = function render(qrData, canvas, options) {\n  let opts = options;\n  let canvasEl = canvas;\n  if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n    opts = canvas;\n    canvas = undefined;\n  }\n  if (!canvas) {\n    canvasEl = getCanvasElement();\n  }\n  opts = Utils.getOptions(opts);\n  const size = Utils.getImageWidth(qrData.modules.size, opts);\n  const ctx = canvasEl.getContext('2d');\n  const image = ctx.createImageData(size, size);\n  Utils.qrToImageData(image.data, qrData, opts);\n  clearCanvas(ctx, canvasEl, size);\n  ctx.putImageData(image, 0, 0);\n  return canvasEl;\n};\nexports.renderToDataURL = function renderToDataURL(qrData, canvas, options) {\n  let opts = options;\n  if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n    opts = canvas;\n    canvas = undefined;\n  }\n  if (!opts) opts = {};\n  const canvasEl = exports.render(qrData, canvas, opts);\n  const type = opts.type || 'image/png';\n  const rendererOpts = opts.rendererOpts || {};\n  return canvasEl.toDataURL(type, rendererOpts.quality);\n};","map":null,"metadata":{},"sourceType":"script","externalDependencies":[]}