Just use axios-cache-interceptor. Everything else is done for you.
import axios, {AxiosInstance} from 'axios';
import { setupCache } from 'axios-cache-interceptor';
const httpClient: AxiosInstance = axios.create({
withCredentials: true,
})
setupCache(httpClient, {
ttl: 3000 // cache for 3 seconds
})