2 var semver = require('semver');
3 var binVersion = require('bin-version');
4 var semverTruncate = require('semver-truncate');
6 module.exports = function (bin, versionRange, cb) {
7 if (typeof bin !== 'string' || typeof versionRange !== 'string') {
8 throw new Error('`binary` and `versionRange` required');
11 if (!semver.validRange(versionRange)) {
12 return cb(new Error('Invalid version range'));
15 binVersion(bin, function (err, binVersion) {
20 if (!semver.satisfies(semverTruncate(binVersion, 'patch'), versionRange)) {
21 err = new Error(bin + ' ' + binVersion + ' does not satisfy the version requirement of ' + versionRange);
22 err.name = 'InvalidBinVersion';