User profile request caching

This commit is contained in:
2025-10-15 11:13:58 +02:00
parent f5aca7434f
commit a183974d20
6 changed files with 91 additions and 20 deletions
+2 -2
View File
@@ -1,6 +1,7 @@
import { Message, Server } from "@/types/types";
import axios from "axios";
import { Dispatch, RefObject, SetStateAction } from "react";
import { get } from "./request";
export default async function auth(
id: string,
@@ -12,8 +13,7 @@ export default async function auth(
) {
console.log("Authenticating with server id:", id);
const ip = ((await axios.get(`/api/server/${id}`)).data as any)
.address as string;
const ip = ((await get(`/api/server/${id}`)).data as any).address as string;
console.log("Authenticating with server at:", ip);
const server_auth = (
+32
View File
@@ -0,0 +1,32 @@
import Axios from "axios";
import { CacheRequestConfig, setupCache } from "axios-cache-interceptor";
const axiosInstance = Axios.create({});
const axios = setupCache(axiosInstance);
export interface Response<T> {
data: T;
status: number;
statusText: string;
headers: { [index: string]: any };
cached: boolean;
}
export async function get<T = any, D = any>(
url: string,
onResponse?: (response: Response<T>) => void,
config?: CacheRequestConfig<T, D>
): Promise<Response<T>> {
const response = (await axios.get<T, D>(
url,
config
)) as unknown as Response<T>;
if (onResponse && response.cached) {
Axios.get(url).then((response) =>
onResponse(response as unknown as Response<T>)
);
}
return response;
}