Skip to content

Commit 78f5711

Browse files
committed
wip
1 parent a98eb35 commit 78f5711

File tree

3 files changed

+16
-7
lines changed

3 files changed

+16
-7
lines changed

src/Client.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ import {
4343
} from '@elastic/transport/lib/types'
4444
import BaseConnection, { prepareHeaders } from '@elastic/transport/lib/connection/BaseConnection'
4545
import SniffingTransport from './SniffingTransport'
46+
import Helpers from './Helpers'
47+
import API from './api'
4648

4749
const kChild = Symbol('elasticsearchjs-child')
4850
const kInitialOptions = Symbol('elasticsearchjs-initial-options')
@@ -109,13 +111,15 @@ interface ClientOptions {
109111
caFingerprint?: string
110112
}
111113

112-
export default class Client {
114+
export default class Client extends API {
113115
diagnostic: Diagnostic
114116
name: string | symbol
115117
connectionPool: BaseConnectionPool
116118
transport: SniffingTransport
117119
serializer: Serializer
120+
helpers: Helpers
118121
constructor (opts: ClientOptions) {
122+
super()
119123
// @ts-expect-error kChild symbol is for internal use only
120124
if ((opts.cloud != null) && opts[kChild] === undefined) {
121125
const { id } = opts.cloud
@@ -213,6 +217,7 @@ export default class Client {
213217
})
214218
this.connectionPool.addConnection(options.node ?? options.nodes)
215219
}
220+
216221
this.transport = new options.Transport({
217222
diagnostic: this.diagnostic,
218223
connectionPool: this.connectionPool,
@@ -233,6 +238,14 @@ export default class Client {
233238
context: options.context,
234239
productCheck: 'Elasticsearch'
235240
})
241+
242+
this.helpers = new Helpers({
243+
client: this,
244+
metaHeader: options.enableMetaHeader
245+
? `es=${clientVersion},js=${nodeVersion},t=${transportVersion},hc=${nodeVersion}`
246+
: null,
247+
maxRetries: options.maxRetries
248+
})
236249
}
237250

238251
child (opts: ClientOptions): Client {

src/Helpers.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import Client from './Client'
2121

2222
export interface HelpersOptions {
2323
client: Client
24-
metaHeader: string
24+
metaHeader: string | null
2525
maxRetries: number
2626
}
2727

@@ -31,7 +31,7 @@ const kMaxRetries = Symbol('max retries')
3131

3232
export default class Helpers {
3333
[kClient]: Client
34-
[kMetaHeader]: string
34+
[kMetaHeader]: string | null
3535
[kMaxRetries]: number
3636
constructor (opts: HelpersOptions) {
3737
this[kClient] = opts.client

test/unit/client.test.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,11 @@ import * as symbols from '@elastic/transport/lib/symbols'
2525
import { BaseConnectionPool, CloudConnectionPool, WeightedConnectionPool } from '@elastic/transport'
2626

2727
let clientVersion: string = require('../../package.json').version // eslint-disable-line
28-
/* istanbul ignore next */
2928
if (clientVersion.includes('-')) {
30-
// clean prerelease
3129
clientVersion = clientVersion.slice(0, clientVersion.indexOf('-')) + 'p'
3230
}
3331
let transportVersion: string = require('@elastic/transport/package.json').version // eslint-disable-line
34-
/* istanbul ignore next */
3532
if (transportVersion.includes('-')) {
36-
// clean prerelease
3733
transportVersion = transportVersion.slice(0, transportVersion.indexOf('-')) + 'p'
3834
}
3935
const nodeVersion = process.versions.node

0 commit comments

Comments
 (0)