UNPKG

@lgarciawebdev/use-fetch-state

Version:

A Nuxt composable for managing fetch state using useFetch with auto-import and type support.

47 lines (46 loc) 1.18 kB
import { ref } from 'vue'; import { useFetch } from '#imports'; export function useFetchState(url, params) { const data = ref(null); const error = ref(null); const status = ref('idle'); async function actionFn(event) { if (event?.preventDefault) event.preventDefault(); status.value = 'pending'; error.value = null; try { const { data: fetchedData, error: fetchError } = await useFetch(url, { ...params }); if (fetchError.value) { status.value = 'error'; error.value = fetchError.value; } else { status.value = 'success'; data.value = fetchedData.value; } } catch (err) { status.value = 'error'; error.value = err; } } function clear() { data.value = null; error.value = null; status.value = 'idle'; } async function refresh() { return actionFn(); } return { data, error, status, actionFn, refresh, clear }; }