Commit Graph

87 Commits

Author SHA1 Message Date
b4d0dc87d3 Reorganized test and force 100% code coverage (#1226) 2020-06-15 08:37:04 +02:00
04d082cb49 Helpers: avoid allocating new timers (#1224) 2020-06-12 10:43:41 +02:00
7dfaa6c5b4 Improve helper concurrency (#1214) 2020-06-04 10:55:51 +02:00
80817a00f9 Added timeout support in bulk and msearch helpers (#1206) 2020-06-03 10:33:08 +02:00
1a25b623b0 Add multi search helper (#1186) 2020-05-25 15:37:01 +02:00
84217fc737 Use filter_path for improving the search helpers performances (#1199) 2020-05-25 14:25:32 +02:00
191b8fb9fb Force lowercase in all headers (#1187) 2020-05-14 16:10:18 +02:00
17959a41e1 Fix 1153 (#1159)
* Fix #1153

* Updated test
2020-04-14 18:14:27 +02:00
6779f3b11a Switched request and response generics position (#1132)
* 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
2020-04-06 12:45:27 +02:00
e67b55d163 Do not retry a request if the body is a stream (#1143)
* 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
2020-04-06 12:16:21 +02:00
27a8e2a9bf Updated abort behavior (#1141)
* 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
2020-04-06 11:21:19 +02:00
df17fb99d0 Added async generator support in bulk helper (#1138)
* Added async generator support in bulk helper

* Updated test

* Updated docs

* Improved type definitions

* Updated onDrop callback type definition
2020-04-03 09:46:26 +02:00
f913f7d2d2 Updated Connections handling (#1127)
* 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
2020-03-26 13:41:05 +01:00
85616b07ef Improve code coverage (#1124)
* Helpers: Fixed stats counting

* Improve code coverage
2020-03-24 12:27:05 +01:00
d7836a16af Client helpers (#1107)
* 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
2020-03-23 17:43:10 +01:00
6c82a4967e Refactored type definitions (#1119)
* 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
2020-03-23 11:38:18 +01:00
a80f510a9a Add data field in serialization errors (#1100)
* 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>
2020-03-23 10:15:34 +01:00
9a9057db9e ApiKey should take precedence over basic auth (#1115)
* ApiKey should take precedence over basic auth

* Updated docs

* Updated test
2020-03-13 13:34:47 +01:00
6bf04473c9 Secure json parsing (#1110)
* Safe json parsing

* Updated test
2020-03-12 16:35:45 +01:00
d701516dda Skip compression in case of empty string body (#1080)
* Fix #1069

* Updated test

* Updated test
2020-02-04 10:28:42 +01:00
7945b68693 Fix typo in NoLivingConnectionsError (#1045)
Co-authored-by: Tomas Della Vedova <delvedor@users.noreply.github.com>
2020-02-03 10:34:23 +01:00
3953a2c542 Change TransportRequestOptions.ignore to number[] (#1053) 2020-01-15 18:25:06 +01:00
0f1746014c X-Opaque-Id support (#997)
* Added X-Opaque-Id support

* Updated type definitions

* Updated test

* Updated docs
2019-12-02 09:21:03 +01:00
7fef37cf90 Fix issue; node roles are defaulting to true when undefined (fal… (#967)
* 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
2019-09-18 08:45:47 +02:00
4ff1bd5110 Add body and querystring to RequestOptions (#957) 2019-09-11 11:29:40 +02:00
a948a98be6 Refactored connection pool (#913)
* Refactored ConnectionPool
- Created BaseConnectionPool class
- Created CloudConnectionPool
- connection pool updates are immutable
- resurrect now happens inside getConnection()

* Rewritten connection pool(s) type definitions

* Updated test

* Fixed test

* Fix if check

* Removed old files

* Improve code coverage

* Updated license header

* Fix if check

* Improve code coverage

* Updated coverage script
2019-07-26 11:43:48 +02:00
36a1666cc8 Updated license header (#915) 2019-07-22 11:46:59 +02:00
0ebbd71e9a Improve authentication handling (#908) 2019-07-18 10:33:11 +02:00
1a3dbeb94b Remove auth data from inspect and toJSON in connection class (#887)
* Remove auth data from inspect and toJSON in connection class

* Updated test
2019-07-04 13:56:06 +02:00
ca50f580f4 Updated type definitions (#882)
* Updated type definitions

* Updated test
2019-06-19 09:14:19 +02:00
95007b8c9d Support for non-friendly chars in url username and password (#858)
* Support for non-friendly chars in url username and password
- Added auth option to Connection class
- Updated pool.addConnection

* Updated test
2019-05-20 11:09:33 -04:00
7f77250ed5 Added toJSON method to Connection class (#849)
* Added toJSON method to Connection class

* Updated test

* Updated typings
2019-05-14 12:00:27 -04:00
c76d0249c0 Fix #803 (#846) 2019-05-14 11:19:08 -04:00
37f11281aa Fix 843 (#845)
* Fix #843

* Updated test
2019-05-10 10:55:28 +02:00
802f7902a4 Added User-Agent header (#807)
* Added User-Agent header

* Updated test

* Updated user-agent format

* Updated test
2019-05-06 09:59:22 +02:00
269c0fc96a Improve observability (#834)
* API generation

* Added correlation id support

* Updated docs

* Updated test

* Updated code generation

* API generation

* Updated code generation

* Added support for client name and custom context object

* Updated docs

* Updated test

* Fix docs

* Updated docs

* Added id support also for sniffing

* Updated test

* Update docs/observability.asciidoc

Co-Authored-By: delvedor <delvedor@users.noreply.github.com>

* Update docs/observability.asciidoc

Co-Authored-By: delvedor <delvedor@users.noreply.github.com>

* Apply suggestions

* Update docs/configuration.asciidoc

Co-Authored-By: delvedor <delvedor@users.noreply.github.com>

* Update docs/configuration.asciidoc

Co-Authored-By: delvedor <delvedor@users.noreply.github.com>

* Update docs/observability.asciidoc

Co-Authored-By: delvedor <delvedor@users.noreply.github.com>

* Update docs/observability.asciidoc

Co-Authored-By: delvedor <delvedor@users.noreply.github.com>

* Update docs/observability.asciidoc

Co-Authored-By: delvedor <delvedor@users.noreply.github.com>

* Apply suggestions

* Updated README.md

* Fixed test

* Addressed suggestions
2019-05-03 17:23:40 +02:00
1261e60d41 Better handling of hostname/ip:port format (#837)
* Better handling of hostname/ip:port format

* Updated test
2019-05-03 14:36:17 +02:00
9320ef939d Fix resurrect timeout formula (#833)
* Fixes #827

* Updated test
2019-04-29 09:18:38 +02:00
c35eb421cb Update RequestEvent to use parameterized type T (#822)
Updated `RequestEvent` to use parameterized type `T`.  In reference to:

https://github.com/elastic/elasticsearch-js/pull/819#issuecomment-484594841
2019-04-19 10:06:20 +02:00
c6ce062822 Updated typings (#819) 2019-04-17 11:23:15 +02:00
a21281fc48 Improve typings (#813)
The ApiResponse now accepts a generics that defaults to any, same for every API method that might need a body.
2019-04-10 11:40:25 +02:00
2919f93b73 Custom http agent support (#810) 2019-04-10 11:13:22 +02:00
5af9ec1040 Support for publish_address as hostname/ip:port (#804) 2019-04-08 17:13:44 +02:00
5c60d98180 Inspect Connection (#784)
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`.
2019-03-19 09:50:36 +01:00
c53c798899 feat: add support for querystring in options object (#779)
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)
```
2019-03-15 18:09:44 +01:00
ae028b2ae2 Consistency for the win
- 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
2019-03-11 17:13:02 +01:00
46df19fd7d Updated types 2019-03-11 17:12:31 +01:00
cae38e6b2b License (#773)
- Added license header
- Added license checker
- Fixed tap
2019-03-08 07:47:24 +01:00
f175f83d34 Workaround for keepAlive false 2019-03-01 09:02:31 +01:00
ed3cca0fe6 Platinum integration test (#772)
🎉
2019-03-01 08:42:56 +01:00