* Updated code generation
* Switched request and response generics position
* Updated test
* API generation
* Removed unused generics
* Test type definitions for callback style API as well
* Fix comments
* Fix conflict
* API generation
* Updated type def
* 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
* Updated types generation script
* Refactored api method definitions
* Updated test
- Removed old test code
- Added tsd dev dependency
- Rewritten test with tsd
* Removed unused dependencies
* Fixed definition
* Updated test
* Updated docs
* Improved events type definitions
* Updated test
* Minor fixes in the type definitons
* More type test
* Improved Transport type definitions
* Updated test
* Addressed comments
* Code generation
* Use RequestBody, Response and Context everywhere, also default Context to unknown
* Updated test
* body -> hasBody
* Fixed conflicts
* Updated code generation
* Improved request body type definition
* Updated code generation
* Use BodyType for both request and reponses generics
- Use extends for defining the RequestBody generic to force the user
following the same shape.
- BodyType and NDBodyType now accepts a generics to allow injecting
more specific types in the future
* API generation
* Updated test
* Updated docs
* Use BodyType also in ReponseError
* Removed useless client generics
* Renamed generics and types
- prefixed all generics with a T
- BodyType => RequestBody
- NDBodyType => RequestNDBody
- Added ResponseBody
* Updated test
* Updated docs
* Test ResponseBody as well
* Simplify overloads
* API generation
* Updated test
* Updated error types
* 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)
```
- The result object contains also the metadata about the request
- The events emits the same object of the API response
- The errors, where possible, exposes the APi response object under the
meta key