index.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { useUserInfoStore } from "@/stores/useUserInfoStore";
  2. import { useWalletStore } from "@/stores/useWalletStore";
  3. import actions from "@/utils/client/actions";
  4. import Request from "./axios";
  5. const server = new Request({
  6. timeout: 10 * 1000,
  7. transform: {
  8. // instance interceptor
  9. requestInterceptor: (config) => {
  10. return config;
  11. },
  12. requestInterceptorCatch: (err) => {
  13. return err;
  14. },
  15. responseInterceptor: (config) => {
  16. return config;
  17. },
  18. responseInterceptorCatch: async (err) => {
  19. console.log(2233, err);
  20. const { response }: any = err;
  21. if (!response) return err;
  22. // if (response.status !== 200) return Promise.reject(response.message);
  23. // @ts-ignore
  24. const { code } = response.data;
  25. switch (code) {
  26. case 401:
  27. localStorage.removeItem("globalStore");
  28. useWalletStore.getState().reset();
  29. useUserInfoStore.getState().reset();
  30. await actions();
  31. break;
  32. default:
  33. return err;
  34. }
  35. },
  36. },
  37. });
  38. export { server };