instance.ts 907 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { axiosFactory } from './setup'
  2. import { message } from 'antd'
  3. import { LOGIN, ResCodeDesc } from 'constant'
  4. import { showLoading, hideLoading } from 'components/loading'
  5. const instance = axiosFactory()
  6. export const {
  7. axios,
  8. addUnsetTokenURLS,
  9. addReqErrorHandler,
  10. addResErrorHandler,
  11. delReqErrorHandler,
  12. delResErrorHandler,
  13. getToken,
  14. setToken,
  15. delToken,
  16. setDefaultURI,
  17. addHook,
  18. delHook,
  19. setHook
  20. } = instance
  21. addReqErrorHandler(err => {
  22. message.error(err.message)
  23. })
  24. addResErrorHandler(
  25. (response, data) => {
  26. if (response.status !== 200) {
  27. message.error(response.statusText)
  28. } else if (data) {
  29. const msg = data.code && ResCodeDesc[data.code] ? ResCodeDesc[data.code] : data?.message
  30. message.error(msg)
  31. }
  32. }
  33. )
  34. addHook({
  35. before: showLoading,
  36. after: hideLoading
  37. })
  38. addUnsetTokenURLS(LOGIN)
  39. setDefaultURI('/api')
  40. export default axios