base_ui/utils/useApi.ts

30 lines
913 B
TypeScript
Raw Permalink Normal View History

2025-02-01 09:34:55 +00:00
import type { UseFetchOptions } from "nuxt/app";
export async function useAPI<T>(
url: string | (() => string),
options?: UseFetchOptions<T>
) {
const prexFixUrlWithApiName = import.meta.env.VITE_API_NAME + url;
return await useFetch(prexFixUrlWithApiName, {
...options,
$fetch: useNuxtApp().$api,
});
// when setting lazy:true, we can use pending.
// const { data, error, pending } = useFetch(url, {
// lazy: true,
// });
// const { data, error, pending } = useLazyFetch(url);
// const { data, error, pending } = useLazyAsyncData(url);
}
// $fetch : very similar like fetch command.
// we can use it on client and server the same way.
// useAsyncData : it does the same thing on the clien and server.
// it let us use async data. data that we need to wait to resolced.
// export const useApi2 = async (url, options) => {
// return await useAsyncData(() => $fetch(url));
// };