Ember CLI Version Checker
Makes it easier to determine if a compatible version of a given NPM or Bower package is present.
Usage
assertAbove
Throws an error with the given message if a minimum version isn't met.
var VersionChecker = require('ember-cli-version-checker');
module.exports = {
name: 'awesome-addon',
init: function() {
this._super && this._super.init.apply(this, arguments);
var checker = new VersionChecker(this);
checker.for('ember-cli', 'npm').assertAbove('2.0.0');
}
};
You can also provide a specific message as the third argument to assertAbove
if you'd like to customize the output.
var VersionChecker = require('ember-cli-version-checker');
module.exports = {
name: 'awesome-addon',
init: function() {
var checker = new VersionChecker(this);
checker.for('ember-cli', 'npm').assertAbove('2.0.0', 'To use awesome-addon you must have ember-cli 2.0.0');
}
};
isAbove
Returns true
if the packages version is above the specified comparison range.
var VersionChecker = require('ember-cli-version-checker');
module.exports = {
name: 'awesome-addon',
init: function() {
var checker = new VersionChecker(this);
var dep = checker.for('ember-cli', 'npm');
if (dep.isAbove('2.0.0')) {
} else {
};
}
};
Real World Example
You want to provide two different sets of templates, based on the currently running Ember version.
var path = require('path');
var VersionChecker = require('ember-cli-version-checker');
module.exports = {
name: 'awesome-addon',
treeForAddonTemplates: function(tree) {
var checker = new VersionChecker(this);
var dep = checker.for('ember', 'bower');
var baseTemplatesPath = path.join(this.root, 'addon/templates');
if (dep.satisfies('>= 1.13.0') {
return this.treeGenerator(path.join(baseTemplatesPath, 'current'));
} else {
return this.treeGenerator(path.join(baseTemplatesPath, 'legacy'));
}
}
};
forEmber
Since ember introduced the ember-source
from NPM, ember has two ways to be
shipped. One from bower ember
and other from NPM ember-source
. The
function forEmber
will look for ember-source
from NPM, if it doesn't
find it, it will look for ember
in bower.
var VersionChecker = require('ember-cli-version-checker');
module.exports = {
name: 'awesome-addon',
init: function() {
var checker = new VersionChecker(this);
var ember = checker.forEmber();
if (ember.isAbove('2.10.0')) {
};
}
};