Friday - a axios based api handling custom class. which has refresh token mechanism configured.
npm install @sabuj0338/axios-fridayFriday that appears to be designed for making API requests with authentication and token refresh capabilities.This library uses cookie to store access_token and refresh_token.
@sabuj0338/axios-friday is a TypeScript library for dealing with API requests.
``bash`
npm install @sabuj0338/axios-friday
`python
import { Friday } from "@sabuj0338/axios-friday";
const baseURL = "https://sabuj0338.github.io/portfolio";
const friday = new Friday({
baseURL: baseURL,
# accessTokenKey: "access_token",
# refreshTokenKey: "refresh_token",
# refreshTokenAPI: "/api/refresh",
# enableRefreshToken: false,
# enableAccessToken: true,
});
`
`python
import { Friday } from "@sabuj0338/axios-friday";
import { AxiosResponse } from "axios";
import Cookies from "js-cookie";
import toast from "react-hot-toast";
const BASE_API_URL = import.meta.env.VITE_BASE_API_URL;
const REFRESH_TOKEN_API = import.meta.env.VITE_REFRESH_TOKEN_API;
const REFRESH_TOKEN_KEY = import.meta.env.VITE_REFRESH_TOKEN_KEY;
const ACCESS_TOKEN_KEY = import.meta.env.VITE_ACCESS_TOKEN_KEY;
class MyFriday extends Friday {
constructor(baseURL: string = BASE_API_URL) {
super({
baseURL: baseURL,
refreshTokenEndpoint: REFRESH_TOKEN_API,
accessTokenKey: ACCESS_TOKEN_KEY,
refreshTokenKey: REFRESH_TOKEN_KEY,
enableRefreshToken: true,
enableAccessToken: true,
});
}
override resetTokens(res: AxiosResponse
Cookies.set(ACCESS_TOKEN_KEY, res.data.tokens.access.token);
Cookies.set(REFRESH_TOKEN_KEY, res.data.tokens.refresh.token);
}
override throwError(message: string): void {
toast.error(message);
}
}
export const friday = new MyFriday();
``
Pull requests are welcome. For major changes, please open an issue first
to discuss what you would like to change.
Please make sure to update tests as appropriate.