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.

40 lines
985 B

var LevelUPError = require('level-errors').LevelUPError
var format = require('util').format
var leveldown
function getLevelDOWN () {
if (leveldown) { return leveldown }
var requiredVersion = require('../package.json').devDependencies.leveldown
var leveldownVersion
try {
leveldownVersion = require('leveldown/package.json').version
} catch (e) {
throw requireError(e)
}
if (!require('semver').satisfies(leveldownVersion, requiredVersion)) {
throw new LevelUPError(
'Installed version of LevelDOWN (' +
leveldownVersion +
') does not match required version (' +
requiredVersion +
')'
)
}
try {
leveldown = require('leveldown')
return leveldown
} catch (e) {
throw requireError(e)
}
}
function requireError (e) {
var template = 'Failed to require LevelDOWN (%s). Try `npm install leveldown` if it\'s missing'
return new LevelUPError(format(template, e.message))
}
module.exports = getLevelDOWN