diff --git a/package.json b/package.json index 6c2a9b5f..adf08097 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "dev:prod": "env-cmd -f .env.production vite", "test": "env-cmd -f .env.development npx vitest --ui", "test:prod": "env-cmd -f .env.production npx vitest --ui", - "preview": "env-cmd -f .env.production npm run build && npm run preview", + "preview": "env-cmd -f .env.production npm run build && vite preview", "build": "tsc && vite build", "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", "lint:eslint": "eslint --ext ts,tsx \"src/**/*.{ts,tsx}\"", diff --git a/src/api/axiosInstance.ts b/src/api/axiosInstance.ts new file mode 100644 index 00000000..15896c59 --- /dev/null +++ b/src/api/axiosInstance.ts @@ -0,0 +1,18 @@ +import axios from 'axios'; + +import { setAuthorization } from './interceptors'; + +const PROD = import.meta.env.MODE === 'production'; + +const baseURL = PROD + ? `${location.protocol}//${location.host}` + : import.meta.env.VITE_BASE_URL; + +export const axiosInstance = axios.create({ + baseURL, + headers: { + 'Content-type': 'application/json', + }, +}); + +axiosInstance.interceptors.request.use(setAuthorization); diff --git a/src/api/index.ts b/src/api/index.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/src/api/interceptors.ts b/src/api/interceptors.ts new file mode 100644 index 00000000..dc4edeba --- /dev/null +++ b/src/api/interceptors.ts @@ -0,0 +1,15 @@ +import { InternalAxiosRequestConfig } from 'axios'; + +export const setAuthorization = (config: InternalAxiosRequestConfig) => { + const stringifiedAccssToken = localStorage.getItem('ACCESS_TOKEN'); + if (!stringifiedAccssToken) { + return config; + } + + const accessToken = JSON.parse(stringifiedAccssToken); + if (accessToken) { + config.headers.Authorization = `Bearer ${accessToken}`; + } + + return config; +}; diff --git a/vercel.json b/vercel.json new file mode 100644 index 00000000..3a48e56b --- /dev/null +++ b/vercel.json @@ -0,0 +1,3 @@ +{ + "rewrites": [{ "source": "/(.*)", "destination": "/" }] +}