* Do not retry a request if the body is a stream
Refactored the trnasport.request method to not use stream for gzipping
the body, but use the callback API instead. The maxRetries will be 0 in
case of a stream body and cached the Accept-Encoding header.
* Updated dependencies
* Updated test
* Updated abort behavior
- Support for aborting a request with the promise api
- Aborting a request will cause a RequestAbortedError
- Normalized Connection class errors, now every error returned is
wrapped by the client errors constructors
* Updated test
* Updated docs
* Updated code generation script
* Renamed test
* Code coverage
* Avoid calling twice transport.request
* Updated Connections handling
- The ConnectionPool.getConnection method now always returns a connection
- The ConnectionPool.update mehtod now cleans the dead list
- Deprecated the NoLivingConnectionsError
* Updated test
* Updated docs
* The NoLivingConnectionsError can still happen if the filter/selector returns no nodes
* Updated test
* Updated docs
* Catch undefined connections as well
* Updated test
* Updated ApiError type def
* Added client helpers
* Updated test
* The search helper should return only the documents
* Added code comments
* Fixed bug
* Updated test
* Removed bulkSize and added flushBytes
* Updated test
* Added concurrency
* Updated test
* Added support for 429 handling in the scroll search helper
* Updated test
* Updated stats count
* Updated test
* Fix test
* Use client maxRetries as default
* Updated type definitions
* Refactored bulk helper to be more consistent with the client api
* Updated test
* Improved error handling, added refreshOnCompletion option and forward additinal options to the bulk api
* Updated type definitions
* Updated test
* Fixed test on Node v8
* Updated test
* Added TODO
* Updated docs
* Added Node v8 note
* Updated scripts
* Removed useless files
* Added helpers to integration test
* Fix cli argument position
* Moar fixes
* Test run elasticsearch in github actions
* Use master action version
* Add vm.max_map_count step
* Test new action setup
* Added Configure sysctl limits step
* Updated action to latest version
* Don't run helpers integration test in jenkins
* Run helpers integratino test also with Node v10
* Updated docs
* Updated docs
* Updated helpers type definitions
* Added test for helpers type definitions
* Added license header
* Add data field in serialization errors
* Add test for data field in serialization errors
Co-authored-by: Tomas Della Vedova <delvedor@users.noreply.github.com>
* Fix issue; nodeFilter was unable to filter because master, data, and ingest role were true if even they were false on the node.
* Test nodesToHost of BaseConnectionPool correctly maps node roles
Handles `console.log` and `utils.inspect` invocations for a better debugging experience.
`agent` and `ssl` are hidden since they made the logs very hard to read.
The user can still access them with `instance.agent` and `instance.ssl`.
In very few cases, some API uses the same key for both url and query params, such as the bulk method.
The client is not designed to handle such cases since accepts both url and query keys in the same object, and the url parameter will always take precedence.
This pr fixes this edge case by adding a `querystring` key in the options object.
Fixes: https://github.com/elastic/elasticsearch-js/pull/778
```js
client.bulk({
index: 'index',
type: '_doc',
body: [...]
}, {
querystring: {
type: '_doc'
}
}, console.log)
```