import { LOG } from '@logger'; import axios, { AxiosError, AxiosResponse } from 'axios'; const log = LOG.extend("AxiosRequest"); const baseUrl = process.env.EXPO_PUBLIC_API_URL; const client = axios.create({baseURL : baseUrl}); const axiosRequest = async ({...options}) : Promise => { // console.log("base Url", baseUrl); // client.defaults.headers.common.Authorization = `Bearer ${""}`; // client.defaults.headers.common['Content-Type'] = 'application/json'; // console.log("client default", client.defaults); // console.log("client datas", client.defaults.data); log.debug("RequestOptions :: ", options); const onSuccess = (response : T) => { return response }; const onError = (error : AxiosError) => { log.error(error); throw error; }; try { const response : AxiosResponse = await client({ ...options }); return onSuccess(response.data); } catch (error : any) { log.error("RequestError :: ", error); log.error("RequestError Reponse :: ", error.response); return onError(error); } } export default axiosRequest;