diff --git a/src/api-client.ts b/src/api-client.ts index e6bd356a..f40e9b76 100644 --- a/src/api-client.ts +++ b/src/api-client.ts @@ -21,6 +21,9 @@ export class ApiClient { }, }); + if (options?.customAxiosOptions?.interceptors?.request) { + this.axiosInstance.interceptors.request.use(options.customAxiosOptions.interceptors.request.onFulfilled, options.customAxiosOptions.interceptors.request.onRejected); + } if (options?.customAxiosOptions?.interceptors?.response) { this.axiosInstance.interceptors.response.use(options.customAxiosOptions.interceptors.response.onFulfilled, options.customAxiosOptions.interceptors.response.onRejected); } diff --git a/src/fireblocks-sdk.ts b/src/fireblocks-sdk.ts index 9d984397..20aa9a80 100644 --- a/src/fireblocks-sdk.ts +++ b/src/fireblocks-sdk.ts @@ -127,7 +127,7 @@ import { ScreeningConfigurationsResponse, ScreeningPolicyRuleResponse, ScreeningProviderConfigurationResponse, AuditLogsResponse, } from "./types"; -import { AxiosProxyConfig, AxiosResponse } from "axios"; +import { AxiosProxyConfig, AxiosRequestConfig, AxiosResponse } from "axios"; import { PIIEncryption } from "./pii-client"; import { NcwApiClient } from "./ncw-api-client"; import { NcwSdk } from "./ncw-sdk"; @@ -156,13 +156,17 @@ export interface SDKOptions { userAgent?: string; /** Replace default https agent */ - httpsAgent?: any + httpsAgent?: any; /** * Providing custom axios options including a response interceptor (https://axios-http.com/docs/interceptors) */ customAxiosOptions?: { interceptors?: { + request?: { + onFulfilled: (value: AxiosRequestConfig) => AxiosRequestConfig | Promise>; + onRejected: (error: any) => any; + }; response?: { onFulfilled: (value: AxiosResponse) => AxiosResponse | Promise>; onRejected: (error: any) => any;