Files
elasticsearch-js/grunt/utils.js
Dominykas Blyžė f1de944809 Upgrade to lodash v4 (#660)
* 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"...
2018-05-14 11:37:23 -07:00

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;