next/composables/useApiFetch.ts

45 lines
952 B
TypeScript
Raw Normal View History

2023-10-05 02:10:53 -04:00
import { StorageSerializers } from "@vueuse/core";
import { UseFetchOptions } from "nuxt/app";
2023-10-05 02:10:53 -04:00
const useApiFetch = async <T>(url: string, options?: any) => {
const { token } = useAuth();
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, {
method: "get",
headers: head,
...options,
});
2023-10-05 02:10:53 -04:00
return data;
};
export default useApiFetch;