From 43a4720a9ac67c2ccc42d8292f89f4bac779d431 Mon Sep 17 00:00:00 2001 From: G Date: Tue, 7 May 2024 10:16:11 +0000 Subject: [PATCH] add generic to the function for ts type inference of response --- src/utils/axios-request.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/utils/axios-request.ts diff --git a/src/utils/axios-request.ts b/src/utils/axios-request.ts new file mode 100644 index 0000000..c057003 --- /dev/null +++ b/src/utils/axios-request.ts @@ -0,0 +1,32 @@ +import axios, { AxiosError, AxiosResponse } from 'axios'; + +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); + console.log("options", options); + + + const onSuccess = (response : T) => response; + const onError = (error : AxiosError) => { + console.log('request error', error); + throw error; + }; + + try { + const response : AxiosResponse = await client({ ...options, method: "POST" }); + return onSuccess(response.data); + } catch (error : any) { + console.error("Axios Request Error :: ", error.response.data); + return onError(error); + } +} + +export default axiosRequest; \ No newline at end of file -- libgit2 0.27.1