@banch0u/core-project-test-repository 2.2.3 → 2.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/utils/axios.js +27 -141
  2. package/package.json +1 -1
@@ -1,71 +1,5 @@
1
1
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
2
  import _regeneratorRuntime from "@babel/runtime/regenerator";
3
- // import axios from "axios";
4
- // export const ACCESS_TOKEN_KEY = "token";
5
- // export const REFRESH_TOKEN_KEY = "refreshToken";
6
-
7
- // // Base Axios instance
8
- // const api = axios.create({ baseURL: process.env.REACT_APP_BASE_URL });
9
-
10
- // // Function to refresh token
11
- // const refreshAccessToken = async () => {
12
- // try {
13
- // const refreshToken = localStorage.getItem(REFRESH_TOKEN_KEY); // Adjust storage as needed
14
- // const response = await api.post(
15
- // `/profile/refresh-token`,
16
- // {},
17
- // {
18
- // headers: {
19
- // RefreshToken: `${refreshToken}`, // Send refresh token as a header
20
- // },
21
- // }
22
- // );
23
- // localStorage.setItem(ACCESS_TOKEN_KEY, response.data.accessToken);
24
- // return response.data.accessToken;
25
- // } catch (error) {
26
- // console.error("Failed to refresh token:", error);
27
- // throw error; // Handle logout or token expiration
28
- // }
29
- // };
30
-
31
- // // Add Axios request interceptor
32
- // api.interceptors.request.use(
33
- // (config) => {
34
- // const token = localStorage.getItem(ACCESS_TOKEN_KEY); // Get token from storage
35
- // if (token) {
36
- // config.headers.Authorization = `Bearer ${token}`;
37
- // }
38
- // console.log(config);
39
- // return config;
40
- // },
41
- // (error) => Promise.reject(error)
42
- // );
43
-
44
- // // Add Axios response interceptor
45
- // api.interceptors.response.use(
46
- // (response) => response, // Pass through successful responses
47
- // async (error) => {
48
- // const originalRequest = error.config;
49
- // if (error.code === "ERR_NETWORK" && !originalRequest._retry) {
50
- // originalRequest._retry = true; // Prevent infinite retry loops
51
- // try {
52
- // const newAccessToken = await refreshAccessToken();
53
- // originalRequest.headers.Authorization = `Bearer ${newAccessToken}`;
54
- // return api(originalRequest); // Retry the failed request with the new token
55
- // } catch (refreshError) {
56
- // // Handle failed token refresh logic (e.g., logout user)
57
- // console.error("Token refresh failed:", refreshError);
58
- // window.location.href = "/docflow/login"; //Comment this to prevent logout
59
- // return Promise.reject(refreshError);
60
- // }
61
- // }
62
- // return Promise.reject(error); // Reject all other errors
63
- // }
64
- // );
65
-
66
- // export default api;
67
-
68
- //DEV OPTION
69
3
  import axios from "axios";
70
4
  export var ACCESS_TOKEN_KEY = "token";
71
5
  export var REFRESH_TOKEN_KEY = "refreshToken";
@@ -75,100 +9,52 @@ if (window.location.hostname === "localhost") {
75
9
  } else {
76
10
  baseUrl = window.location.origin + "/api";
77
11
  }
78
- // Base Axios instance
79
12
  var api = axios.create({
80
13
  baseURL: baseUrl
81
14
  });
82
-
83
- // Function to refresh token
84
- var refreshAccessToken = /*#__PURE__*/function () {
85
- var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
86
- var refreshToken, response;
87
- return _regeneratorRuntime.wrap(function _callee$(_context) {
88
- while (1) switch (_context.prev = _context.next) {
89
- case 0:
90
- _context.prev = 0;
91
- refreshToken = localStorage.getItem("refreshToken"); // Adjust storage as needed
92
- _context.next = 4;
93
- return axios.post(baseUrl + "/profile/refresh-token", {}, {
94
- headers: {
95
- RefreshToken: "".concat(refreshToken) // Send refresh token as a header
96
- }
97
- });
98
- case 4:
99
- response = _context.sent;
100
- localStorage.setItem(ACCESS_TOKEN_KEY, response.data.accessToken);
101
- return _context.abrupt("return", response.data.accessToken);
102
- case 9:
103
- _context.prev = 9;
104
- _context.t0 = _context["catch"](0);
105
- console.error("Failed to refresh token:", _context.t0);
106
- throw _context.t0;
107
- case 13:
108
- case "end":
109
- return _context.stop();
110
- }
111
- }, _callee, null, [[0, 9]]);
112
- }));
113
- return function refreshAccessToken() {
114
- return _ref.apply(this, arguments);
115
- };
116
- }();
117
-
118
- // Add Axios request interceptor
119
15
  api.interceptors.request.use(function (config) {
120
- var token = localStorage.getItem(ACCESS_TOKEN_KEY); // Get token from storage
121
- if (token) {
122
- config.headers.Authorization = "Bearer ".concat(token);
123
- }
16
+ var token = localStorage.getItem(ACCESS_TOKEN_KEY);
17
+ if (token) config.headers.Authorization = "Bearer ".concat(token);
124
18
  return config;
125
19
  }, function (error) {
126
20
  return Promise.reject(error);
127
21
  });
128
-
129
- // Add Axios response interceptor
130
22
  api.interceptors.response.use(function (response) {
131
23
  return response;
132
- },
133
- /*#__PURE__*/
134
- // Pass through successful responses
135
- function () {
136
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(error) {
137
- var originalRequest, newAccessToken, basePath, redirectPath;
138
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
139
- while (1) switch (_context2.prev = _context2.next) {
24
+ }, /*#__PURE__*/function () {
25
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(error) {
26
+ var originalRequest, basePath, redirectPath;
27
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
28
+ while (1) switch (_context.prev = _context.next) {
140
29
  case 0:
141
- originalRequest = error.config;
142
- if (!(error.response.status === 401 && !originalRequest._retry)) {
143
- _context2.next = 18;
30
+ originalRequest = error.config; // if no response (network error etc.)
31
+ if (error.response) {
32
+ _context.next = 3;
144
33
  break;
145
34
  }
146
- originalRequest._retry = true; // Prevent infinite retry loops
147
- _context2.prev = 3;
148
- _context2.next = 6;
149
- return refreshAccessToken();
150
- case 6:
151
- newAccessToken = _context2.sent;
152
- originalRequest.headers.Authorization = "Bearer ".concat(newAccessToken);
153
- return _context2.abrupt("return", api(originalRequest));
154
- case 11:
155
- _context2.prev = 11;
156
- _context2.t0 = _context2["catch"](3);
35
+ return _context.abrupt("return", Promise.reject(error));
36
+ case 3:
37
+ if (!(error.response.status === 401 && !(originalRequest !== null && originalRequest !== void 0 && originalRequest._redirected))) {
38
+ _context.next = 11;
39
+ break;
40
+ }
41
+ originalRequest._redirected = true;
157
42
  basePath = window.location.pathname.split("/")[1];
158
- redirectPath = "/".concat(basePath, "/login");
159
- console.error("Token refresh failed:", _context2.t0);
43
+ redirectPath = "/".concat(basePath, "/login"); // optional: clear tokens
44
+ localStorage.removeItem(ACCESS_TOKEN_KEY);
45
+ localStorage.removeItem(REFRESH_TOKEN_KEY);
160
46
  window.location.href = redirectPath;
161
- return _context2.abrupt("return", Promise.reject(_context2.t0));
162
- case 18:
163
- return _context2.abrupt("return", Promise.reject(error));
164
- case 19:
47
+ return _context.abrupt("return");
48
+ case 11:
49
+ return _context.abrupt("return", Promise.reject(error));
50
+ case 12:
165
51
  case "end":
166
- return _context2.stop();
52
+ return _context.stop();
167
53
  }
168
- }, _callee2, null, [[3, 11]]);
54
+ }, _callee);
169
55
  }));
170
56
  return function (_x) {
171
- return _ref2.apply(this, arguments);
57
+ return _ref.apply(this, arguments);
172
58
  };
173
59
  }());
174
60
  export default api;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@banch0u/core-project-test-repository",
3
- "version": "2.2.3",
3
+ "version": "2.2.4",
4
4
  "description": "Shared core features for all projects",
5
5
  "main": "dist/index.js",
6
6
  "files": [