/* eslint-disable */ import axios from 'axios'; import { TokenDispatcher } from '@/store/dispatchers'; const { destroyToken } = TokenDispatcher; // Full config: https://github.com/axios/axios#request-config // axios.defaults.baseURL = process.env.baseURL || process.env.apiUrl || ''; // axios.defaults.headers.common['Authorization'] = AUTH_TOKEN; // axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; const getBaseUrl = () => { switch (process.env.NODE_ENV) { case 'development': return 'http://localhost:4000/api'; case 'production': return process.env.baseURL || process.env.apiUrl || ''; default: return process.env.baseURL || process.env.apiUrl || ''; } }; const config = { baseURL: getBaseUrl(), // timeout: 60 * 1000, // Timeout // withCredentials: true, // Check cross-site Access-Control }; const _axios = axios.create(config); _axios.interceptors.request.use( (config) => { config.headers.Authorization = localStorage.getItem('token'); return config; }, (error) => // Do something with request error Promise.reject(error), ); // Add a response interceptor _axios.interceptors.response.use( (response) => { if (response.data.code === 10110) { destroyToken(); return; } return response.data.data; }, (error) => // Do something with response error Promise.reject(error), ); export default _axios;