next/composables/useApiFetch.ts

45 lines
952 B
TypeScript

import { StorageSerializers } from "@vueuse/core";
import { UseFetchOptions } from "nuxt/app";
const useApiFetch = async <T>(url: string, options?: any) => {
const { token } = useAuth();
let head = {
...(options?.headers || {}),
};
if (token.value) {
head.Authorization = token.value;
}
/* 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,
});
return data;
};
export default useApiFetch;