You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
827 B
37 lines
827 B
var levelup = require('levelup')
|
|
var encode = require('encoding-down')
|
|
|
|
function packager (leveldown) {
|
|
function Level (location, options, callback) {
|
|
if (typeof location === 'function') {
|
|
callback = location
|
|
} else if (typeof options === 'function') {
|
|
callback = options
|
|
}
|
|
|
|
if (!isObject(options)) {
|
|
options = isObject(location) ? location : {}
|
|
}
|
|
|
|
return levelup(encode(leveldown(location, options), options), options, callback)
|
|
}
|
|
|
|
function isObject (o) {
|
|
return typeof o === 'object' && o !== null
|
|
}
|
|
|
|
['destroy', 'repair'].forEach(function (m) {
|
|
if (typeof leveldown[m] === 'function') {
|
|
Level[m] = function () {
|
|
leveldown[m].apply(leveldown, arguments)
|
|
}
|
|
}
|
|
})
|
|
|
|
Level.errors = levelup.errors
|
|
|
|
return Level
|
|
}
|
|
|
|
module.exports = packager
|