and finally, return to standard mo

This commit is contained in:
spalger
2016-05-19 14:33:04 -07:00
parent ec06c51c5d
commit 8ad271d81c
74 changed files with 594 additions and 597 deletions

View File

@ -1,9 +1,9 @@
module.exports = function (done) {
// var _ = require('../../src/lib/utils');
var _ = require('../../src/lib/utils');
var utils = require('../../grunt/utils');
var chalk = require('chalk');
var fromRoot = _v4.partial(require('path').join, require('find-root')(__dirname));
var fromRoot = _.partial(require('path').join, require('find-root')(__dirname));
var write = require('fs').writeFileSync;
var nodeApiIndex = fromRoot('src/lib/apis/index.js');

View File

@ -1,8 +1,8 @@
module.exports = function (done) {
// var _ = require('../../src/lib/utils');
var _ = require('../../src/lib/utils');
var chalk = require('chalk');
var fromRoot = _v4.partial(require('path').join, require('find-root')(__dirname));
var fromRoot = _.partial(require('path').join, require('find-root')(__dirname));
var write = require('fs').writeFile;
var outputPath = fromRoot('docs/configuration.asciidoc');

View File

@ -1,9 +1,9 @@
module.exports = function (done) {
// var _ = require('../../src/lib/utils');
var _ = require('../../src/lib/utils');
var utils = require('../../grunt/utils');
var chalk = require('chalk');
var fromRoot = _v4.partial(require('path').join, require('find-root')(__dirname));
var fromRoot = _.partial(require('path').join, require('find-root')(__dirname));
var write = require('fs').writeFile;
var outputPath = fromRoot('docs/index.asciidoc');

View File

@ -30,7 +30,7 @@ var argv = require('optimist')
var path = require('path');
var fromRoot = path.join.bind(path, require('find-root')(__dirname));
var utils = require(fromRoot('grunt/utils'));
// var _ = require(fromRoot('src/lib/utils'));
var _ = require(fromRoot('src/lib/utils'));
var esUrl = 'https://github.com/elastic/elasticsearch.git';
var branches;
@ -56,10 +56,10 @@ var paths = {
docsIndex: fromRoot('docs/index.asciidoc'),
apiSrc: 'src/lib/apis',
getArchiveDir: function (branch) {
return fromRoot('src/_elasticsearch_' + _v4.snakeCase(branch));
return fromRoot('src/_elasticsearch_' + _.snakeCase(branch));
},
getArchiveTarball: function (branch) {
return fromRoot('src/_elasticsearch_' + _v4.snakeCase(branch) + '.tar');
return fromRoot('src/_elasticsearch_' + _.snakeCase(branch) + '.tar');
},
getSpecPathInRepo: function (branch) {
return /^v?(master|[2-9]\.)/.test(branch) ? 'rest-api-spec/src/main/resources/rest-api-spec' : 'rest-api-spec';
@ -93,9 +93,9 @@ function dirRegex(dir, regexp) {
}
function dirOpts(dir, opts) {
opts = _v4.isArray(opts) ? opts : [opts];
opts = _.isArray(opts) ? opts : [opts];
return dirFilter(dir, function (name) {
return _v4.includes(opts, name);
return _.includes(opts, name);
});
}
@ -130,7 +130,7 @@ function fetchBranchesStep() {
function findGeneratedApiFiles() {
var anyApiMethodDocs = /^(configuration|index|api_methods).*\.asciidoc$/;
var anyApiJsFiled = /^.+\.js$/;
var allBranches = _v4.isEqual(branches, utils.branches);
var allBranches = _.isEqual(branches, utils.branches);
if (allBranches) {
return [
@ -140,7 +140,7 @@ function findGeneratedApiFiles() {
}
return branches.reduce(function (files, branch) {
var b = _v4.snakeCase(branch);
var b = _.snakeCase(branch);
files.push(dirOpts(paths.docs, 'api_methods_' + b + '.asciidoc'));
@ -166,7 +166,7 @@ function clearGeneratedFiles() {
generatedFiles.push(dirRegex(paths.src, esArchives));
var rmSteps = _v4.chain(generatedFiles)
var rmSteps = _.chain(generatedFiles)
.flattenDeep()
.uniq()
.map(function (path) {
@ -195,7 +195,7 @@ function createArchive(branch) {
var dir = paths.getArchiveDir(branch);
var tarball = paths.getArchiveTarball(branch);
var specPathInRepo = paths.getSpecPathInRepo(branch);
var subDirCount = _v4.countBy(specPathInRepo, _v4.partial(_v4.eq, '/')).true || 0;
var subDirCount = _.countBy(specPathInRepo, _.partial(_.eq, '/')).true || 0;
if (isDirectory(dir)) {
console.log(branch + ' archive already exists');
@ -227,7 +227,7 @@ var steps = [
].filter(Boolean);
branches.forEach(function (branch) {
steps.push(_v4.partial(async.series, [
steps.push(_.partial(async.series, [
removePrevArchive(branch),
createArchive(branch),
generateStep(branch)

View File

@ -3,7 +3,7 @@ module.exports = function (branch, done) {
* Read the API actions form the rest-api-spec repo.
* @type {[type]}
*/
// var _ = require('../../src/lib/utils');
var _ = require('../../src/lib/utils');
var utils = require('../../grunt/utils');
var fs = require('fs');
var async = require('async');
@ -19,7 +19,7 @@ module.exports = function (branch, done) {
var docVars; // slightly modified clone of apiSpec for the docs
var branchSuffix = utils.branchSuffix(branch);
var esDir = fromRoot('src/_elasticsearch_' + _v4.snakeCase(branch));
var esDir = fromRoot('src/_elasticsearch_' + _.snakeCase(branch));
var version = Version.fromBranch(branch);
var overrides = version.mergeOpts(require('./overrides'), {
@ -71,27 +71,27 @@ module.exports = function (branch, done) {
});
// collect the namespaces from the action locations
var namespaces = _v4.filter(_v4.map(actions, function (action) {
var namespaces = _.filter(_.map(actions, function (action) {
if (~action.location.indexOf('.')) {
var path = action.location.split('.').slice(0, -1);
_v4.pull(path, 'prototype');
_.pull(path, 'prototype');
return path.join('.');
}
}));
// seperate the proxy actions
var groups = _v4.groupBy(actions, function (action) {
var groups = _.groupBy(actions, function (action) {
return action.proxy ? 'proxies' : 'normal';
});
apiSpec = {
actions: groups.normal || [],
proxies: groups.proxies || [],
namespaces: _v4.uniq(namespaces.sort()),
namespaces: _.uniq(namespaces.sort()),
clientActionModifier: overrides.clientActionModifier
};
var create = _v4.assign({}, _v4.find(apiSpec.actions, { name: 'index' }), {
var create = _.assign({}, _.find(apiSpec.actions, { name: 'index' }), {
name: 'create',
location: 'create',
proxy: 'index',
@ -119,7 +119,7 @@ module.exports = function (branch, done) {
}
function writeApiFile(done) {
var outputPath = fromRoot('src/lib/apis/' + _v4.snakeCase(branch) + '.js');
var outputPath = fromRoot('src/lib/apis/' + _.snakeCase(branch) + '.js');
fs.writeFileSync(outputPath, templates.apiFile(apiSpec));
console.log(chalk.white.bold('wrote'), apiSpec.actions.length, 'api actions to', outputPath);
done();
@ -145,8 +145,8 @@ module.exports = function (branch, done) {
// merge the actions and proxies to make
// itteration easir and keep them in order
docVars = _v4.omit(apiSpec, 'proxies');
docVars.actions = _v4.sortBy(
docVars = _.omit(apiSpec, 'proxies');
docVars.actions = _.sortBy(
[].concat(apiSpec.actions).concat(apiSpec.proxies),
'name'
);
@ -174,9 +174,9 @@ module.exports = function (branch, done) {
var actions = [];
// itterate all of the specs within the file, should only be one
_v4.each(spec, function (def, name) {
_.each(spec, function (def, name) {
// camelcase the name
name = _v4.map(name.split('.'), _v4.camelCase).join('.');
name = _.map(name.split('.'), _.camelCase).join('.');
if (name === 'cat.aliases') {
def.documentation = 'http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/cat.html';
@ -185,23 +185,23 @@ module.exports = function (branch, done) {
var steps = name.split('.');
function transformParamKeys(note, param, key) {
var cmlKey = _v4.camelCase(key);
var cmlKey = _.camelCase(key);
if (cmlKey !== key) {
param.name = key;
}
note[cmlKey] = param;
}
def.url.params = _v4.transform(def.url.params, transformParamKeys, {});
def.url.parts = _v4.transform(def.url.parts, transformParamKeys, {});
def.url.params = _.transform(def.url.params, transformParamKeys, {});
def.url.parts = _.transform(def.url.parts, transformParamKeys, {});
var allParams = _v4.extend({}, def.url.params, def.url.parts);
var allParams = _.extend({}, def.url.params, def.url.parts);
var spec = {
name: name,
methods: _v4.map(def.methods, function (m) { return m.toUpperCase(); }),
methods: _.map(def.methods, function (m) { return m.toUpperCase(); }),
params: def.url.params,
body: def.body || null,
path2lib: _v4.repeat('../', steps.length + 1) + 'lib/'
path2lib: _.repeat('../', steps.length + 1) + 'lib/'
};
if (def.body && def.body.required) {
@ -216,9 +216,9 @@ module.exports = function (branch, done) {
spec.requestTimeout = 3000;
}
var urls = _v4.difference(def.url.paths, overrides.aliases[name]);
var urls = _.difference(def.url.paths, overrides.aliases[name]);
var urlSignatures = [];
urls = _v4.map(urls, function (url) {
urls = _.map(urls, function (url) {
var optionalVars = {};
var requiredVars = {};
var param;
@ -231,47 +231,47 @@ module.exports = function (branch, done) {
}
while (match = urlParamRE.exec(url)) {
name = _v4.camelCase(match[1]);
name = _.camelCase(match[1]);
param = def.url.parts[name] || {};
target = (param.required || !param.default) ? requiredVars : optionalVars;
target[name] = _v4.omit(param, 'required', 'description', 'name');
target[name] = _.omit(param, 'required', 'description', 'name');
}
urlSignatures.push(_v4.union(_v4.keys(optionalVars), _v4.keys(requiredVars)).sort().join(':'));
urlSignatures.push(_.union(_.keys(optionalVars), _.keys(requiredVars)).sort().join(':'));
return _v4.omitBy({
return _.omitBy({
fmt: url.replace(urlParamRE, function (full, match) {
return '<%=' + _v4.camelCase(match) + '%>';
return '<%=' + _.camelCase(match) + '%>';
}),
opt: _v4.size(optionalVars) ? optionalVars : null,
req: _v4.size(requiredVars) ? requiredVars : null,
sortOrder: _v4.size(requiredVars) * -1
opt: _.size(optionalVars) ? optionalVars : null,
req: _.size(requiredVars) ? requiredVars : null,
sortOrder: _.size(requiredVars) * -1
}, function (v) {
return !v;
});
});
if (urlSignatures.length !== _v4.uniq(urlSignatures).length) {
if (urlSignatures.length !== _.uniq(urlSignatures).length) {
throw new Error(
'Multiple URLS with the same signature detected for ' +
spec.name +
'\n' +
_v4.map(urls, 'fmt').join('\n') +
_.map(urls, 'fmt').join('\n') +
'\n'
);
}
if (urls.length > 1) {
spec.urls = _v4.map(_v4.sortBy(urls, 'sortOrder'), function (url) {
return _v4.omit(url, 'sortOrder');
spec.urls = _.map(_.sortBy(urls, 'sortOrder'), function (url) {
return _.omit(url, 'sortOrder');
});
} else {
spec.url = _v4.omit(urls[0], 'sortOrder');
spec.url = _.omit(urls[0], 'sortOrder');
}
spec.params = _v4.transform(spec.params, function (note, param, name) {
spec.params = _.transform(spec.params, function (note, param, name) {
// param.name = name;
note[name] = _v4.pick(param, [
note[name] = _.pick(param, [
'type', 'default', 'options', 'required', 'name'
]);
}, {});
@ -280,7 +280,7 @@ module.exports = function (branch, done) {
spec.paramAsBody = overrides.paramAsBody[name];
}
if (_v4.size(spec.params) === 0) {
if (_.size(spec.params) === 0) {
delete spec.params;
}
@ -290,7 +290,7 @@ module.exports = function (branch, done) {
var action = {
_methods: spec.methods,
spec: _v4.pick(spec, [
spec: _.pick(spec, [
'params',
'url',
'urls',

View File

@ -9,21 +9,21 @@ var api = module.exports = {};
api._namespaces = <%= stringify(namespaces) %>;<%
_v4.each(actions, function (action) {
_.each(actions, function (action) {
var namespace = action.location.split('.').shift();
if (_.includes(namespaces, namespace)) {
_v4.pull(namespaces, namespace);
_.pull(namespaces, namespace);
%>
api.<%= namespace %> = namespace();<%
}%>
<%= _v4.trimEnd(partials.client_action(action)) %><%
<%= _.trimEnd(partials.client_action(action)) %><%
});
_v4.each(proxies, function (action) {%>
_.each(proxies, function (action) {%>
<%= _v4.trimEnd(partials.client_action_proxy(action)) %><%
<%= _.trimEnd(partials.client_action_proxy(action)) %><%
});
%>

View File

@ -2,7 +2,7 @@ module.exports = {
<%
branches.forEach(function (branch, i, list) {
var req = "require('./" + _v4.snakeCase(branch) + "')";
var req = "require('./" + _.snakeCase(branch) + "')";
if (branch === utils.branches._default) {
print(" '_default': " + req + ',\n');
}

View File

@ -7,8 +7,8 @@ NOTE: This is currently the default API, but in upcoming versions that will chan
NOTE: At this time, you must opt into the <%= branch %> API by setting the `apiVersion` config parameter.
<% }
actions = _v4.sortBy(actions, 'namespace');
_v4.each(actions, function (action) {
actions = _.sortBy(actions, 'namespace');
_.each(actions, function (action) {
action.index = 'api-' + action.name.toLowerCase().replace(/[^\w]+/g, '-') + branchSuffix;
%>
@ -27,16 +27,16 @@ The default method is `<%= action.spec.method || 'GET' %>` and the usual <<api-c
<%= action.examples %>
<% if (_v4.size(action.allParams)) { %>
<% if (_.size(action.allParams)) { %>
*Params*
[horizontal]<%
_v4.each(action.allParams, function (param, paramName) { %>
_.each(action.allParams, function (param, paramName) { %>
`<%= paramWithDefault(paramName, param.default) %>`::
`<%= paramType(param.type) %>` -- <%= joinParagraphs(param.description || '', 4) %><%
if (param.type === 'enum') {%>
Options:::<%
_v4.each(param.options, function (opt) {%>
_.each(param.options, function (opt) {%>
* `"<%= opt %>"`<%
});%>
<%

View File

@ -2,7 +2,7 @@
* Perform a [<%= name %>](<%= docUrl %>) request
*
* @param {Object} params - An object with parameters used to carry out this action<%
_v4.each(allParams, function(param, paramName) { %>
_.each(allParams, function(param, paramName) { %>
* @param {<%= paramType(param.type) %>} <%= paramWithDefault('params.' + paramName, param.default) %><%
if (param.description) {
%> - <%= param.description %><%

View File

@ -2,7 +2,7 @@
* Perform a [<%= name %>](<%= docUrl %>) request
*
* @param {Object} params - An object with parameters used to carry out this action<%
_v4.each(allParams, function(param, paramName) { %>
_.each(allParams, function(param, paramName) { %>
* @param {<%= paramType(param.type) %>} <%= paramWithDefault('params.' + paramName, param.default) %><%
if (param.description) {
%> - <%= param.description %><%

View File

@ -303,7 +303,7 @@ var client = new elasticsearch.Client({
selector: function (hosts) {
var myCountry = process.env.COUNTRY;
// first try to find a node that is in the same country
var selection = _v4.find(nodes, function (node) {
var selection = _.find(nodes, function (node) {
return node.host.country === myCountry;
});

View File

@ -1,5 +1,5 @@
// var _ = require('../../../src/lib/utils');
var _ = require('../../../src/lib/utils');
var utils = require('../../../grunt/utils');
var fs = require('fs');
var path = require('path');
@ -41,10 +41,10 @@ var templateGlobals = {
stringify: stringify,
_v4: _v4,
_: _,
indent: function (block, spaces) {
var indent = _v4.repeat(' ', spaces);
var indent = _.repeat(' ', spaces);
return block.split('\n').map(function (line) {
return indent + line;
}).join('\n');
@ -77,7 +77,7 @@ var templateGlobals = {
case 'list':
return 'String, String[], Boolean';
default:
return _v4.ucfirst(type);
return _.ucfirst(type);
}
},
@ -97,7 +97,7 @@ var templateGlobals = {
fs.readdirSync(path.resolve(__dirname)).forEach(function (filename) {
var name = filename.replace(/\..+$/, '');
if (name !== 'index') {
templates[name] = _v4.template(
templates[name] = _.template(
fs.readFileSync(path.resolve(__dirname, filename), 'utf8'),
{
imports: templateGlobals

View File

@ -8,10 +8,10 @@ module.exports = function (branch, done) {
var chalk = require('chalk');
var path = require('path');
var fromRoot = path.join.bind(path, require('find-root')(__dirname));
// var _ = require(fromRoot('src/lib/utils'));
var _ = require(fromRoot('src/lib/utils'));
var tests = {}; // populated in readYamlTests
var esDir = fromRoot('src/_elasticsearch_' + _v4.snakeCase(branch));
var esDir = fromRoot('src/_elasticsearch_' + _.snakeCase(branch));
// generate the yaml tests
async.series([
@ -43,14 +43,14 @@ module.exports = function (branch, done) {
}
function writeYamlTests(done) {
var testFile = fromRoot('test/integration/yaml_suite/yaml_tests_' + _v4.snakeCase(branch) + '.json');
var testFile = fromRoot('test/integration/yaml_suite/yaml_tests_' + _.snakeCase(branch) + '.json');
fs.writeFileSync(testFile, JSON.stringify(tests, null, ' '), 'utf8');
console.log(chalk.white.bold('wrote') + ' YAML tests as JSON to', testFile);
done();
}
function writeTestIndex(done) {
var file = fromRoot('test/integration/yaml_suite/index_' + _v4.snakeCase(branch) + '.js');
var file = fromRoot('test/integration/yaml_suite/index_' + _.snakeCase(branch) + '.js');
fs.writeFileSync(file, 'require(\'./run\')(\'' + branch + '\');\n', 'utf8');
console.log(chalk.white.bold('wrote') + ' YAML index to', file);
done();