2023-10-05 02:10:53 -04:00
|
|
|
import { StorageSerializers } from "@vueuse/core";
|
2023-09-28 21:55:19 -04:00
|
|
|
import { UseFetchOptions } from "nuxt/app";
|
|
|
|
|
2023-10-05 02:10:53 -04:00
|
|
|
const useApiFetch = async <T>(url: string, options?: any) => {
|
2023-09-28 21:55:19 -04:00
|
|
|
const { token } = useAuth();
|
2023-10-03 01:06:40 -04:00
|
|
|
let head = {
|
|
|
|
...(options?.headers || {}),
|
|
|
|
};
|
|
|
|
if (token.value) {
|
|
|
|
head.Authorization = token.value;
|
|
|
|
}
|
2023-10-05 02:10:53 -04:00
|
|
|
/* const cached = useSessionStorage<T>(url, null, {
|
|
|
|
serializer: StorageSerializers.object,
|
|
|
|
});
|
|
|
|
|
|
|
|
if (!cached.value) {
|
|
|
|
const { data, error } = await useFetch<T>("/api" + url, {
|
|
|
|
method: "get",
|
|
|
|
headers: head,
|
|
|
|
...options,
|
|
|
|
});
|
|
|
|
|
|
|
|
if (error.value) {
|
|
|
|
throw createError({
|
|
|
|
...error.value,
|
|
|
|
statusMessage: `Could not fetch data from ${url}`,
|
|
|
|
});
|
|
|
|
} */
|
|
|
|
|
|
|
|
// Update the cache
|
|
|
|
// cached.value = data.value as T;
|
|
|
|
// } else {
|
|
|
|
// console.log(`Getting value from cache for ${url}`);
|
|
|
|
// }
|
|
|
|
const data = await useFetch<T>("/api" + url, {
|
2023-09-28 21:55:19 -04:00
|
|
|
method: "get",
|
2023-10-03 01:06:40 -04:00
|
|
|
headers: head,
|
2023-09-28 21:55:19 -04:00
|
|
|
...options,
|
|
|
|
});
|
2023-10-05 02:10:53 -04:00
|
|
|
|
|
|
|
return data;
|
2023-09-28 21:55:19 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
export default useApiFetch;
|