import axiosRetry from 'axios-retry' import * as common from '../common' import * as gen from '../gen/tables' import * as types from '../types' type IClient = common.types.Simplify export type Operation = common.types.Operation export type ClientInputs = common.types.Inputs export type ClientOutputs = common.types.Outputs export type ClientProps = common.types.CommonClientProps & { token: string botId: string integrationId?: string integrationAlias?: string } export class Client extends gen.Client { public readonly config: Readonly public constructor(clientProps: ClientProps) { const clientConfig = common.config.getClientConfig(clientProps) const axiosInstance = common.axios.createAxiosInstance(clientConfig) super(axiosInstance, { toApiError: common.errors.toApiError, }) if (clientProps.retry) { axiosRetry(axiosInstance, clientProps.retry) } this.config = clientConfig } }