1234567891011121314151617181920212223242526272829 |
- 'use strict';
- var semver = require('semver');
- var binVersion = require('bin-version');
- var semverTruncate = require('semver-truncate');
- module.exports = function (bin, versionRange, cb) {
- if (typeof bin !== 'string' || typeof versionRange !== 'string') {
- throw new Error('`binary` and `versionRange` required');
- }
- if (!semver.validRange(versionRange)) {
- return cb(new Error('Invalid version range'));
- }
- binVersion(bin, function (err, binVersion) {
- if (err) {
- return cb(err);
- }
- if (!semver.satisfies(semverTruncate(binVersion, 'patch'), versionRange)) {
- err = new Error(bin + ' ' + binVersion + ' does not satisfy the version requirement of ' + versionRange);
- err.name = 'InvalidBinVersion';
- return cb(err);
- }
- cb();
- });
- };
|