Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 2155x 1373x 1373x 1373x | import { type CallOptions, type ClientMiddlewareCall, Metadata } from 'nice-grpc'
export abstract class CredentialsProvider {
constructor() {
// @ts-expect-error Inside middleware perform `this.getToken` call
// to get the token. This is a workaround for the fact that
// `this` is not bound to the class instance inside the middleware.
this.middleware = this.middleware.bind(this)
}
abstract getToken(force?: boolean, signal?: AbortSignal): Promise<string>
readonly middleware = async function* <Request = unknown, Response = unknown>(
this: CredentialsProvider,
call: ClientMiddlewareCall<Request, Response>,
options: CallOptions
) {
let token = await this.getToken(false, options.signal)
return yield* call.next(call.request, {
...options,
metadata: Metadata(options.metadata).set('x-ydb-auth-ticket', token),
})
}
}
|