index.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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 BASE_URL = process.env.NEXT_PUBLIC_BASE_URL;
  6. console.log(`🚀🚀🚀🚀🚀-> in index.ts on 7`, process.env);
  7. const server = new Request({
  8. timeout: 10 * 1000,
  9. baseURL: BASE_URL,
  10. transform: {
  11. // instance interceptor
  12. requestInterceptor: (config) => {
  13. return config;
  14. },
  15. requestInterceptorCatch: (err) => {
  16. return err;
  17. },
  18. responseInterceptor: (config) => {
  19. return config;
  20. },
  21. responseInterceptorCatch: async (err) => {
  22. const { response } = err;
  23. if (!response) return err;
  24. // @ts-ignore
  25. const { code } = response.data;
  26. switch (code) {
  27. case 401:
  28. localStorage.removeItem("globalStore");
  29. useWalletStore.getState().reset();
  30. useUserInfoStore.getState().reset();
  31. await actions();
  32. break;
  33. default:
  34. return err;
  35. }
  36. },
  37. },
  38. });
  39. export { server };