* npm install lodash-2 Someone handily published a lodash-2 v4.17.4 - it is exactly the same as lodash v4.17.4, so it is safe to use during the migration. * use lodash-2 in tests * update tests to split utils vs lodash * remove Utils.nextTick usage Utils.nextTick with a single argument is the same as process.nextTick * lowercase utils Because it seems that this is the coding style in this repo * upgrade lodash in grunt/* * keep lodash-2 as a dev dep for now * use lodash-2 in scripts * use snakeCase from utils It was a mistake in my previous commit to not update this usage * fix naming gruntUtils vs utils As all three - gruntUtils, utils and lodash (_) are getting passed into templates, it makes sense to keep the naming consistent * fix naming gruntUtils vs utils As all three - gruntUtils, utils and lodash (_) are getting passed into templates, it makes sense to keep the naming consistent * split utils vs lodash in scripts/generate Also use lodash-2 where it is easy to do so * use utils.get until lodash upgrade * remove lodash.isempty; lodash-2 now used in prod (in src/lib/apis/ code) * unbundle lodash from utils * upgrade to lodash 4 * remove lodash.get and lodash.trimEnd * clean out unused code * clean out unused code * fix a breaking change listed under "notable changes" rather than under "breaking changes"...
79 lines
1.9 KiB
JavaScript
79 lines
1.9 KiB
JavaScript
var utils = 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 gruntUtils = {
|
|
branchSuffix: function (branch) {
|
|
return branch === gruntUtils.branches._default ? '' : '_' + utils.snakeCase(branch);
|
|
},
|
|
branches: branches,
|
|
stableBranches: stable,
|
|
unstableBranches: unstable,
|
|
browserBranches: stable.slice(0, 5).concat(unstable)
|
|
};
|
|
|
|
gruntUtils.branches._default = pkg.config.default_api_branch;
|
|
|
|
/*
|
|
* trim down a version id to the minor version number ('1.5.1' => '1.5')
|
|
*/
|
|
gruntUtils.minorVersion = function (version) {
|
|
return version.split('.').slice(0, 2).join('.');
|
|
};
|
|
|
|
/*
|
|
* increment the version based on the release "type"
|
|
*/
|
|
gruntUtils.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
|
|
*/
|
|
gruntUtils.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 = gruntUtils;
|