import xior, { merge } from 'xior' const baseURL = import.meta.env.VITE_API_URL export type THttpServer = { accessToken?: string ipAddress?: string | null userAgent?: string | null } export const HttpServer = (parameters?: THttpServer) => { const { accessToken, ipAddress, userAgent } = parameters || {} const instance = xior.create({ baseURL, }) instance.interceptors.request.use((config) => { // eslint-disable-next-line no-console console.info(`🚀requesting ${config.url}`) return merge(config, { headers: { ...(accessToken && { Authorization: `Bearer ${accessToken}` }), ...(ipAddress && { 'X-Ip-Address': ipAddress }), ...(userAgent && { 'X-User-Agent': userAgent }), }, }) }) instance.interceptors.response.use( (response) => { return response }, (error) => { return Promise.reject(error) }, ) return instance }