5831bf3d761f1e02e3df6198eab72a2db1730d4caeebe4fdae0c7d2171a84acf.json raw

   1  {"ast":null,"code":"const canPromise = require('./can-promise');\nconst QRCode = require('./core/qrcode');\nconst CanvasRenderer = require('./renderer/canvas');\nconst SvgRenderer = require('./renderer/svg-tag.js');\nfunction renderCanvas(renderFunc, canvas, text, opts, cb) {\n  const args = [].slice.call(arguments, 1);\n  const argsNum = args.length;\n  const isLastArgCb = typeof args[argsNum - 1] === 'function';\n  if (!isLastArgCb && !canPromise()) {\n    throw new Error('Callback required as last argument');\n  }\n  if (isLastArgCb) {\n    if (argsNum < 2) {\n      throw new Error('Too few arguments provided');\n    }\n    if (argsNum === 2) {\n      cb = text;\n      text = canvas;\n      canvas = opts = undefined;\n    } else if (argsNum === 3) {\n      if (canvas.getContext && typeof cb === 'undefined') {\n        cb = opts;\n        opts = undefined;\n      } else {\n        cb = opts;\n        opts = text;\n        text = canvas;\n        canvas = undefined;\n      }\n    }\n  } else {\n    if (argsNum < 1) {\n      throw new Error('Too few arguments provided');\n    }\n    if (argsNum === 1) {\n      text = canvas;\n      canvas = opts = undefined;\n    } else if (argsNum === 2 && !canvas.getContext) {\n      opts = text;\n      text = canvas;\n      canvas = undefined;\n    }\n    return new Promise(function (resolve, reject) {\n      try {\n        const data = QRCode.create(text, opts);\n        resolve(renderFunc(data, canvas, opts));\n      } catch (e) {\n        reject(e);\n      }\n    });\n  }\n  try {\n    const data = QRCode.create(text, opts);\n    cb(null, renderFunc(data, canvas, opts));\n  } catch (e) {\n    cb(e);\n  }\n}\nexports.create = QRCode.create;\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render);\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL);\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n  return SvgRenderer.render(data, opts);\n});","map":null,"metadata":{},"sourceType":"script","externalDependencies":[]}