Improve child performances (#1314)
This commit is contained in:
committed by
delvedor
parent
35eb96e2b4
commit
3db1bed4bd
466
api/index.js
466
api/index.js
@ -19,17 +19,179 @@
|
||||
|
||||
'use strict'
|
||||
|
||||
const assert = require('assert')
|
||||
const bulkApi = require('./api/bulk')
|
||||
const CatApi = require('./api/cat')
|
||||
const clearScrollApi = require('./api/clear_scroll')
|
||||
const ClusterApi = require('./api/cluster')
|
||||
const countApi = require('./api/count')
|
||||
const createApi = require('./api/create')
|
||||
const DanglingIndicesApi = require('./api/dangling_indices')
|
||||
const deleteApi = require('./api/delete')
|
||||
const deleteByQueryApi = require('./api/delete_by_query')
|
||||
const deleteByQueryRethrottleApi = require('./api/delete_by_query_rethrottle')
|
||||
const deleteScriptApi = require('./api/delete_script')
|
||||
const existsApi = require('./api/exists')
|
||||
const existsSourceApi = require('./api/exists_source')
|
||||
const explainApi = require('./api/explain')
|
||||
const fieldCapsApi = require('./api/field_caps')
|
||||
const getApi = require('./api/get')
|
||||
const getScriptApi = require('./api/get_script')
|
||||
const getScriptContextApi = require('./api/get_script_context')
|
||||
const getScriptLanguagesApi = require('./api/get_script_languages')
|
||||
const getSourceApi = require('./api/get_source')
|
||||
const indexApi = require('./api/index')
|
||||
const IndicesApi = require('./api/indices')
|
||||
const infoApi = require('./api/info')
|
||||
const IngestApi = require('./api/ingest')
|
||||
const mgetApi = require('./api/mget')
|
||||
const msearchApi = require('./api/msearch')
|
||||
const msearchTemplateApi = require('./api/msearch_template')
|
||||
const mtermvectorsApi = require('./api/mtermvectors')
|
||||
const NodesApi = require('./api/nodes')
|
||||
const pingApi = require('./api/ping')
|
||||
const putScriptApi = require('./api/put_script')
|
||||
const rankEvalApi = require('./api/rank_eval')
|
||||
const reindexApi = require('./api/reindex')
|
||||
const reindexRethrottleApi = require('./api/reindex_rethrottle')
|
||||
const renderSearchTemplateApi = require('./api/render_search_template')
|
||||
const scriptsPainlessExecuteApi = require('./api/scripts_painless_execute')
|
||||
const scrollApi = require('./api/scroll')
|
||||
const searchApi = require('./api/search')
|
||||
const searchShardsApi = require('./api/search_shards')
|
||||
const searchTemplateApi = require('./api/search_template')
|
||||
const SnapshotApi = require('./api/snapshot')
|
||||
const TasksApi = require('./api/tasks')
|
||||
const termvectorsApi = require('./api/termvectors')
|
||||
const updateApi = require('./api/update')
|
||||
const updateByQueryApi = require('./api/update_by_query')
|
||||
const updateByQueryRethrottleApi = require('./api/update_by_query_rethrottle')
|
||||
const AsyncSearchApi = require('./api/async_search')
|
||||
const AutoscalingApi = require('./api/autoscaling')
|
||||
const CcrApi = require('./api/ccr')
|
||||
const closePointInTimeApi = require('./api/close_point_in_time')
|
||||
const EnrichApi = require('./api/enrich')
|
||||
const EqlApi = require('./api/eql')
|
||||
const GraphApi = require('./api/graph')
|
||||
const IlmApi = require('./api/ilm')
|
||||
const LicenseApi = require('./api/license')
|
||||
const MigrationApi = require('./api/migration')
|
||||
const MlApi = require('./api/ml')
|
||||
const MonitoringApi = require('./api/monitoring')
|
||||
const openPointInTimeApi = require('./api/open_point_in_time')
|
||||
const RollupApi = require('./api/rollup')
|
||||
const SearchableSnapshotsApi = require('./api/searchable_snapshots')
|
||||
const SecurityApi = require('./api/security')
|
||||
const SlmApi = require('./api/slm')
|
||||
const SqlApi = require('./api/sql')
|
||||
const SslApi = require('./api/ssl')
|
||||
const TransformApi = require('./api/transform')
|
||||
const WatcherApi = require('./api/watcher')
|
||||
const XpackApi = require('./api/xpack')
|
||||
|
||||
const { kConfigurationError } = require('./utils')
|
||||
const kCat = Symbol('Cat')
|
||||
const kCluster = Symbol('Cluster')
|
||||
const kDanglingIndices = Symbol('DanglingIndices')
|
||||
const kIndices = Symbol('Indices')
|
||||
const kIngest = Symbol('Ingest')
|
||||
const kNodes = Symbol('Nodes')
|
||||
const kSnapshot = Symbol('Snapshot')
|
||||
const kTasks = Symbol('Tasks')
|
||||
const kAsyncSearch = Symbol('AsyncSearch')
|
||||
const kAutoscaling = Symbol('Autoscaling')
|
||||
const kCcr = Symbol('Ccr')
|
||||
const kEnrich = Symbol('Enrich')
|
||||
const kEql = Symbol('Eql')
|
||||
const kGraph = Symbol('Graph')
|
||||
const kIlm = Symbol('Ilm')
|
||||
const kLicense = Symbol('License')
|
||||
const kMigration = Symbol('Migration')
|
||||
const kMl = Symbol('Ml')
|
||||
const kMonitoring = Symbol('Monitoring')
|
||||
const kRollup = Symbol('Rollup')
|
||||
const kSearchableSnapshots = Symbol('SearchableSnapshots')
|
||||
const kSecurity = Symbol('Security')
|
||||
const kSlm = Symbol('Slm')
|
||||
const kSql = Symbol('Sql')
|
||||
const kSsl = Symbol('Ssl')
|
||||
const kTransform = Symbol('Transform')
|
||||
const kWatcher = Symbol('Watcher')
|
||||
const kXpack = Symbol('Xpack')
|
||||
|
||||
function ESAPI (opts) {
|
||||
assert(opts.makeRequest, 'Missing makeRequest function')
|
||||
assert(opts.ConfigurationError, 'Missing ConfigurationError class')
|
||||
assert(opts.result, 'Missing default result object')
|
||||
this[kConfigurationError] = opts.ConfigurationError
|
||||
this[kCat] = null
|
||||
this[kCluster] = null
|
||||
this[kDanglingIndices] = null
|
||||
this[kIndices] = null
|
||||
this[kIngest] = null
|
||||
this[kNodes] = null
|
||||
this[kSnapshot] = null
|
||||
this[kTasks] = null
|
||||
this[kAsyncSearch] = null
|
||||
this[kAutoscaling] = null
|
||||
this[kCcr] = null
|
||||
this[kEnrich] = null
|
||||
this[kEql] = null
|
||||
this[kGraph] = null
|
||||
this[kIlm] = null
|
||||
this[kLicense] = null
|
||||
this[kMigration] = null
|
||||
this[kMl] = null
|
||||
this[kMonitoring] = null
|
||||
this[kRollup] = null
|
||||
this[kSearchableSnapshots] = null
|
||||
this[kSecurity] = null
|
||||
this[kSlm] = null
|
||||
this[kSql] = null
|
||||
this[kSsl] = null
|
||||
this[kTransform] = null
|
||||
this[kWatcher] = null
|
||||
this[kXpack] = null
|
||||
}
|
||||
|
||||
const { result } = opts
|
||||
opts.handleError = handleError
|
||||
opts.snakeCaseKeys = snakeCaseKeys
|
||||
ESAPI.prototype.bulk = bulkApi
|
||||
ESAPI.prototype.clearScroll = clearScrollApi
|
||||
ESAPI.prototype.count = countApi
|
||||
ESAPI.prototype.create = createApi
|
||||
ESAPI.prototype.delete = deleteApi
|
||||
ESAPI.prototype.deleteByQuery = deleteByQueryApi
|
||||
ESAPI.prototype.deleteByQueryRethrottle = deleteByQueryRethrottleApi
|
||||
ESAPI.prototype.deleteScript = deleteScriptApi
|
||||
ESAPI.prototype.exists = existsApi
|
||||
ESAPI.prototype.existsSource = existsSourceApi
|
||||
ESAPI.prototype.explain = explainApi
|
||||
ESAPI.prototype.fieldCaps = fieldCapsApi
|
||||
ESAPI.prototype.get = getApi
|
||||
ESAPI.prototype.getScript = getScriptApi
|
||||
ESAPI.prototype.getScriptContext = getScriptContextApi
|
||||
ESAPI.prototype.getScriptLanguages = getScriptLanguagesApi
|
||||
ESAPI.prototype.getSource = getSourceApi
|
||||
ESAPI.prototype.index = indexApi
|
||||
ESAPI.prototype.info = infoApi
|
||||
ESAPI.prototype.mget = mgetApi
|
||||
ESAPI.prototype.msearch = msearchApi
|
||||
ESAPI.prototype.msearchTemplate = msearchTemplateApi
|
||||
ESAPI.prototype.mtermvectors = mtermvectorsApi
|
||||
ESAPI.prototype.ping = pingApi
|
||||
ESAPI.prototype.putScript = putScriptApi
|
||||
ESAPI.prototype.rankEval = rankEvalApi
|
||||
ESAPI.prototype.reindex = reindexApi
|
||||
ESAPI.prototype.reindexRethrottle = reindexRethrottleApi
|
||||
ESAPI.prototype.renderSearchTemplate = renderSearchTemplateApi
|
||||
ESAPI.prototype.scriptsPainlessExecute = scriptsPainlessExecuteApi
|
||||
ESAPI.prototype.scroll = scrollApi
|
||||
ESAPI.prototype.search = searchApi
|
||||
ESAPI.prototype.searchShards = searchShardsApi
|
||||
ESAPI.prototype.searchTemplate = searchTemplateApi
|
||||
ESAPI.prototype.termvectors = termvectorsApi
|
||||
ESAPI.prototype.update = updateApi
|
||||
ESAPI.prototype.updateByQuery = updateByQueryApi
|
||||
ESAPI.prototype.updateByQueryRethrottle = updateByQueryRethrottleApi
|
||||
ESAPI.prototype.closePointInTime = closePointInTimeApi
|
||||
ESAPI.prototype.openPointInTime = openPointInTimeApi
|
||||
|
||||
<<<<<<< HEAD
|
||||
const apis = {
|
||||
async_search: {
|
||||
delete: lazyLoad('async_search.delete', opts),
|
||||
@ -677,50 +839,258 @@ function ESAPI (opts) {
|
||||
xpack: {
|
||||
info: lazyLoad('xpack.info', opts),
|
||||
usage: lazyLoad('xpack.usage', opts)
|
||||
}
|
||||
}
|
||||
|
||||
return apis
|
||||
|
||||
function handleError (err, callback) {
|
||||
if (callback) {
|
||||
process.nextTick(callback, err, result)
|
||||
return { then: noop, catch: noop, abort: noop }
|
||||
}
|
||||
return Promise.reject(err)
|
||||
}
|
||||
|
||||
function snakeCaseKeys (acceptedQuerystring, snakeCase, querystring, warnings) {
|
||||
var target = {}
|
||||
var keys = Object.keys(querystring)
|
||||
for (var i = 0, len = keys.length; i < len; i++) {
|
||||
var key = keys[i]
|
||||
target[snakeCase[key] || key] = querystring[key]
|
||||
if (acceptedQuerystring.indexOf(snakeCase[key] || key) === -1) {
|
||||
warnings.push('Client - Unknown parameter: "' + key + '", sending it as query parameter')
|
||||
=======
|
||||
Object.defineProperties(ESAPI.prototype, {
|
||||
cat: {
|
||||
get () {
|
||||
if (this[kCat] === null) {
|
||||
this[kCat] = new CatApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kCat]
|
||||
>>>>>>> a064f0f3... Improve child performances (#1314)
|
||||
}
|
||||
return target
|
||||
}
|
||||
}
|
||||
|
||||
// It's unlikely that a user needs all of our APIs,
|
||||
// and since require is a sync operation that takes time
|
||||
// (given the amount of APIs we have), let's lazy load them,
|
||||
// so a given API file will be required only
|
||||
// if the user actually needs that API.
|
||||
// The following implementation takes advantage
|
||||
// of js closures to have a simple cache with the least overhead.
|
||||
function lazyLoad (file, opts) {
|
||||
var fn = null
|
||||
return function _lazyLoad (params, options, callback) {
|
||||
if (fn === null) {
|
||||
fn = require(`./api/${file}.js`)(opts)
|
||||
},
|
||||
clear_scroll: { get () { return this.clearScroll } },
|
||||
cluster: {
|
||||
get () {
|
||||
if (this[kCluster] === null) {
|
||||
this[kCluster] = new ClusterApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kCluster]
|
||||
}
|
||||
},
|
||||
danglingIndices: {
|
||||
get () {
|
||||
if (this[kDanglingIndices] === null) {
|
||||
this[kDanglingIndices] = new DanglingIndicesApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kDanglingIndices]
|
||||
}
|
||||
},
|
||||
dangling_indices: { get () { return this.danglingIndices } },
|
||||
delete_by_query: { get () { return this.deleteByQuery } },
|
||||
delete_by_query_rethrottle: { get () { return this.deleteByQueryRethrottle } },
|
||||
delete_script: { get () { return this.deleteScript } },
|
||||
exists_source: { get () { return this.existsSource } },
|
||||
field_caps: { get () { return this.fieldCaps } },
|
||||
get_script: { get () { return this.getScript } },
|
||||
get_script_context: { get () { return this.getScriptContext } },
|
||||
get_script_languages: { get () { return this.getScriptLanguages } },
|
||||
get_source: { get () { return this.getSource } },
|
||||
indices: {
|
||||
get () {
|
||||
if (this[kIndices] === null) {
|
||||
this[kIndices] = new IndicesApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kIndices]
|
||||
}
|
||||
},
|
||||
ingest: {
|
||||
get () {
|
||||
if (this[kIngest] === null) {
|
||||
this[kIngest] = new IngestApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kIngest]
|
||||
}
|
||||
},
|
||||
msearch_template: { get () { return this.msearchTemplate } },
|
||||
nodes: {
|
||||
get () {
|
||||
if (this[kNodes] === null) {
|
||||
this[kNodes] = new NodesApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kNodes]
|
||||
}
|
||||
},
|
||||
put_script: { get () { return this.putScript } },
|
||||
rank_eval: { get () { return this.rankEval } },
|
||||
reindex_rethrottle: { get () { return this.reindexRethrottle } },
|
||||
render_search_template: { get () { return this.renderSearchTemplate } },
|
||||
scripts_painless_execute: { get () { return this.scriptsPainlessExecute } },
|
||||
search_shards: { get () { return this.searchShards } },
|
||||
search_template: { get () { return this.searchTemplate } },
|
||||
snapshot: {
|
||||
get () {
|
||||
if (this[kSnapshot] === null) {
|
||||
this[kSnapshot] = new SnapshotApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kSnapshot]
|
||||
}
|
||||
},
|
||||
tasks: {
|
||||
get () {
|
||||
if (this[kTasks] === null) {
|
||||
this[kTasks] = new TasksApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kTasks]
|
||||
}
|
||||
},
|
||||
update_by_query: { get () { return this.updateByQuery } },
|
||||
update_by_query_rethrottle: { get () { return this.updateByQueryRethrottle } },
|
||||
asyncSearch: {
|
||||
get () {
|
||||
if (this[kAsyncSearch] === null) {
|
||||
this[kAsyncSearch] = new AsyncSearchApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kAsyncSearch]
|
||||
}
|
||||
},
|
||||
async_search: { get () { return this.asyncSearch } },
|
||||
autoscaling: {
|
||||
get () {
|
||||
if (this[kAutoscaling] === null) {
|
||||
this[kAutoscaling] = new AutoscalingApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kAutoscaling]
|
||||
}
|
||||
},
|
||||
ccr: {
|
||||
get () {
|
||||
if (this[kCcr] === null) {
|
||||
this[kCcr] = new CcrApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kCcr]
|
||||
}
|
||||
},
|
||||
close_point_in_time: { get () { return this.closePointInTime } },
|
||||
enrich: {
|
||||
get () {
|
||||
if (this[kEnrich] === null) {
|
||||
this[kEnrich] = new EnrichApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kEnrich]
|
||||
}
|
||||
},
|
||||
eql: {
|
||||
get () {
|
||||
if (this[kEql] === null) {
|
||||
this[kEql] = new EqlApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kEql]
|
||||
}
|
||||
},
|
||||
graph: {
|
||||
get () {
|
||||
if (this[kGraph] === null) {
|
||||
this[kGraph] = new GraphApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kGraph]
|
||||
}
|
||||
},
|
||||
ilm: {
|
||||
get () {
|
||||
if (this[kIlm] === null) {
|
||||
this[kIlm] = new IlmApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kIlm]
|
||||
}
|
||||
},
|
||||
license: {
|
||||
get () {
|
||||
if (this[kLicense] === null) {
|
||||
this[kLicense] = new LicenseApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kLicense]
|
||||
}
|
||||
},
|
||||
migration: {
|
||||
get () {
|
||||
if (this[kMigration] === null) {
|
||||
this[kMigration] = new MigrationApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kMigration]
|
||||
}
|
||||
},
|
||||
ml: {
|
||||
get () {
|
||||
if (this[kMl] === null) {
|
||||
this[kMl] = new MlApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kMl]
|
||||
}
|
||||
},
|
||||
monitoring: {
|
||||
get () {
|
||||
if (this[kMonitoring] === null) {
|
||||
this[kMonitoring] = new MonitoringApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kMonitoring]
|
||||
}
|
||||
},
|
||||
open_point_in_time: { get () { return this.openPointInTime } },
|
||||
rollup: {
|
||||
get () {
|
||||
if (this[kRollup] === null) {
|
||||
this[kRollup] = new RollupApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kRollup]
|
||||
}
|
||||
},
|
||||
searchableSnapshots: {
|
||||
get () {
|
||||
if (this[kSearchableSnapshots] === null) {
|
||||
this[kSearchableSnapshots] = new SearchableSnapshotsApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kSearchableSnapshots]
|
||||
}
|
||||
},
|
||||
searchable_snapshots: { get () { return this.searchableSnapshots } },
|
||||
security: {
|
||||
get () {
|
||||
if (this[kSecurity] === null) {
|
||||
this[kSecurity] = new SecurityApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kSecurity]
|
||||
}
|
||||
},
|
||||
slm: {
|
||||
get () {
|
||||
if (this[kSlm] === null) {
|
||||
this[kSlm] = new SlmApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kSlm]
|
||||
}
|
||||
},
|
||||
sql: {
|
||||
get () {
|
||||
if (this[kSql] === null) {
|
||||
this[kSql] = new SqlApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kSql]
|
||||
}
|
||||
},
|
||||
ssl: {
|
||||
get () {
|
||||
if (this[kSsl] === null) {
|
||||
this[kSsl] = new SslApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kSsl]
|
||||
}
|
||||
},
|
||||
transform: {
|
||||
get () {
|
||||
if (this[kTransform] === null) {
|
||||
this[kTransform] = new TransformApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kTransform]
|
||||
}
|
||||
},
|
||||
watcher: {
|
||||
get () {
|
||||
if (this[kWatcher] === null) {
|
||||
this[kWatcher] = new WatcherApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kWatcher]
|
||||
}
|
||||
},
|
||||
xpack: {
|
||||
get () {
|
||||
if (this[kXpack] === null) {
|
||||
this[kXpack] = new XpackApi(this.transport, this[kConfigurationError])
|
||||
}
|
||||
return this[kXpack]
|
||||
}
|
||||
return fn(params, options, callback)
|
||||
}
|
||||
}
|
||||
|
||||
function noop () {}
|
||||
})
|
||||
|
||||
module.exports = ESAPI
|
||||
|
||||
Reference in New Issue
Block a user