79 lines
1.8 KiB
JavaScript
79 lines
1.8 KiB
JavaScript
var _ = require('../src/lib/utils');
|
|
|
|
var root = require('find-root')(__dirname);
|
|
var pkg = require(root + '/package.json');
|
|
var stable = pkg.config.supported_es_branches;
|
|
var unstable = pkg.config.unstable_es_branches;
|
|
var branches = [].concat(stable, unstable);
|
|
|
|
var utils = {
|
|
branchSuffix: function (branch) {
|
|
return branch === utils.branches._default ? '' : '_' + _.snakeCase(branch);
|
|
},
|
|
branches: branches,
|
|
stableBranches: stable,
|
|
unstableBranches: unstable,
|
|
browserBranches: stable.slice(0, 5).concat(unstable)
|
|
};
|
|
|
|
utils.branches._default = pkg.config.default_api_branch;
|
|
|
|
/*
|
|
* trim down a version id to the minor version number ('1.5.1' => '1.5')
|
|
*/
|
|
utils.minorVersion = function (version) {
|
|
return version.split('.').slice(0, 2).join('.');
|
|
};
|
|
|
|
/*
|
|
* increment the version based on the release "type"
|
|
*/
|
|
utils.increaseVersion = function (version, type) {
|
|
var i;
|
|
switch (type) {
|
|
case 'major':
|
|
i = 0;
|
|
break;
|
|
case 'minor':
|
|
i = 1;
|
|
break;
|
|
case 'bug':
|
|
case 'patch':
|
|
case 'bugfix':
|
|
i = 2;
|
|
break;
|
|
default:
|
|
throw new TypeError('unexpected version bump type');
|
|
}
|
|
|
|
// breakout the current version
|
|
var next = version.split('.').map(function (n) {
|
|
return parseInt(n, 10);
|
|
});
|
|
|
|
// increment the version type
|
|
next[i] += 1;
|
|
// clear out all following numbers
|
|
for (i ++; i < next.length; i++) next[i] = 0;
|
|
// join back together with '.'
|
|
return next.join('.');
|
|
};
|
|
|
|
/*
|
|
* replace all instances of `replace` with `replacement` without creating a regexp object
|
|
*/
|
|
utils.replaceAll = function (str, replace, replacement) {
|
|
var out = '';
|
|
var remaining = str;
|
|
var i = 0;
|
|
|
|
while (~(i = remaining.indexOf(replace))) {
|
|
out += remaining.substring(0, i) + replacement;
|
|
remaining = remaining.substr(i + replace.length);
|
|
}
|
|
|
|
return out + remaining;
|
|
};
|
|
|
|
module.exports = utils;
|