index.ts 892 B

1234567891011121314151617181920212223242526272829303132333435
  1. "use client";
  2. import Request from "./axios";
  3. const BASE_URL = process.env.NEXT_PUBLIC_BASE_URL;
  4. const server = new Request({
  5. timeout: 10 * 1000,
  6. baseURL: BASE_URL,
  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: (err) => {
  19. const { response } = err;
  20. if (response && !response.data) return;
  21. // @ts-ignore
  22. const { code } = response!.data;
  23. switch (code) {
  24. case 401:
  25. window && (location.href = "/br/login");
  26. break;
  27. }
  28. return err;
  29. },
  30. },
  31. });
  32. export { server };