client.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import type { HttpConfig } from './types'
  2. import axios from 'axios'
  3. const instance = axios.create({
  4. baseURL: import.meta.env.VITE_API_ROOT,
  5. timeout: 50000,
  6. headers: { 'Content-Type': 'application/json' },
  7. })
  8. const http = {
  9. // eslint-disable-next-line ts/no-explicit-any
  10. get<T = any>(url: string, config: HttpConfig = {}) {
  11. // eslint-disable-next-line ts/no-explicit-any
  12. return instance.get<any, T>(url, config)
  13. },
  14. // eslint-disable-next-line ts/no-explicit-any
  15. post<T = any>(url: string, data: any = undefined, config: HttpConfig = {}) {
  16. // eslint-disable-next-line ts/no-explicit-any
  17. return instance.post<any, T>(url, data, config)
  18. },
  19. // eslint-disable-next-line ts/no-explicit-any
  20. put<T = any>(url: string, data: any = undefined, config: HttpConfig = {}) {
  21. // eslint-disable-next-line ts/no-explicit-any
  22. return instance.put<any, T>(url, data, config)
  23. },
  24. // eslint-disable-next-line ts/no-explicit-any
  25. delete<T = any>(url: string, config: HttpConfig = {}) {
  26. // eslint-disable-next-line ts/no-explicit-any
  27. return instance.delete<any, T>(url, config)
  28. },
  29. // eslint-disable-next-line ts/no-explicit-any
  30. patch<T = any>(url: string, config: HttpConfig = {}) {
  31. // eslint-disable-next-line ts/no-explicit-any
  32. return instance.patch<any, T>(url, config)
  33. },
  34. }
  35. export { http, instance }