[helpers] add support for transport options to all helpers (#1400)
Co-authored-by: spalger <spalger@users.noreply.github.com>
This commit is contained in:
4
lib/Helpers.d.ts
vendored
4
lib/Helpers.d.ts
vendored
@ -25,8 +25,8 @@ export default class Helpers {
|
||||
search<TDocument = unknown, TRequestBody extends RequestBody = Record<string, any>>(params: Search<TRequestBody>, options?: TransportRequestOptions): Promise<TDocument[]>
|
||||
scrollSearch<TDocument = unknown, TResponse = Record<string, any>, TRequestBody extends RequestBody = Record<string, any>, TContext = Context>(params: Search<TRequestBody>, options?: TransportRequestOptions): AsyncIterable<ScrollSearchResponse<TDocument, TResponse, TContext>>
|
||||
scrollDocuments<TDocument = unknown, TRequestBody extends RequestBody = Record<string, any>>(params: Search<TRequestBody>, options?: TransportRequestOptions): AsyncIterable<TDocument>
|
||||
msearch(options?: MsearchHelperOptions): MsearchHelper
|
||||
bulk<TDocument = unknown>(options: BulkHelperOptions<TDocument>): BulkHelper<BulkStats>
|
||||
msearch(options?: MsearchHelperOptions, reqOptions?: TransportRequestOptions): MsearchHelper
|
||||
bulk<TDocument = unknown>(options: BulkHelperOptions<TDocument>, reqOptions?: TransportRequestOptions): BulkHelper<BulkStats>
|
||||
}
|
||||
|
||||
export interface ScrollSearchResponse<TDocument = unknown, TResponse = Record<string, any>, TContext = Context> extends ApiResponse<TResponse, TContext> {
|
||||
|
||||
@ -158,7 +158,7 @@ class Helpers {
|
||||
*/
|
||||
async * scrollDocuments (params, options) {
|
||||
appendFilterPath('hits.hits._source', params, true)
|
||||
for await (const { documents } of this.scrollSearch(params)) {
|
||||
for await (const { documents } of this.scrollSearch(params, options)) {
|
||||
for (const document of documents) {
|
||||
yield document
|
||||
}
|
||||
@ -169,9 +169,10 @@ class Helpers {
|
||||
* Creates a msearch helper instance. Once you configure it, you can use the provided
|
||||
* `search` method to add new searches in the queue.
|
||||
* @param {object} options - The configuration of the msearch operations.
|
||||
* @param {object} reqOptions - The client optional configuration for this request.
|
||||
* @return {object} The possible operations to run.
|
||||
*/
|
||||
msearch (options = {}) {
|
||||
msearch (options = {}, reqOptions = {}) {
|
||||
const client = this[kClient]
|
||||
const {
|
||||
operations = 5,
|
||||
@ -378,7 +379,7 @@ class Helpers {
|
||||
// This function never returns an error, if the msearch operation fails,
|
||||
// the error is dispatched to all search executors.
|
||||
function tryMsearch (msearchBody, callbacks, done) {
|
||||
client.msearch(Object.assign({}, msearchOptions, { body: msearchBody }), (err, results) => {
|
||||
client.msearch(Object.assign({}, msearchOptions, { body: msearchBody }), reqOptions, (err, results) => {
|
||||
const retryBody = []
|
||||
const retryCallbacks = []
|
||||
if (err) {
|
||||
@ -415,12 +416,16 @@ class Helpers {
|
||||
* Creates a bulk helper instance. Once you configure it, you can pick which operation
|
||||
* to execute with the given dataset, index, create, update, and delete.
|
||||
* @param {object} options - The configuration of the bulk operation.
|
||||
* @param {object} reqOptions - The client optional configuration for this request.
|
||||
* @return {object} The possible operations to run with the datasource.
|
||||
*/
|
||||
bulk (options) {
|
||||
bulk (options, reqOptions = {}) {
|
||||
const client = this[kClient]
|
||||
const { serialize, deserialize } = client.serializer
|
||||
const reqOptions = this[kMetaHeader] !== null ? { headers: { 'x-elastic-client-meta': this[kMetaHeader] + ',h=bp' } } : {}
|
||||
if (this[kMetaHeader] !== null) {
|
||||
reqOptions.headers = reqOptions.headers || {}
|
||||
reqOptions.headers['x-elastic-client-meta'] = this[kMetaHeader] + ',h=bp'
|
||||
}
|
||||
const {
|
||||
datasource,
|
||||
onDocument,
|
||||
@ -545,7 +550,7 @@ class Helpers {
|
||||
index: typeof refreshOnCompletion === 'string'
|
||||
? refreshOnCompletion
|
||||
: '_all'
|
||||
})
|
||||
}, reqOptions)
|
||||
}
|
||||
|
||||
stats.time = Date.now() - startTime
|
||||
|
||||
Reference in New Issue
Block a user