{"version":3,"sources":["jsdelivr-header.js","/npm/levelup@5.1.1/lib/levelup.js"],"names":[],"mappings":"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","file":"/npm/levelup@5.1.1/lib/levelup.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/levelup@5.1.1/lib/levelup.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\nconst EventEmitter = require('events').EventEmitter\nconst inherits = require('util').inherits\nconst DeferredLevelDOWN = require('deferred-leveldown')\nconst IteratorStream = require('level-iterator-stream')\nconst Batch = require('./batch')\nconst errors = require('level-errors')\nconst supports = require('level-supports')\nconst catering = require('catering')\nconst getCallback = require('./common').getCallback\nconst getOptions = require('./common').getOptions\n\n// TODO: after we drop node 10, also use queueMicrotask() in node\nconst nextTick = require('./next-tick')\n\nconst WriteError = errors.WriteError\nconst ReadError = errors.ReadError\nconst NotFoundError = errors.NotFoundError\nconst OpenError = errors.OpenError\nconst InitializationError = errors.InitializationError\n\nfunction LevelUP (db, options, callback) {\n  if (!(this instanceof LevelUP)) {\n    return new LevelUP(db, options, callback)\n  }\n\n  let error\n\n  EventEmitter.call(this)\n  this.setMaxListeners(Infinity)\n\n  if (typeof options === 'function') {\n    callback = options\n    options = {}\n  }\n\n  options = options || {}\n\n  if (!db || typeof db !== 'object') {\n    error = new InitializationError('First argument must be an abstract-leveldown compliant store')\n    if (typeof callback === 'function') {\n      return nextTick(callback, error)\n    }\n    throw error\n  }\n\n  if (typeof db.status !== 'string') {\n    throw new Error('.status required, old abstract-leveldown')\n  }\n\n  this.options = getOptions(options)\n  this._db = db\n  this.db = null\n  this.open(callback || ((err) => {\n    if (err) this.emit('error', err)\n  }))\n\n  // Create manifest based on deferred-leveldown's\n  this.supports = supports(this.db.supports, {\n    status: true,\n    deferredOpen: true,\n    openCallback: true,\n    promises: true,\n    streams: true\n  })\n\n  // Experimental: enrich levelup interface\n  for (const method of Object.keys(this.supports.additionalMethods)) {\n    if (this[method] != null) continue\n\n    // Don't do this.db[method].bind() because this.db is dynamic.\n    this[method] = function (...args) {\n      return this.db[method](...args)\n    }\n  }\n}\n\nLevelUP.prototype.emit = EventEmitter.prototype.emit\nLevelUP.prototype.once = EventEmitter.prototype.once\ninherits(LevelUP, EventEmitter)\n\n// TODO: tests\nObject.defineProperty(LevelUP.prototype, 'status', {\n  enumerable: true,\n  get () {\n    return this.db.status\n  }\n})\n\n// TODO: tests\nLevelUP.prototype.isOperational = function () {\n  return this.db.status === 'open' || this.db.status === 'opening'\n}\n\nLevelUP.prototype.open = function (opts, callback) {\n  if (typeof opts === 'function') {\n    callback = opts\n    opts = null\n  }\n\n  callback = catering.fromCallback(callback)\n\n  if (!opts) {\n    opts = this.options\n  }\n\n  // 1) Don't check db.status until levelup has opened,\n  // in order for levelup events to be consistent\n  if (this.db && this.isOpen()) {\n    nextTick(callback, null, this)\n    return callback.promise\n  }\n\n  if (this.db && this._isOpening()) {\n    this.once('open', () => { callback(null, this) })\n    return callback.promise\n  }\n\n  // 2) Instead let deferred-leveldown handle already-open cases.\n  // TODO: ideally though, levelup would have its own status\n  this.db = new DeferredLevelDOWN(this._db)\n  this.emit('opening')\n\n  this.db.open(opts, (err) => {\n    if (err) {\n      return callback(new OpenError(err))\n    }\n    this.db = this._db\n    callback(null, this)\n    this.emit('open')\n    this.emit('ready')\n  })\n\n  return callback.promise\n}\n\nLevelUP.prototype.close = function (callback) {\n  callback = catering.fromCallback(callback)\n\n  if (this.isOpen()) {\n    this.db.close((err, ...rest) => {\n      this.emit('closed')\n      callback(err, ...rest)\n    })\n    this.emit('closing')\n  } else if (this.isClosed()) {\n    nextTick(callback)\n  } else if (this.db.status === 'closing') {\n    this.once('closed', callback)\n  } else if (this._isOpening()) {\n    this.once('open', () => {\n      this.close(callback)\n    })\n  }\n\n  return callback.promise\n}\n\n// TODO: remove in future major\nLevelUP.prototype.isOpen = function () {\n  return this.db.status === 'open'\n}\n\n// TODO: remove in future major\nLevelUP.prototype._isOpening = function () {\n  return this.db.status === 'opening'\n}\n\n// TODO: remove in future major\nLevelUP.prototype.isClosed = function () {\n  return (/^clos|new/).test(this.db.status)\n}\n\nLevelUP.prototype.get = function (key, options, callback) {\n  callback = getCallback(options, callback)\n  callback = catering.fromCallback(callback)\n\n  if (maybeError(this, callback)) {\n    return callback.promise\n  }\n\n  options = getOptions(options)\n\n  this.db.get(key, options, function (err, value) {\n    if (err) {\n      if ((/notfound/i).test(err) || err.notFound) {\n        err = new NotFoundError('Key not found in database [' + key + ']', err)\n      } else {\n        err = new ReadError(err)\n      }\n      return callback(err)\n    }\n    callback(null, value)\n  })\n\n  return callback.promise\n}\n\nLevelUP.prototype.getMany = function (keys, options, callback) {\n  return this.db.getMany(keys, options, callback)\n}\n\nLevelUP.prototype.put = function (key, value, options, callback) {\n  callback = getCallback(options, callback)\n  callback = catering.fromCallback(callback)\n\n  if (maybeError(this, callback)) {\n    return callback.promise\n  }\n\n  options = getOptions(options)\n\n  this.db.put(key, value, options, (err) => {\n    if (err) {\n      return callback(new WriteError(err))\n    }\n    this.emit('put', key, value)\n    callback()\n  })\n\n  return callback.promise\n}\n\nLevelUP.prototype.del = function (key, options, callback) {\n  callback = getCallback(options, callback)\n  callback = catering.fromCallback(callback)\n\n  if (maybeError(this, callback)) {\n    return callback.promise\n  }\n\n  options = getOptions(options)\n\n  this.db.del(key, options, (err) => {\n    if (err) {\n      return callback(new WriteError(err))\n    }\n    this.emit('del', key)\n    callback()\n  })\n\n  return callback.promise\n}\n\nLevelUP.prototype.batch = function (arr, options, callback) {\n  if (!arguments.length) {\n    return new Batch(this)\n  }\n\n  if (typeof arr === 'function') callback = arr\n  else callback = getCallback(options, callback)\n\n  callback = catering.fromCallback(callback)\n\n  if (maybeError(this, callback)) {\n    return callback.promise\n  }\n\n  options = getOptions(options)\n\n  this.db.batch(arr, options, (err) => {\n    if (err) {\n      return callback(new WriteError(err))\n    }\n    this.emit('batch', arr)\n    callback()\n  })\n\n  return callback.promise\n}\n\nLevelUP.prototype.iterator = function (options) {\n  return this.db.iterator(options)\n}\n\nLevelUP.prototype.clear = function (options, callback) {\n  callback = getCallback(options, callback)\n  options = getOptions(options)\n  callback = catering.fromCallback(callback)\n\n  if (maybeError(this, callback)) {\n    return callback.promise\n  }\n\n  this.db.clear(options, (err) => {\n    if (err) {\n      return callback(new WriteError(err))\n    }\n    this.emit('clear', options)\n    callback()\n  })\n\n  return callback.promise\n}\n\nLevelUP.prototype.readStream =\nLevelUP.prototype.createReadStream = function (options) {\n  options = Object.assign({ keys: true, values: true }, options)\n  if (typeof options.limit !== 'number') { options.limit = -1 }\n  return new IteratorStream(this.db.iterator(options), options)\n}\n\nLevelUP.prototype.keyStream =\nLevelUP.prototype.createKeyStream = function (options) {\n  return this.createReadStream(Object.assign({}, options, { keys: true, values: false }))\n}\n\nLevelUP.prototype.valueStream =\nLevelUP.prototype.createValueStream = function (options) {\n  return this.createReadStream(Object.assign({}, options, { keys: false, values: true }))\n}\n\nLevelUP.prototype.toString = function () {\n  return 'LevelUP'\n}\n\nLevelUP.prototype.type = 'levelup'\n\n// Expose nextTick for API parity with abstract-leveldown\nLevelUP.prototype._nextTick = nextTick\n\nfunction maybeError (db, callback) {\n  if (!db.isOperational()) {\n    nextTick(callback, new ReadError('Database is not open'))\n    return true\n  }\n\n  return false\n}\n\nLevelUP.errors = errors\nmodule.exports = LevelUP\n"]}