import axios, { AxiosRequestHeaders } from 'axios'; import FormData from 'form-data'; import ClientsSharedConfig from '../sharedByClients/config/ClientsSharedConfig'; class HttpManager { public handleCommandErrors: boolean = true; registerAxiosInterceptor() { this.registerRequestInterceptor(); this.registerResponseInterceptor(); } private registerRequestInterceptor() { axios.interceptors.request.use((config) => { if ( config.data instanceof FormData ) { config.headers = { ...config.headers, ...(config.data as FormData).getHeaders() } as AxiosRequestHeaders; } if ( config.url && (config.url.indexOf(ClientsSharedConfig.apiURL) !== -1) ) { if ( config.data && Object.keys(config.data).length > 0 ) { config.headers['Content-Type'] = 'multipart/form-data'; } } return config; }); } private registerResponseInterceptor() { axios.interceptors.response.use((response) => { return response; }, (error) => { return Promise.reject(error); }); } } export default new HttpManager();