@@ -115,11 +115,50 @@ const run = (cmd, cwd = process.cwd()) => {
115115 if ( packages . includes ( "axios" ) ) {
116116 const axiosContent = `import axios from "axios";
117117
118- export const api = axios.create({
119- baseURL: import.meta.env.VITE_API_URL || "http://localhost:5000",
120- headers: { "Content-Type": "application/json" }
121- });
122- ` ;
118+ export const api = axios.create({
119+ baseURL: import.meta.env.VITE_API_URL || "http://localhost:5000",
120+ headers: { "Content-Type": "application/json" },
121+ timeout: 10000
122+ });
123+
124+ // ✅ Request Interceptor
125+ api.interceptors.request.use(
126+ (config) => {
127+ // Example: Add token if available
128+ const token = localStorage.getItem("token");
129+ if (token) {
130+ config.headers.Authorization = \`Bearer \${token}\`;
131+ }
132+ return config;
133+ },
134+ (error) => {
135+ return Promise.reject(error);
136+ }
137+ );
138+
139+ // ✅ Response Interceptor
140+ api.interceptors.response.use(
141+ (response) => {
142+ return response.data; // Return only data for convenience
143+ },
144+ (error) => {
145+ if (error.response) {
146+ console.error("API Error:", error.response.data?.message || error.message);
147+ // Example: Handle unauthorized
148+ if (error.response.status === 401) {
149+ // Optionally redirect to login
150+ window.location.href = "/login";
151+ }
152+ } else if (error.request) {
153+ console.error("No response received from server.");
154+ } else {
155+ console.error("Request setup error:", error.message);
156+ }
157+ return Promise.reject(error);
158+ }
159+ );
160+ ` ;
161+
123162 fs . writeFileSync ( path . join ( projectPath , "src" , "utils" , "axiosInstance.js" ) , axiosContent ) ;
124163 }
125164
0 commit comments