Files
elasticsearch-js/scripts/generate/js_api/spec.js

49 lines
1.1 KiB
JavaScript

var _ = require('../../../src/lib/utils')
var docs = _.requireDir(module, '../../../es_api_spec/api');
var aliases = require('./aliases');
var castNotFoundRE = /exists/;
var usesBulkBodyRE = /^(bulk|msearch)$/;
var defs = [];
// itterate all of the found docs
Object.keys(docs).forEach(function (filename) {
Object.keys(docs[filename]).forEach(function (name) {
var def = docs[filename][name];
def.name = name;
defs.push(def);
})
});
module.exports = _.map(defs, function (def) {
var name = def.name;
var steps = name.split('.');
var spec = {
name: name,
methods: _.map(def.methods, function (m) { return m.toUpperCase(); }),
docUrl: def.documentation,
urlParts: def.url.parts,
params: def.url.params,
urls: _.difference(def.url.paths, aliases[name]),
body: def.body || null,
path2lib: _.repeat('../', steps.length + 1) + 'lib/'
};
if (def.body && def.body.requires) {
spec.needBody = true;
}
if (usesBulkBodyRE.test(name)) {
spec.bulkBody = true;
}
if (castNotFoundRE.test(name)) {
spec.castNotFound = true;
}
return spec;
});