{"version":3,"sources":["jsdelivr-header.js","/npm/kinda-web-sql@0.2.5/lib/index.js"],"names":[],"mappings":"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","file":"/npm/kinda-web-sql@0.2.5/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/kinda-web-sql@0.2.5/lib/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nvar _ = require('lodash');\nvar AwaitLock = require('await-lock');\nvar KindaObject = require('kinda-object');\n\nvar KindaWebSQL = KindaObject.extend('KindaWebSQL', function () {\n  this.creator = function () {\n    var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n    if (!options.name) throw new Error('WebSQL database name is missing');\n    var shortName = options.name;\n    var version = options.version || '1.0';\n    var displayName = options.displayName || options.name;\n    var maxSize = options.maxSize || 50 * 1024 * 1024; // 50 MB\n    this.database = openDatabase(shortName, version, displayName, maxSize);\n    this.awaitLock = new AwaitLock();\n  };\n\n  this.lock = function callee$1$0(fn) {\n    return regeneratorRuntime.async(function callee$1$0$(context$2$0) {\n      while (1) switch (context$2$0.prev = context$2$0.next) {\n        case 0:\n          context$2$0.next = 2;\n          return regeneratorRuntime.awrap(this.awaitLock.acquireAsync());\n\n        case 2:\n          context$2$0.prev = 2;\n          context$2$0.next = 5;\n          return regeneratorRuntime.awrap(fn());\n\n        case 5:\n          return context$2$0.abrupt('return', context$2$0.sent);\n\n        case 6:\n          context$2$0.prev = 6;\n\n          this.awaitLock.release();\n          return context$2$0.finish(6);\n\n        case 9:\n        case 'end':\n          return context$2$0.stop();\n      }\n    }, null, this, [[2,, 6, 9]]);\n  };\n\n  this.query = function callee$1$0(sql, values) {\n    return regeneratorRuntime.async(function callee$1$0$(context$2$0) {\n      while (1) switch (context$2$0.prev = context$2$0.next) {\n        case 0:\n          context$2$0.next = 2;\n          return regeneratorRuntime.awrap(this.lock((function callee$2$0() {\n            return regeneratorRuntime.async(function callee$2$0$(context$3$0) {\n              while (1) switch (context$3$0.prev = context$3$0.next) {\n                case 0:\n                  context$3$0.next = 2;\n                  return regeneratorRuntime.awrap(this._query(sql, values));\n\n                case 2:\n                  return context$3$0.abrupt('return', context$3$0.sent);\n\n                case 3:\n                case 'end':\n                  return context$3$0.stop();\n              }\n            }, null, this);\n          }).bind(this)));\n\n        case 2:\n          return context$2$0.abrupt('return', context$2$0.sent);\n\n        case 3:\n        case 'end':\n          return context$2$0.stop();\n      }\n    }, null, this);\n  };\n\n  this._query = function callee$1$0(sql, values) {\n    var result;\n    return regeneratorRuntime.async(function callee$1$0$(context$2$0) {\n      while (1) switch (context$2$0.prev = context$2$0.next) {\n        case 0:\n          values = this.normalizeValues(values);\n          context$2$0.next = 3;\n          return regeneratorRuntime.awrap(this.__query(sql, values));\n\n        case 3:\n          result = context$2$0.sent;\n\n          result = this.normalizeResult(result);\n          return context$2$0.abrupt('return', result);\n\n        case 6:\n        case 'end':\n          return context$2$0.stop();\n      }\n    }, null, this);\n  };\n\n  this.__query = function (sql, values) {\n    var _this = this;\n\n    return new Promise(function (resolve, reject) {\n      var result = undefined;\n      _this.database.transaction(function (tr) {\n        tr.executeSql(sql, values, function (innerTr, res) {\n          result = res;\n        });\n      }, function (err) {\n        // transaction error callback\n        reject(err);\n      }, function () {\n        // transaction success callback\n        resolve(result);\n      });\n    });\n  };\n\n  this.transaction = function callee$1$0(fn) {\n    return regeneratorRuntime.async(function callee$1$0$(context$2$0) {\n      while (1) switch (context$2$0.prev = context$2$0.next) {\n        case 0:\n          context$2$0.next = 2;\n          return regeneratorRuntime.awrap(this.lock((function callee$2$0() {\n            return regeneratorRuntime.async(function callee$2$0$(context$3$0) {\n              while (1) switch (context$3$0.prev = context$3$0.next) {\n                case 0:\n                  context$3$0.next = 2;\n                  return regeneratorRuntime.awrap(fn({ query: this._query.bind(this) }));\n\n                case 2:\n                  return context$3$0.abrupt('return', context$3$0.sent);\n\n                case 3:\n                case 'end':\n                  return context$3$0.stop();\n              }\n            }, null, this);\n          }).bind(this)));\n\n        case 2:\n          return context$2$0.abrupt('return', context$2$0.sent);\n\n        case 3:\n        case 'end':\n          return context$2$0.stop();\n      }\n    }, null, this);\n  };\n\n  this.normalizeValues = function (values) {\n    if (values && values.length) {\n      values = _.map(values, function (val) {\n        if (typeof val === 'undefined') {\n          val = null;\n        } else if (Buffer.isBuffer(val)) {\n          val = 'bin!' + val.toString('hex');\n        }\n        return val;\n      });\n    }\n    return values;\n  };\n\n  this.normalizeResult = function (result) {\n    if (!result) return result;\n    var normalizedResult = [];\n    if (result.rowsAffected != null) {\n      normalizedResult.affectedRows = result.rowsAffected;\n    }\n    try {\n      if (result.insertId != null) {\n        normalizedResult.insertId = result.insertId;\n      }\n    } catch (err) {\n      // noop\n    }\n    if (!result.rows) return normalizedResult;\n\n    var _loop = function (i) {\n      var row = result.rows.item(i);\n      var normalizedRow = {};\n      _.forOwn(row, function (val, key) {\n        // eslint-disable-line no-loop-func\n        if (val && val.substr && val.substr(0, 4) === 'bin!') {\n          val = new Buffer(val.substr(4), 'hex');\n        }\n        normalizedRow[key] = val;\n      });\n      normalizedResult.push(normalizedRow);\n    };\n\n    for (var i = 0; i < result.rows.length; i++) {\n      _loop(i);\n    }\n    return normalizedResult;\n  };\n});\n\nmodule.exports = KindaWebSQL;"]}